6bdc68a8d0aa1759864e5f6ee377cf21c2e49fcb
[motion2.git] / server / api / analyticFieldReport / analyticFieldReport.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x2d32=['json','set','apply','reject','save','then','destroy','end','name','AnalyticFieldReport','rawAttributes','key','map','keys','intersection','model','query','attributes','fields','length','limit','offset','sort','where','filters','pick','type','VIRTUAL','filter','merge','options','count','includeAll','findAll','rows','show','params','include','catch','create','body','bulkCreate','update','addFields','AnalyticCustomReport','findOne','transaction','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','lodash','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status'];(function(_0x2b85ec,_0x5a0ccd){var _0x1de2ab=function(_0x4a6037){while(--_0x4a6037){_0x2b85ec['push'](_0x2b85ec['shift']());}};_0x1de2ab(++_0x5a0ccd);}(_0x2d32,0xc3));var _0x22d3=function(_0x2b5eae,_0x55010d){_0x2b5eae=_0x2b5eae-0x0;var _0x5f3ac9=_0x2d32[_0x2b5eae];return _0x5f3ac9;};'use strict';var pdf=require(_0x22d3('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x22d3('0x1'));var zipdir=require(_0x22d3('0x2'));var jsonpatch=require(_0x22d3('0x3'));var rp=require(_0x22d3('0x4'));var moment=require('moment');var BPromise=require(_0x22d3('0x5'));var Mustache=require(_0x22d3('0x6'));var util=require(_0x22d3('0x7'));var path=require(_0x22d3('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x22d3('0x9'));var fs=require('fs');var _=require(_0x22d3('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x22d3('0xb'));var deskjs=require(_0x22d3('0xc'));var toCsv=require(_0x22d3('0xd'));var querystring=require(_0x22d3('0xe'));var Papa=require(_0x22d3('0xf'));var Redis=require(_0x22d3('0x10'));var authService=require(_0x22d3('0x11'));var qs=require(_0x22d3('0x12'));var as=require(_0x22d3('0x13'));var hardwareService=require(_0x22d3('0x14'));var logger=require('../../config/logger')(_0x22d3('0x15'));var utils=require(_0x22d3('0x16'));var config=require(_0x22d3('0x17'));var licenseUtil=require(_0x22d3('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3de7cd,_0x20fe71){_0x20fe71=_0x20fe71||0xcc;return function(_0x4928b5){if(_0x4928b5){return _0x3de7cd[_0x22d3('0x19')](_0x20fe71);}return _0x3de7cd['status'](_0x20fe71)['end']();};}function respondWithResult(_0x4b5543,_0x56d12e){_0x56d12e=_0x56d12e||0xc8;return function(_0x4808d0){if(_0x4808d0){return _0x4b5543[_0x22d3('0x1a')](_0x56d12e)[_0x22d3('0x1b')](_0x4808d0);}};}function respondWithFilteredResult(_0x306b02,_0x2f3f8f){return function(_0x5d4a17){if(_0x5d4a17){var _0x514362=_0x5d4a17['count'],_0x546664=_0x2f3f8f['offset'],_0x47dc91=_0x2f3f8f['offset']+_0x2f3f8f['limit'],_0x5956a6;if(_0x47dc91>=_0x514362){_0x47dc91=_0x514362;_0x5956a6=0xc8;}else{_0x5956a6=0xce;}_0x306b02[_0x22d3('0x1a')](_0x5956a6);return _0x306b02[_0x22d3('0x1c')]('Content-Range',_0x546664+'-'+_0x47dc91+'/'+_0x514362)['json'](_0x5d4a17);}return null;};}function patchUpdates(_0x30cd07){return function(_0x483341){try{jsonpatch[_0x22d3('0x1d')](_0x483341,_0x30cd07,!![]);}catch(_0x2f9116){return BPromise[_0x22d3('0x1e')](_0x2f9116);}return _0x483341[_0x22d3('0x1f')]();};}function saveUpdates(_0x5916c7,_0xbdab54){return function(_0x40ec16){if(_0x40ec16){return _0x40ec16['update'](_0x5916c7)[_0x22d3('0x20')](function(_0x396805){return _0x396805;});}return null;};}function removeEntity(_0x25fd97,_0x184a75){return function(_0x3999f4){if(_0x3999f4){return _0x3999f4[_0x22d3('0x21')]()[_0x22d3('0x20')](function(){_0x25fd97['status'](0xcc)[_0x22d3('0x22')]();});}};}function handleEntityNotFound(_0x295057,_0x5b1939){return function(_0x5c0325){if(!_0x5c0325){_0x295057[_0x22d3('0x19')](0x194);}return _0x5c0325;};}function handleError(_0x418040,_0x460eb7){_0x460eb7=_0x460eb7||0x1f4;return function(_0x418452){logger['error'](_0x418452['stack']);if(_0x418452['name']){delete _0x418452[_0x22d3('0x23')];}_0x418040[_0x22d3('0x1a')](_0x460eb7)['send'](_0x418452);};}exports['index']=function(_0x53cf1b,_0x177b21){var _0x226040={},_0x59e2a1={},_0x56d3f5={'count':0x0,'rows':[]};var _0x4f45ac=_['map'](db[_0x22d3('0x24')][_0x22d3('0x25')],function(_0x2bbc85){return{'name':_0x2bbc85['fieldName'],'type':_0x2bbc85['type'][_0x22d3('0x26')]};});_0x59e2a1['model']=_[_0x22d3('0x27')](_0x4f45ac,_0x22d3('0x23'));_0x59e2a1['query']=_[_0x22d3('0x28')](_0x53cf1b['query']);_0x59e2a1['filters']=_[_0x22d3('0x29')](_0x59e2a1[_0x22d3('0x2a')],_0x59e2a1[_0x22d3('0x2b')]);_0x226040[_0x22d3('0x2c')]=_[_0x22d3('0x29')](_0x59e2a1['model'],qs[_0x22d3('0x2d')](_0x53cf1b[_0x22d3('0x2b')]['fields']));_0x226040['attributes']=_0x226040[_0x22d3('0x2c')][_0x22d3('0x2e')]?_0x226040[_0x22d3('0x2c')]:_0x59e2a1[_0x22d3('0x2a')];if(!_0x53cf1b[_0x22d3('0x2b')]['hasOwnProperty']('nolimit')){_0x226040['limit']=qs[_0x22d3('0x2f')](_0x53cf1b[_0x22d3('0x2b')][_0x22d3('0x2f')]);_0x226040[_0x22d3('0x30')]=qs[_0x22d3('0x30')](_0x53cf1b[_0x22d3('0x2b')][_0x22d3('0x30')]);}_0x226040['order']=qs[_0x22d3('0x31')](_0x53cf1b['query']['sort']);_0x226040[_0x22d3('0x32')]=qs[_0x22d3('0x33')](_[_0x22d3('0x34')](_0x53cf1b['query'],_0x59e2a1[_0x22d3('0x33')]),_0x4f45ac);if(_0x53cf1b[_0x22d3('0x2b')]['filter']){_0x226040['where']=_['merge'](_0x226040[_0x22d3('0x32')],{'$or':_[_0x22d3('0x27')](_0x4f45ac,function(_0x3a24a1){if(_0x3a24a1[_0x22d3('0x35')]!==_0x22d3('0x36')){var _0x56578f={};_0x56578f[_0x3a24a1[_0x22d3('0x23')]]={'$like':'%'+_0x53cf1b[_0x22d3('0x2b')][_0x22d3('0x37')]+'%'};return _0x56578f;}})});}_0x226040=_[_0x22d3('0x38')]({},_0x226040,_0x53cf1b[_0x22d3('0x39')]);var _0x5244da={'where':_0x226040[_0x22d3('0x32')]};return db['AnalyticFieldReport'][_0x22d3('0x3a')](_0x5244da)['then'](function(_0x39740d){_0x56d3f5[_0x22d3('0x3a')]=_0x39740d;if(_0x53cf1b[_0x22d3('0x2b')][_0x22d3('0x3b')]){_0x226040['include']=[{'all':!![]}];}return db['AnalyticFieldReport'][_0x22d3('0x3c')](_0x226040);})[_0x22d3('0x20')](function(_0x4fc55b){_0x56d3f5[_0x22d3('0x3d')]=_0x4fc55b;return _0x56d3f5;})[_0x22d3('0x20')](respondWithFilteredResult(_0x177b21,_0x226040))['catch'](handleError(_0x177b21,null));};exports[_0x22d3('0x3e')]=function(_0x1b0078,_0x308123){var _0x58911e={'raw':![],'where':{'id':_0x1b0078[_0x22d3('0x3f')]['id']}},_0x3f93b4={};_0x3f93b4[_0x22d3('0x2a')]=_['keys'](db['AnalyticFieldReport']['rawAttributes']);_0x3f93b4[_0x22d3('0x2b')]=_[_0x22d3('0x28')](_0x1b0078[_0x22d3('0x2b')]);_0x3f93b4[_0x22d3('0x33')]=_[_0x22d3('0x29')](_0x3f93b4[_0x22d3('0x2a')],_0x3f93b4['query']);_0x58911e[_0x22d3('0x2c')]=_[_0x22d3('0x29')](_0x3f93b4[_0x22d3('0x2a')],qs[_0x22d3('0x2d')](_0x1b0078['query'][_0x22d3('0x2d')]));_0x58911e[_0x22d3('0x2c')]=_0x58911e['attributes'][_0x22d3('0x2e')]?_0x58911e[_0x22d3('0x2c')]:_0x3f93b4[_0x22d3('0x2a')];if(_0x1b0078[_0x22d3('0x2b')][_0x22d3('0x3b')]){_0x58911e[_0x22d3('0x40')]=[{'all':!![]}];}_0x58911e=_[_0x22d3('0x38')]({},_0x58911e,_0x1b0078[_0x22d3('0x39')]);return db[_0x22d3('0x24')]['find'](_0x58911e)[_0x22d3('0x20')](handleEntityNotFound(_0x308123,null))[_0x22d3('0x20')](respondWithResult(_0x308123,null))[_0x22d3('0x41')](handleError(_0x308123,null));};exports[_0x22d3('0x42')]=function(_0xa0512e,_0x539866){return db[_0x22d3('0x24')][_0x22d3('0x42')](_0xa0512e[_0x22d3('0x43')],{})[_0x22d3('0x20')](respondWithResult(_0x539866,0xc9))[_0x22d3('0x41')](handleError(_0x539866,null));};exports[_0x22d3('0x44')]=function(_0x4ee012,_0x16e331){return db[_0x22d3('0x24')][_0x22d3('0x44')](_0x4ee012[_0x22d3('0x43')],{'raw':![],'individualHooks':!![]})[_0x22d3('0x20')](respondWithResult(_0x16e331,0xc9))[_0x22d3('0x41')](handleError(_0x16e331,null));};exports[_0x22d3('0x45')]=function(_0xcc70c,_0x3675c0){if(_0xcc70c[_0x22d3('0x43')]['id']){delete _0xcc70c[_0x22d3('0x43')]['id'];}return db['AnalyticFieldReport']['find']({'where':{'id':_0xcc70c['params']['id']}})[_0x22d3('0x20')](handleEntityNotFound(_0x3675c0,null))[_0x22d3('0x20')](saveUpdates(_0xcc70c[_0x22d3('0x43')],null))[_0x22d3('0x20')](respondWithResult(_0x3675c0,null))['catch'](handleError(_0x3675c0,null));};exports[_0x22d3('0x21')]=function(_0x51f622,_0x21ac4e){return db[_0x22d3('0x24')]['find']({'where':{'id':_0x51f622[_0x22d3('0x3f')]['id']}})[_0x22d3('0x20')](handleEntityNotFound(_0x21ac4e,null))['then'](removeEntity(_0x21ac4e,null))[_0x22d3('0x41')](handleError(_0x21ac4e,null));};exports['bulkDestroy']=function(_0x25a2ca,_0x36a9e9){return db[_0x22d3('0x24')][_0x22d3('0x21')]({'where':{'id':_0x25a2ca['query']['ids']||[]},'raw':![],'individualHooks':!![]})[_0x22d3('0x20')](respondWithResult(_0x36a9e9,0xcc))[_0x22d3('0x41')](handleError(_0x36a9e9,null));};exports[_0x22d3('0x46')]=function(_0x5bfc90,_0x9f96c,_0x59f0ed){return db[_0x22d3('0x47')][_0x22d3('0x48')]({'where':{'id':_0x5bfc90['params']['id']}})[_0x22d3('0x20')](handleEntityNotFound(_0x9f96c,null))['then'](function(_0x35e87c){if(_0x35e87c){return db['sequelize'][_0x22d3('0x49')](function(_0x45577e){return db[_0x22d3('0x24')][_0x22d3('0x21')]({'where':{'CustomReportId':_0x5bfc90[_0x22d3('0x3f')]['id']},'transaction':_0x45577e})[_0x22d3('0x20')](function(_0x2b527d){var _0x3754f5=_[_0x22d3('0x27')](_0x5bfc90['body'],function(_0x3e02a6){delete _0x3e02a6['id'];_0x3e02a6['CustomReportId']=_0x5bfc90['params']['id'];return _0x3e02a6;});return db[_0x22d3('0x24')][_0x22d3('0x44')](_0x3754f5,{'transaction':_0x45577e});});})['then'](function(){return db[_0x22d3('0x24')][_0x22d3('0x3c')]({'where':{'CustomReportId':_0x5bfc90[_0x22d3('0x3f')]['id']}});});}})[_0x22d3('0x20')](respondWithResult(_0x9f96c,null))[_0x22d3('0x41')](handleError(_0x9f96c,null));};