Built motion from commit 753c950e.|2.5.42
[motion2.git] / server / api / analyticCustomReport / analyticCustomReport.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 _0xff11=['format','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','debug','toString','sequelize','QueryTypes','SELECT','join','right_join','SUM(%s)','GROUP_CONCAT(%s)','operator','keyBy','select','groupBy','output','web','fullPath','%s-%s.%s','generate','csv','custom','AnalyticExtractedReport','cdr','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','child_process','../../components/export/','../../files/reports','savename','run','runReport','AVG(%s)','IS\x20NOT\x20EMPTY','Limited\x20Query:','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','AnalyticCustomReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','merge','where','type','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','find','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','create','CustomReports','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','left_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','from','table','MetricId','metric','function','replace'];(function(_0x4d0427,_0x2d9d15){var _0x3164b4=function(_0x57903f){while(--_0x57903f){_0x4d0427['push'](_0x4d0427['shift']());}};_0x3164b4(++_0x2d9d15);}(_0xff11,0x186));var _0x1ff1=function(_0x3b94ec,_0x570c33){_0x3b94ec=_0x3b94ec-0x0;var _0x7bde3d=_0xff11[_0x3b94ec];return _0x7bde3d;};'use strict';var emlformat=require(_0x1ff1('0x0'));var rimraf=require(_0x1ff1('0x1'));var zipdir=require(_0x1ff1('0x2'));var jsonpatch=require(_0x1ff1('0x3'));var rp=require(_0x1ff1('0x4'));var moment=require(_0x1ff1('0x5'));var BPromise=require(_0x1ff1('0x6'));var Mustache=require(_0x1ff1('0x7'));var util=require(_0x1ff1('0x8'));var path=require(_0x1ff1('0x9'));var sox=require(_0x1ff1('0xa'));var csv=require(_0x1ff1('0xb'));var ejs=require(_0x1ff1('0xc'));var fs=require('fs');var fs_extra=require(_0x1ff1('0xd'));var _=require(_0x1ff1('0xe'));var squel=require('squel');var crypto=require(_0x1ff1('0xf'));var jsforce=require(_0x1ff1('0x10'));var deskjs=require(_0x1ff1('0x11'));var toCsv=require(_0x1ff1('0xb'));var querystring=require(_0x1ff1('0x12'));var Papa=require('papaparse');var Redis=require(_0x1ff1('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1ff1('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1ff1('0x15'))('api');var utils=require(_0x1ff1('0x16'));var config=require(_0x1ff1('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x1ff1('0x18'))['db'];var dbH=require('../../mysqldb')['dbH'];function respondWithStatusCode(_0xb7eab5,_0x382d5a){_0x382d5a=_0x382d5a||0xcc;return function(_0x3494ec){if(_0x3494ec){return _0xb7eab5[_0x1ff1('0x19')](_0x382d5a);}return _0xb7eab5[_0x1ff1('0x1a')](_0x382d5a)[_0x1ff1('0x1b')]();};}function respondWithResult(_0x4d9188,_0x232340){_0x232340=_0x232340||0xc8;return function(_0x17f3b3){if(_0x17f3b3){return _0x4d9188[_0x1ff1('0x1a')](_0x232340)[_0x1ff1('0x1c')](_0x17f3b3);}};}function respondWithFilteredResult(_0x2bbf0e,_0x4fa5a2){return function(_0xfb23f3){if(_0xfb23f3){var _0x430569=typeof _0x4fa5a2[_0x1ff1('0x1d')]===_0x1ff1('0x1e')&&typeof _0x4fa5a2['limit']===_0x1ff1('0x1e');var _0x2d4bdd=_0xfb23f3[_0x1ff1('0x1f')];var _0x40091d=_0x430569?0x0:_0x4fa5a2[_0x1ff1('0x1d')];var _0x51469b=_0x430569?_0xfb23f3[_0x1ff1('0x1f')]:_0x4fa5a2['offset']+_0x4fa5a2[_0x1ff1('0x20')];var _0x4a4314;if(_0x51469b>=_0x2d4bdd){_0x51469b=_0x2d4bdd;_0x4a4314=0xc8;}else{_0x4a4314=0xce;}_0x2bbf0e['status'](_0x4a4314);return _0x2bbf0e[_0x1ff1('0x21')](_0x1ff1('0x22'),_0x40091d+'-'+_0x51469b+'/'+_0x2d4bdd)[_0x1ff1('0x1c')](_0xfb23f3);}return null;};}function patchUpdates(_0x1e2ab3){return function(_0x8db772){try{jsonpatch[_0x1ff1('0x23')](_0x8db772,_0x1e2ab3,!![]);}catch(_0x2edbd7){return BPromise[_0x1ff1('0x24')](_0x2edbd7);}return _0x8db772[_0x1ff1('0x25')]();};}function saveUpdates(_0x1ce430,_0x2e85cb){return function(_0x354875){if(_0x354875){return _0x354875[_0x1ff1('0x26')](_0x1ce430)[_0x1ff1('0x27')](function(_0x4899b2){return _0x4899b2;});}return null;};}function removeEntity(_0x2e354a,_0x464483){return function(_0x50e518){if(_0x50e518){return _0x50e518[_0x1ff1('0x28')]()[_0x1ff1('0x27')](function(){var _0x5b3887=_0x50e518[_0x1ff1('0x29')]({'plain':!![]});var _0x19b507='CustomReports';return db[_0x1ff1('0x2a')][_0x1ff1('0x28')]({'where':{'type':_0x19b507,'resourceId':_0x5b3887['id']}})[_0x1ff1('0x27')](function(){return _0x50e518;});})['then'](function(){_0x2e354a[_0x1ff1('0x1a')](0xcc)[_0x1ff1('0x1b')]();});}};}function handleEntityNotFound(_0x4cf4f5,_0xcecae9){return function(_0x1579f5){if(!_0x1579f5){_0x4cf4f5[_0x1ff1('0x19')](0x194);}return _0x1579f5;};}function handleError(_0x436611,_0x5b73da){_0x5b73da=_0x5b73da||0x1f4;return function(_0x50a76e){logger[_0x1ff1('0x2b')](_0x50a76e[_0x1ff1('0x2c')]);if(_0x50a76e['name']){delete _0x50a76e[_0x1ff1('0x2d')];}_0x436611['status'](_0x5b73da)[_0x1ff1('0x2e')](_0x50a76e);};}exports[_0x1ff1('0x2f')]=function(_0x33701e,_0x458c57){var _0x45a011={},_0x12eb73={},_0x5ca35a={'count':0x0,'rows':[]};var _0x3b1c79=_['map'](db[_0x1ff1('0x30')][_0x1ff1('0x31')],function(_0x42b983){return{'name':_0x42b983[_0x1ff1('0x32')],'type':_0x42b983['type'][_0x1ff1('0x33')]};});_0x12eb73[_0x1ff1('0x34')]=_[_0x1ff1('0x35')](_0x3b1c79,'name');_0x12eb73[_0x1ff1('0x36')]=_[_0x1ff1('0x37')](_0x33701e[_0x1ff1('0x36')]);_0x12eb73[_0x1ff1('0x38')]=_[_0x1ff1('0x39')](_0x12eb73[_0x1ff1('0x34')],_0x12eb73[_0x1ff1('0x36')]);_0x45a011[_0x1ff1('0x3a')]=_['intersection'](_0x12eb73[_0x1ff1('0x34')],qs[_0x1ff1('0x3b')](_0x33701e[_0x1ff1('0x36')][_0x1ff1('0x3b')]));_0x45a011[_0x1ff1('0x3a')]=_0x45a011[_0x1ff1('0x3a')][_0x1ff1('0x3c')]?_0x45a011[_0x1ff1('0x3a')]:_0x12eb73[_0x1ff1('0x34')];if(!_0x33701e['query'][_0x1ff1('0x3d')]('nolimit')){_0x45a011['limit']=qs[_0x1ff1('0x20')](_0x33701e[_0x1ff1('0x36')][_0x1ff1('0x20')]);_0x45a011['offset']=qs[_0x1ff1('0x1d')](_0x33701e[_0x1ff1('0x36')]['offset']);}_0x45a011[_0x1ff1('0x3e')]=qs[_0x1ff1('0x3f')](_0x33701e['query'][_0x1ff1('0x3f')]);_0x45a011['where']=qs[_0x1ff1('0x38')](_[_0x1ff1('0x40')](_0x33701e[_0x1ff1('0x36')],_0x12eb73[_0x1ff1('0x38')]),_0x3b1c79);if(_0x33701e[_0x1ff1('0x36')][_0x1ff1('0x41')]){_0x45a011['where']=_[_0x1ff1('0x42')](_0x45a011[_0x1ff1('0x43')],{'$or':_[_0x1ff1('0x35')](_0x3b1c79,function(_0x3ea0a6){if(_0x3ea0a6[_0x1ff1('0x44')]!==_0x1ff1('0x45')){var _0x35495c={};_0x35495c[_0x3ea0a6['name']]={'$like':'%'+_0x33701e[_0x1ff1('0x36')][_0x1ff1('0x41')]+'%'};return _0x35495c;}})});}_0x45a011=_[_0x1ff1('0x42')]({},_0x45a011,_0x33701e[_0x1ff1('0x46')]);var _0x58aece={'where':_0x45a011[_0x1ff1('0x43')]};return db[_0x1ff1('0x30')][_0x1ff1('0x1f')](_0x58aece)[_0x1ff1('0x27')](function(_0x811b94){_0x5ca35a['count']=_0x811b94;if(_0x33701e['query']['includeAll']){_0x45a011[_0x1ff1('0x47')]=[{'all':!![]}];}return db[_0x1ff1('0x30')][_0x1ff1('0x48')](_0x45a011);})[_0x1ff1('0x27')](function(_0x30be9e){_0x5ca35a[_0x1ff1('0x49')]=_0x30be9e;return _0x5ca35a;})[_0x1ff1('0x27')](respondWithFilteredResult(_0x458c57,_0x45a011))[_0x1ff1('0x4a')](handleError(_0x458c57,null));};exports[_0x1ff1('0x4b')]=function(_0x476cc0,_0x360e7f){var _0x49abf2={'raw':![],'where':{'id':_0x476cc0[_0x1ff1('0x4c')]['id']}},_0x174a50={};_0x174a50[_0x1ff1('0x34')]=_[_0x1ff1('0x37')](db[_0x1ff1('0x30')]['rawAttributes']);_0x174a50[_0x1ff1('0x36')]=_[_0x1ff1('0x37')](_0x476cc0[_0x1ff1('0x36')]);_0x174a50[_0x1ff1('0x38')]=_['intersection'](_0x174a50[_0x1ff1('0x34')],_0x174a50[_0x1ff1('0x36')]);_0x49abf2[_0x1ff1('0x3a')]=_['intersection'](_0x174a50['model'],qs['fields'](_0x476cc0['query'][_0x1ff1('0x3b')]));_0x49abf2[_0x1ff1('0x3a')]=_0x49abf2['attributes'][_0x1ff1('0x3c')]?_0x49abf2[_0x1ff1('0x3a')]:_0x174a50['model'];if(_0x476cc0[_0x1ff1('0x36')][_0x1ff1('0x4d')]){_0x49abf2[_0x1ff1('0x47')]=[{'all':!![]}];}_0x49abf2=_['merge']({},_0x49abf2,_0x476cc0[_0x1ff1('0x46')]);return db['AnalyticCustomReport'][_0x1ff1('0x4e')](_0x49abf2)[_0x1ff1('0x27')](handleEntityNotFound(_0x360e7f,null))[_0x1ff1('0x27')](respondWithResult(_0x360e7f,null))[_0x1ff1('0x4a')](handleError(_0x360e7f,null));};exports['create']=function(_0x125355,_0xc73bc9){return db[_0x1ff1('0x30')]['create'](_0x125355[_0x1ff1('0x4f')],{})[_0x1ff1('0x27')](function(_0x2164b8){var _0x515e68=_0x125355['user'][_0x1ff1('0x29')]({'plain':!![]});if(!_0x515e68)throw new Error(_0x1ff1('0x50'));if(_0x515e68[_0x1ff1('0x51')]===_0x1ff1('0x52')){var _0x83a8a7=_0x2164b8[_0x1ff1('0x29')]({'plain':!![]});var _0x210b17='Reports';return db[_0x1ff1('0x53')][_0x1ff1('0x4e')]({'where':{'name':_0x210b17,'userProfileId':_0x515e68[_0x1ff1('0x54')]},'raw':!![]})[_0x1ff1('0x27')](function(_0x5b007c){if(_0x5b007c&&_0x5b007c[_0x1ff1('0x55')]===0x0){return db[_0x1ff1('0x2a')][_0x1ff1('0x56')]({'name':_0x83a8a7[_0x1ff1('0x2d')],'resourceId':_0x83a8a7['id'],'type':_0x1ff1('0x57'),'sectionId':_0x5b007c['id']},{})[_0x1ff1('0x27')](function(){return _0x2164b8;});}else{return _0x2164b8;}})[_0x1ff1('0x4a')](function(_0x3992ee){logger[_0x1ff1('0x2b')](_0x1ff1('0x58'),_0x3992ee);throw _0x3992ee;});}return _0x2164b8;})[_0x1ff1('0x27')](respondWithResult(_0xc73bc9,0xc9))['catch'](handleError(_0xc73bc9,null));};exports[_0x1ff1('0x26')]=function(_0x4c3a68,_0x32b8f4){if(_0x4c3a68[_0x1ff1('0x4f')]['id']){delete _0x4c3a68[_0x1ff1('0x4f')]['id'];}return db[_0x1ff1('0x30')][_0x1ff1('0x4e')]({'where':{'id':_0x4c3a68[_0x1ff1('0x4c')]['id']}})[_0x1ff1('0x27')](handleEntityNotFound(_0x32b8f4,null))[_0x1ff1('0x27')](saveUpdates(_0x4c3a68[_0x1ff1('0x4f')],null))[_0x1ff1('0x27')](respondWithResult(_0x32b8f4,null))['catch'](handleError(_0x32b8f4,null));};exports['destroy']=function(_0x4410a3,_0x4c8791){return db[_0x1ff1('0x30')][_0x1ff1('0x4e')]({'where':{'id':_0x4410a3[_0x1ff1('0x4c')]['id']}})[_0x1ff1('0x27')](handleEntityNotFound(_0x4c8791,null))[_0x1ff1('0x27')](removeEntity(_0x4c8791,null))['catch'](handleError(_0x4c8791,null));};exports[_0x1ff1('0x59')]=function(_0x2de2a9,_0x5e7585){var _0x53e9fe=0xa;var _0xd8769c=['join',_0x1ff1('0x5a'),'right_join',_0x1ff1('0x5b')];var _0x2ce6e5={'SUM':'SUM(%s)','COUNT':_0x1ff1('0x5c'),'COUNT DISTINCT':_0x1ff1('0x5d'),'MAX':_0x1ff1('0x5e'),'MIN':_0x1ff1('0x5f'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x1ff1('0x60'),'GROUP_CONCAT DESC':_0x1ff1('0x61')};var _0x28c72c={'SEC_TO_TIME':_0x1ff1('0x62'),'DATE':_0x1ff1('0x63'),'HOUR':_0x1ff1('0x64'),'ROUND':_0x1ff1('0x65'),'UNIX_TIMESTAMP':_0x1ff1('0x66')};var _0x57e5cd=function(_0x351eff){return!_[_0x1ff1('0x67')]([_0x1ff1('0x68'),_0x1ff1('0x69'),_0x1ff1('0x6a'),'IS\x20NOT\x20EMPTY'],_0x351eff);};var _0x193d43=function(_0x245f5f){if(!_0x245f5f||!_0x245f5f[_0x1ff1('0x6b')][_0x1ff1('0x3c')]){return'';}for(var _0x48e8f8='(',_0x28339b=0x0;_0x28339b<_0x245f5f[_0x1ff1('0x6b')]['length'];_0x28339b+=0x1){_0x28339b>0x0&&(_0x48e8f8+='\x20'+_0x245f5f['operator']+'\x20');_0x48e8f8+=_0x245f5f[_0x1ff1('0x6b')][_0x28339b][_0x1ff1('0x6c')]?_0x193d43(_0x245f5f[_0x1ff1('0x6b')][_0x28339b][_0x1ff1('0x6c')]):_0x245f5f['rules'][_0x28339b][_0x1ff1('0x6d')]+'\x20'+_0x245f5f['rules'][_0x28339b][_0x1ff1('0x6e')]+(_0x57e5cd(_0x245f5f[_0x1ff1('0x6b')][_0x28339b][_0x1ff1('0x6e')])?'\x20'+_0x245f5f[_0x1ff1('0x6b')][_0x28339b][_0x1ff1('0x6f')]:'');}return _0x48e8f8+')';};var _0x2ee3f0={'where':{'id':_0x2de2a9[_0x1ff1('0x4c')]['id']}},_0x1524ab,_0x395f48,_0x1183fa,_0x33ceff,_0x39a73d;_0x2ee3f0=_[_0x1ff1('0x42')]({},_0x2ee3f0,_0x2de2a9[_0x1ff1('0x46')]);return db['AnalyticCustomReport'][_0x1ff1('0x4e')](_0x2ee3f0)[_0x1ff1('0x27')](function(_0x179f8b){if(_0x179f8b){_0x1524ab=_0x179f8b;return _0x179f8b[_0x1ff1('0x70')]();}return null;})[_0x1ff1('0x27')](function(_0x4bbfc0){if(_0x4bbfc0){if(!_0x4bbfc0[_0x1ff1('0x3c')]){throw new db[(_0x1ff1('0x71'))][(_0x1ff1('0x72'))](_0x1ff1('0x73'),0x193);}_0x395f48=_0x4bbfc0;return db[_0x1ff1('0x74')][_0x1ff1('0x48')]({'raw':!![]});}return null;})['then'](function(_0x588964){if(_0x588964){_0x1183fa=_['keyBy'](_0x588964,'id');var _0x1a4ae1;var _0x29e48f=squel['select']();_0x29e48f[_0x1ff1('0x75')](_0x1524ab[_0x1ff1('0x76')]);for(var _0x3cbef2=0x0;_0x3cbef2<_0x395f48[_0x1ff1('0x3c')];_0x3cbef2+=0x1){_0x1a4ae1=_0x395f48[_0x3cbef2][_0x1ff1('0x77')]?_0x1183fa[_0x395f48[_0x3cbef2][_0x1ff1('0x77')]][_0x1ff1('0x78')]:_0x395f48[_0x3cbef2]['field'];_0x1a4ae1=_0x395f48[_0x3cbef2][_0x1ff1('0x79')]?_[_0x1ff1('0x7a')](_0x2ce6e5[_0x395f48[_0x3cbef2][_0x1ff1('0x79')]],'%s',_0x1a4ae1):_0x1a4ae1;_0x1a4ae1=_0x395f48[_0x3cbef2]['format']?_[_0x1ff1('0x7a')](_0x28c72c[_0x395f48[_0x3cbef2][_0x1ff1('0x7b')]],'%s',_0x1a4ae1):_0x1a4ae1;if(_0x395f48[_0x3cbef2]['groupBy']){_0x29e48f[_0x1ff1('0x6c')](_0x1a4ae1);}_0x395f48[_0x3cbef2][_0x1ff1('0x7c')]&&_0x29e48f[_0x1ff1('0x3e')](_0x1a4ae1,_0x395f48[_0x3cbef2][_0x1ff1('0x7c')]===_0x1ff1('0x7d')?![]:!![]);_0x29e48f['field'](_0x1a4ae1,_0x395f48[_0x3cbef2][_0x1ff1('0x7e')]||_0x1a4ae1);}if(_0x1524ab['joins']){_0x1524ab[_0x1ff1('0x7f')]=JSON[_0x1ff1('0x80')](_0x1524ab[_0x1ff1('0x7f')]);for(var _0x483079=0x0;_0x483079<_0x1524ab[_0x1ff1('0x7f')][_0x1ff1('0x3c')];_0x483079+=0x1){if(_0x1524ab[_0x1ff1('0x7f')][_0x483079][_0x1ff1('0x44')]&&_[_0x1ff1('0x67')](_0xd8769c,_0x1524ab[_0x1ff1('0x7f')][_0x483079][_0x1ff1('0x44')])&&_0x1524ab[_0x1ff1('0x7f')][_0x483079][_0x1ff1('0x81')]&&_0x1524ab[_0x1ff1('0x7f')][_0x483079][_0x1ff1('0x82')]&&_0x1524ab[_0x1ff1('0x7f')][_0x483079][_0x1ff1('0x83')]){_0x29e48f[_0x1524ab['joins'][_0x483079]['type']](_0x1524ab['joins'][_0x483079]['foreignTable'],null,util[_0x1ff1('0x7b')](_0x1ff1('0x84'),_0x1524ab[_0x1ff1('0x76')],_0x1524ab[_0x1ff1('0x7f')][_0x483079][_0x1ff1('0x81')],_0x1524ab['joins'][_0x483079][_0x1ff1('0x82')],_0x1524ab[_0x1ff1('0x7f')][_0x483079][_0x1ff1('0x83')]));}}}if(_0x1524ab[_0x1ff1('0x85')]){_0x1524ab['conditions']=JSON['parse'](_0x1524ab[_0x1ff1('0x85')]);_0x29e48f[_0x1ff1('0x43')](_0x193d43(_0x1524ab['conditions'][_0x1ff1('0x6c')]));}_0x39a73d=_0x29e48f[_0x1ff1('0x86')]();_0x29e48f['limit'](_0x53e9fe);_0x29e48f[_0x1ff1('0x1d')](0x0);logger[_0x1ff1('0x87')]('Limited\x20Query:',_0x29e48f[_0x1ff1('0x88')]());return dbH['sequelize'][_0x1ff1('0x36')](_0x29e48f[_0x1ff1('0x88')](),{'type':dbH[_0x1ff1('0x89')][_0x1ff1('0x8a')][_0x1ff1('0x8b')]});}})[_0x1ff1('0x27')](respondWithResult(_0x5e7585,null))[_0x1ff1('0x4a')](handleError(_0x5e7585,null));};function runReport(_0x6c809b,_0x315ad6,_0x301686){var _0x31a077=_0x315ad6[_0x1ff1('0x2d')];var _0x2159a7=0xa;var _0x584f24=[_0x1ff1('0x8c'),'left_join',_0x1ff1('0x8d'),'cross_join'];var _0x4fd2f5={'SUM':_0x1ff1('0x8e'),'COUNT':_0x1ff1('0x5c'),'COUNT DISTINCT':_0x1ff1('0x5d'),'MAX':_0x1ff1('0x5e'),'MIN':_0x1ff1('0x5f'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x1ff1('0x8f'),'GROUP_CONCAT ASC':_0x1ff1('0x60'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x57998b={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x1ff1('0x64'),'ROUND':_0x1ff1('0x65'),'UNIX_TIMESTAMP':_0x1ff1('0x66')};var _0x197df8=function(_0xe06ff3){return!_[_0x1ff1('0x67')]([_0x1ff1('0x68'),_0x1ff1('0x69'),_0x1ff1('0x6a'),'IS\x20NOT\x20EMPTY'],_0xe06ff3);};var _0x4ab08b=function(_0x4c90d0){if(!_0x4c90d0||!_0x4c90d0[_0x1ff1('0x6b')]['length']){return'';}for(var _0x16fbb7='(',_0x5b4211=0x0;_0x5b4211<_0x4c90d0['rules'][_0x1ff1('0x3c')];_0x5b4211+=0x1){_0x5b4211>0x0&&(_0x16fbb7+='\x20'+_0x4c90d0[_0x1ff1('0x90')]+'\x20');_0x16fbb7+=_0x4c90d0['rules'][_0x5b4211]['group']?_0x4ab08b(_0x4c90d0[_0x1ff1('0x6b')][_0x5b4211][_0x1ff1('0x6c')]):_0x4c90d0['rules'][_0x5b4211][_0x1ff1('0x6d')]+'\x20'+_0x4c90d0['rules'][_0x5b4211][_0x1ff1('0x6e')]+(_0x197df8(_0x4c90d0[_0x1ff1('0x6b')][_0x5b4211][_0x1ff1('0x6e')])?'\x20'+_0x4c90d0[_0x1ff1('0x6b')][_0x5b4211][_0x1ff1('0x6f')]:'');}return _0x16fbb7+')';};var _0x133e2e={'where':{'id':_0x6c809b['id']}},_0x5bc779,_0x5cb868,_0x341153,_0x2ef405,_0x30d84e;_0x133e2e=_[_0x1ff1('0x42')]({},_0x133e2e,_0x301686);return db[_0x1ff1('0x30')][_0x1ff1('0x4e')](_0x133e2e)['then'](function(_0x88f781){if(_0x88f781){_0x5bc779=_0x88f781;return _0x88f781['getFields']();}return null;})[_0x1ff1('0x27')](function(_0x2160a7){if(_0x2160a7){if(!_0x2160a7['length']){throw new db[(_0x1ff1('0x71'))]['ValidationErrorItem'](_0x1ff1('0x73'),0x193);}_0x5cb868=_0x2160a7;return db['AnalyticMetric'][_0x1ff1('0x48')]({'raw':!![]});}return null;})[_0x1ff1('0x27')](function(_0x3cbe76){if(_0x3cbe76){_0x341153=_[_0x1ff1('0x91')](_0x3cbe76,'id');var _0x13fd31;var _0x5aab9c=squel[_0x1ff1('0x92')]();_0x5aab9c[_0x1ff1('0x75')](_0x5bc779[_0x1ff1('0x76')]);for(var _0x5484fb=0x0;_0x5484fb<_0x5cb868[_0x1ff1('0x3c')];_0x5484fb+=0x1){_0x13fd31=_0x5cb868[_0x5484fb][_0x1ff1('0x77')]?_0x341153[_0x5cb868[_0x5484fb]['MetricId']]['metric']:_0x5cb868[_0x5484fb]['field'];_0x13fd31=_0x5cb868[_0x5484fb]['function']?_[_0x1ff1('0x7a')](_0x4fd2f5[_0x5cb868[_0x5484fb][_0x1ff1('0x79')]],'%s',_0x13fd31):_0x13fd31;_0x13fd31=_0x5cb868[_0x5484fb][_0x1ff1('0x7b')]?_[_0x1ff1('0x7a')](_0x57998b[_0x5cb868[_0x5484fb][_0x1ff1('0x7b')]],'%s',_0x13fd31):_0x13fd31;if(_0x5cb868[_0x5484fb][_0x1ff1('0x93')]){_0x5aab9c[_0x1ff1('0x6c')](_0x13fd31);}_0x5cb868[_0x5484fb][_0x1ff1('0x7c')]&&_0x5aab9c[_0x1ff1('0x3e')](_0x13fd31,_0x5cb868[_0x5484fb][_0x1ff1('0x7c')]===_0x1ff1('0x7d')?![]:!![]);_0x5aab9c['field'](_0x13fd31,_0x5cb868[_0x5484fb][_0x1ff1('0x7e')]||_0x13fd31);}if(_0x5bc779['joins']){_0x5bc779[_0x1ff1('0x7f')]=JSON[_0x1ff1('0x80')](_0x5bc779[_0x1ff1('0x7f')]);for(var _0x55ce74=0x0;_0x55ce74<_0x5bc779[_0x1ff1('0x7f')][_0x1ff1('0x3c')];_0x55ce74+=0x1){if(_0x5bc779[_0x1ff1('0x7f')][_0x55ce74]['type']&&_['includes'](_0x584f24,_0x5bc779[_0x1ff1('0x7f')][_0x55ce74][_0x1ff1('0x44')])&&_0x5bc779[_0x1ff1('0x7f')][_0x55ce74][_0x1ff1('0x81')]&&_0x5bc779['joins'][_0x55ce74][_0x1ff1('0x82')]&&_0x5bc779['joins'][_0x55ce74]['foreignKey']){_0x5aab9c[_0x5bc779[_0x1ff1('0x7f')][_0x55ce74]['type']](_0x5bc779['joins'][_0x55ce74][_0x1ff1('0x82')],null,util[_0x1ff1('0x7b')](_0x1ff1('0x84'),_0x5bc779[_0x1ff1('0x76')],_0x5bc779['joins'][_0x55ce74][_0x1ff1('0x81')],_0x5bc779[_0x1ff1('0x7f')][_0x55ce74][_0x1ff1('0x82')],_0x5bc779[_0x1ff1('0x7f')][_0x55ce74][_0x1ff1('0x83')]));}}}if(_0x5bc779[_0x1ff1('0x85')]){_0x5bc779[_0x1ff1('0x85')]=JSON[_0x1ff1('0x80')](_0x5bc779[_0x1ff1('0x85')]);_0x5aab9c[_0x1ff1('0x43')](_0x4ab08b(_0x5bc779[_0x1ff1('0x85')][_0x1ff1('0x6c')]));}_0x30d84e=_0x5aab9c['clone']();_0x5aab9c[_0x1ff1('0x20')](_0x2159a7);_0x5aab9c['offset'](0x0);return;}})['then'](function(){if(_0x315ad6[_0x1ff1('0x94')]===_0x1ff1('0x95')){return null;}var _0x41a789=_[_0x1ff1('0x42')](_0x315ad6,{'name':_0x315ad6[_0x1ff1('0x96')]||_0x315ad6[_0x1ff1('0x2d')]||_0x5bc779[_0x1ff1('0x2d')],'basename':_0x31a077,'savename':util['format'](_0x1ff1('0x97'),_0x315ad6[_0x1ff1('0x2d')]||_0x5bc779[_0x1ff1('0x2d')],require('randomstring')[_0x1ff1('0x98')](0x4),_0x315ad6[_0x1ff1('0x94')]||_0x1ff1('0x99')),'reportId':_0x5bc779['id'],'reportType':_0x1ff1('0x9a')});return db[_0x1ff1('0x9b')][_0x1ff1('0x56')](_0x41a789,{'raw':!![]});})[_0x1ff1('0x27')](function(_0xa50046){if(_0x5bc779[_0x1ff1('0x76')]===_0x1ff1('0x9c')){_0x30d84e[_0x1ff1('0x43')](_0x5bc779[_0x1ff1('0x76')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x315ad6[_0x1ff1('0x9d')],_0x315ad6['endDate']);}else{_0x30d84e[_0x1ff1('0x43')](_0x5bc779[_0x1ff1('0x76')]+_0x1ff1('0x9e'),_0x315ad6[_0x1ff1('0x9d')],_0x315ad6[_0x1ff1('0x9f')]);}if(_0xa50046){logger[_0x1ff1('0xa0')](_0x1ff1('0xa1'),_0x30d84e[_0x1ff1('0x88')]());require(_0x1ff1('0xa2'))['fork'](path['join'](__dirname,_0x1ff1('0xa3'),_0xa50046[_0x1ff1('0x94')]),[_0xa50046['id'],_0x30d84e['toString'](),path[_0x1ff1('0x8c')](__dirname,_0x1ff1('0xa4'),_0xa50046[_0x1ff1('0xa5')]),_0x31a077]);return _0xa50046;}else{var _0x62c109=squel[_0x1ff1('0x92')]();_0x62c109['from']('('+_0x30d84e[_0x1ff1('0x88')]()+')','countTable');_0x62c109[_0x1ff1('0x6d')]('COUNT(*)',_0x1ff1('0x1f'));_0x30d84e['limit'](_0x315ad6[_0x1ff1('0x20')]||_0x2159a7);_0x30d84e[_0x1ff1('0x1d')](_0x315ad6[_0x1ff1('0x1d')]||0x0);return dbH['sequelize'][_0x1ff1('0x36')](_0x62c109[_0x1ff1('0x88')](),{'type':dbH[_0x1ff1('0x89')][_0x1ff1('0x8a')][_0x1ff1('0x8b')]})[_0x1ff1('0x27')](function(_0x5be215){if(!_0x5be215[_0x1ff1('0x3c')]){_0x2ef405=0x0;}else{_0x2ef405=_0x5be215[0x0]['count']||0x0;}return dbH[_0x1ff1('0x89')]['query'](_0x30d84e[_0x1ff1('0x88')](),{'type':dbH[_0x1ff1('0x89')][_0x1ff1('0x8a')][_0x1ff1('0x8b')]});})[_0x1ff1('0x27')](function(_0x4a113d){return{'rows':_0x4a113d||[],'count':_0x2ef405};});}});}exports[_0x1ff1('0xa6')]=function(_0x235d71,_0x1e8683){return runReport(_0x235d71[_0x1ff1('0x4c')],_0x235d71[_0x1ff1('0x36')],_0x235d71[_0x1ff1('0x46')])['then'](respondWithResult(_0x1e8683,null))['catch'](handleError(_0x1e8683,null));};exports[_0x1ff1('0xa7')]=runReport;exports[_0x1ff1('0x36')]=function(_0x5a6896,_0x1d7db5){var _0x58aaea=0xa;var _0x3de320=['join',_0x1ff1('0x5a'),_0x1ff1('0x8d'),_0x1ff1('0x5b')];var _0xbc08a2={'SUM':_0x1ff1('0x8e'),'COUNT':_0x1ff1('0x5c'),'COUNT DISTINCT':_0x1ff1('0x5d'),'MAX':_0x1ff1('0x5e'),'MIN':_0x1ff1('0x5f'),'AVG':_0x1ff1('0xa8'),'GROUP_CONCAT':_0x1ff1('0x8f'),'GROUP_CONCAT ASC':_0x1ff1('0x60'),'GROUP_CONCAT DESC':_0x1ff1('0x61')};var _0x1c14db={'SEC_TO_TIME':_0x1ff1('0x62'),'DATE':'DATE(%s)','HOUR':_0x1ff1('0x64'),'ROUND':_0x1ff1('0x65'),'UNIX_TIMESTAMP':_0x1ff1('0x66')};var _0x1e888e=function(_0x10c05c){return!_[_0x1ff1('0x67')](['IS\x20NULL',_0x1ff1('0x69'),_0x1ff1('0x6a'),_0x1ff1('0xa9')],_0x10c05c);};var _0x502f51=function(_0x4d3d29){if(!_0x4d3d29||!_0x4d3d29['rules'][_0x1ff1('0x3c')]){return'';}for(var _0x54f8e7='(',_0x429028=0x0;_0x429028<_0x4d3d29[_0x1ff1('0x6b')][_0x1ff1('0x3c')];_0x429028+=0x1){_0x429028>0x0&&(_0x54f8e7+='\x20'+_0x4d3d29[_0x1ff1('0x90')]+'\x20');_0x54f8e7+=_0x4d3d29[_0x1ff1('0x6b')][_0x429028][_0x1ff1('0x6c')]?_0x502f51(_0x4d3d29['rules'][_0x429028][_0x1ff1('0x6c')]):_0x4d3d29[_0x1ff1('0x6b')][_0x429028]['field']+'\x20'+_0x4d3d29[_0x1ff1('0x6b')][_0x429028][_0x1ff1('0x6e')]+(_0x1e888e(_0x4d3d29[_0x1ff1('0x6b')][_0x429028][_0x1ff1('0x6e')])?'\x20'+_0x4d3d29[_0x1ff1('0x6b')][_0x429028]['value']:'');}return _0x54f8e7+')';};var _0x160d61={'where':{'id':_0x5a6896[_0x1ff1('0x4c')]['id']}},_0x340bcf,_0x53fe83,_0x4ef8f7,_0x1735e4,_0x9970b6;_0x160d61=_['merge']({},_0x160d61,_0x5a6896[_0x1ff1('0x46')]);return db[_0x1ff1('0x30')][_0x1ff1('0x4e')](_0x160d61)[_0x1ff1('0x27')](function(_0x587079){if(_0x587079){_0x340bcf=_0x587079;return _0x587079['getFields']();}return null;})['then'](function(_0xb60172){if(_0xb60172){if(!_0xb60172[_0x1ff1('0x3c')]){throw new db[(_0x1ff1('0x71'))][(_0x1ff1('0x72'))](_0x1ff1('0x73'),0x193);}_0x53fe83=_0xb60172;return db[_0x1ff1('0x74')]['findAll']({'raw':!![]});}return null;})[_0x1ff1('0x27')](function(_0x4e2a0d){if(_0x4e2a0d){_0x4ef8f7=_[_0x1ff1('0x91')](_0x4e2a0d,'id');var _0x319e1e;var _0x2c8781=squel[_0x1ff1('0x92')]();_0x2c8781[_0x1ff1('0x75')](_0x340bcf['table']);for(var _0x20f038=0x0;_0x20f038<_0x53fe83[_0x1ff1('0x3c')];_0x20f038+=0x1){_0x319e1e=_0x53fe83[_0x20f038][_0x1ff1('0x77')]?_0x4ef8f7[_0x53fe83[_0x20f038][_0x1ff1('0x77')]][_0x1ff1('0x78')]:_0x53fe83[_0x20f038]['field'];_0x319e1e=_0x53fe83[_0x20f038]['function']?_[_0x1ff1('0x7a')](_0xbc08a2[_0x53fe83[_0x20f038][_0x1ff1('0x79')]],'%s',_0x319e1e):_0x319e1e;_0x319e1e=_0x53fe83[_0x20f038][_0x1ff1('0x7b')]?_[_0x1ff1('0x7a')](_0x1c14db[_0x53fe83[_0x20f038][_0x1ff1('0x7b')]],'%s',_0x319e1e):_0x319e1e;if(_0x53fe83[_0x20f038]['groupBy']){_0x2c8781[_0x1ff1('0x6c')](_0x319e1e);}_0x53fe83[_0x20f038]['orderBy']&&_0x2c8781[_0x1ff1('0x3e')](_0x319e1e,_0x53fe83[_0x20f038]['orderBy']===_0x1ff1('0x7d')?![]:!![]);_0x2c8781[_0x1ff1('0x6d')](_0x319e1e,_0x53fe83[_0x20f038]['alias']||_0x319e1e);}if(_0x340bcf[_0x1ff1('0x7f')]){_0x340bcf[_0x1ff1('0x7f')]=JSON[_0x1ff1('0x80')](_0x340bcf[_0x1ff1('0x7f')]);for(var _0x52e32e=0x0;_0x52e32e<_0x340bcf[_0x1ff1('0x7f')][_0x1ff1('0x3c')];_0x52e32e+=0x1){if(_0x340bcf[_0x1ff1('0x7f')][_0x52e32e]['type']&&_[_0x1ff1('0x67')](_0x3de320,_0x340bcf[_0x1ff1('0x7f')][_0x52e32e]['type'])&&_0x340bcf['joins'][_0x52e32e][_0x1ff1('0x81')]&&_0x340bcf[_0x1ff1('0x7f')][_0x52e32e][_0x1ff1('0x82')]&&_0x340bcf[_0x1ff1('0x7f')][_0x52e32e][_0x1ff1('0x83')]){_0x2c8781[_0x340bcf[_0x1ff1('0x7f')][_0x52e32e][_0x1ff1('0x44')]](_0x340bcf['joins'][_0x52e32e][_0x1ff1('0x82')],null,util[_0x1ff1('0x7b')]('%s.%s\x20=\x20%s.%s',_0x340bcf[_0x1ff1('0x76')],_0x340bcf[_0x1ff1('0x7f')][_0x52e32e][_0x1ff1('0x81')],_0x340bcf[_0x1ff1('0x7f')][_0x52e32e]['foreignTable'],_0x340bcf[_0x1ff1('0x7f')][_0x52e32e][_0x1ff1('0x83')]));}}}if(_0x340bcf[_0x1ff1('0x85')]){_0x340bcf[_0x1ff1('0x85')]=JSON['parse'](_0x340bcf[_0x1ff1('0x85')]);_0x2c8781['where'](_0x502f51(_0x340bcf[_0x1ff1('0x85')]['group']));}_0x9970b6=_0x2c8781[_0x1ff1('0x86')]();_0x2c8781[_0x1ff1('0x20')](_0x58aaea);_0x2c8781[_0x1ff1('0x1d')](0x0);logger[_0x1ff1('0x87')](_0x1ff1('0xaa'),_0x2c8781[_0x1ff1('0x88')]());return dbH[_0x1ff1('0x89')]['query'](_0x2c8781[_0x1ff1('0x88')](),{'type':dbH[_0x1ff1('0x89')][_0x1ff1('0x8a')][_0x1ff1('0x8b')]});}})[_0x1ff1('0x27')](function(){return{'sql':_0x9970b6[_0x1ff1('0x88')]()};})[_0x1ff1('0x27')](respondWithResult(_0x1d7db5,null))['catch'](handleError(_0x1d7db5,null));};