Built motion from commit 4c579f6b.|2.5.32
[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 _0xf74e=['catch','length','includeAll','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Reports','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','join','right_join','SUM(%s)','COUNT(%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','field','condition','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','select','from','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','foreignTable','table','foreignKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','cross_join','COUNT(DISTINCT\x20%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','HOUR(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','operator','value','parentKey','output','web','fullPath','%s-%s.%s','csv','custom','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','Run\x20Query:','child_process','../../components/export/','../../files/reports','savename','countTable','run','runReport','ROUND(%s)','Sequelize','keyBy','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','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','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','reject','save','then','destroy','UserProfileResource','error','stack','name','index','map','AnalyticCustomReport','rawAttributes','type','key','model','query','keys','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','findAll','rows'];(function(_0x68bb97,_0x5f3b08){var _0x1e5373=function(_0x55f716){while(--_0x55f716){_0x68bb97['push'](_0x68bb97['shift']());}};_0x1e5373(++_0x5f3b08);}(_0xf74e,0x19e));var _0xef74=function(_0x26a611,_0x355f54){_0x26a611=_0x26a611-0x0;var _0x4a7991=_0xf74e[_0x26a611];return _0x4a7991;};'use strict';var emlformat=require(_0xef74('0x0'));var rimraf=require(_0xef74('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xef74('0x2'));var moment=require(_0xef74('0x3'));var BPromise=require(_0xef74('0x4'));var Mustache=require(_0xef74('0x5'));var util=require(_0xef74('0x6'));var path=require(_0xef74('0x7'));var sox=require(_0xef74('0x8'));var csv=require('to-csv');var ejs=require(_0xef74('0x9'));var fs=require('fs');var fs_extra=require(_0xef74('0xa'));var _=require(_0xef74('0xb'));var squel=require(_0xef74('0xc'));var crypto=require('crypto');var jsforce=require(_0xef74('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xef74('0xe'));var querystring=require(_0xef74('0xf'));var Papa=require(_0xef74('0x10'));var Redis=require(_0xef74('0x11'));var authService=require(_0xef74('0x12'));var qs=require(_0xef74('0x13'));var as=require(_0xef74('0x14'));var hardwareService=require(_0xef74('0x15'));var logger=require('../../config/logger')(_0xef74('0x16'));var utils=require(_0xef74('0x17'));var config=require(_0xef74('0x18'));var licenseUtil=require(_0xef74('0x19'));var db=require(_0xef74('0x1a'))['db'];var dbH=require(_0xef74('0x1a'))[_0xef74('0x1b')];function respondWithStatusCode(_0x5cce05,_0x335d74){_0x335d74=_0x335d74||0xcc;return function(_0xe6c447){if(_0xe6c447){return _0x5cce05[_0xef74('0x1c')](_0x335d74);}return _0x5cce05[_0xef74('0x1d')](_0x335d74)[_0xef74('0x1e')]();};}function respondWithResult(_0x559e09,_0x223db1){_0x223db1=_0x223db1||0xc8;return function(_0x13fa2f){if(_0x13fa2f){return _0x559e09[_0xef74('0x1d')](_0x223db1)[_0xef74('0x1f')](_0x13fa2f);}};}function respondWithFilteredResult(_0x401b12,_0x13d708){return function(_0x3112fa){if(_0x3112fa){var _0xd5d1af=typeof _0x13d708[_0xef74('0x20')]===_0xef74('0x21')&&typeof _0x13d708[_0xef74('0x22')]==='undefined';var _0x3ab228=_0x3112fa[_0xef74('0x23')];var _0x423fe4=_0xd5d1af?0x0:_0x13d708[_0xef74('0x20')];var _0x14a84b=_0xd5d1af?_0x3112fa[_0xef74('0x23')]:_0x13d708[_0xef74('0x20')]+_0x13d708[_0xef74('0x22')];var _0x18cf08;if(_0x14a84b>=_0x3ab228){_0x14a84b=_0x3ab228;_0x18cf08=0xc8;}else{_0x18cf08=0xce;}_0x401b12['status'](_0x18cf08);return _0x401b12['set']('Content-Range',_0x423fe4+'-'+_0x14a84b+'/'+_0x3ab228)['json'](_0x3112fa);}return null;};}function patchUpdates(_0x195ef3){return function(_0x449742){try{jsonpatch['apply'](_0x449742,_0x195ef3,!![]);}catch(_0x267b4b){return BPromise[_0xef74('0x24')](_0x267b4b);}return _0x449742[_0xef74('0x25')]();};}function saveUpdates(_0x339031,_0x1e614f){return function(_0x315412){if(_0x315412){return _0x315412['update'](_0x339031)[_0xef74('0x26')](function(_0x2c65a1){return _0x2c65a1;});}return null;};}function removeEntity(_0x8e7d36,_0x2da314){return function(_0x8dfbb1){if(_0x8dfbb1){return _0x8dfbb1[_0xef74('0x27')]()[_0xef74('0x26')](function(){var _0x3fb0b1=_0x8dfbb1['get']({'plain':!![]});var _0x131226='CustomReports';return db[_0xef74('0x28')]['destroy']({'where':{'type':_0x131226,'resourceId':_0x3fb0b1['id']}})['then'](function(){return _0x8dfbb1;});})['then'](function(){_0x8e7d36[_0xef74('0x1d')](0xcc)[_0xef74('0x1e')]();});}};}function handleEntityNotFound(_0x226480,_0x57224d){return function(_0x4bb603){if(!_0x4bb603){_0x226480[_0xef74('0x1c')](0x194);}return _0x4bb603;};}function handleError(_0xafd163,_0x2e87a1){_0x2e87a1=_0x2e87a1||0x1f4;return function(_0x397510){logger[_0xef74('0x29')](_0x397510[_0xef74('0x2a')]);if(_0x397510[_0xef74('0x2b')]){delete _0x397510['name'];}_0xafd163[_0xef74('0x1d')](_0x2e87a1)['send'](_0x397510);};}exports[_0xef74('0x2c')]=function(_0x4d7d4a,_0x390658){var _0x327842={},_0x303749={},_0x44aac6={'count':0x0,'rows':[]};var _0x1b0541=_[_0xef74('0x2d')](db[_0xef74('0x2e')][_0xef74('0x2f')],function(_0xeff9a){return{'name':_0xeff9a['fieldName'],'type':_0xeff9a[_0xef74('0x30')][_0xef74('0x31')]};});_0x303749[_0xef74('0x32')]=_[_0xef74('0x2d')](_0x1b0541,_0xef74('0x2b'));_0x303749[_0xef74('0x33')]=_[_0xef74('0x34')](_0x4d7d4a['query']);_0x303749['filters']=_['intersection'](_0x303749[_0xef74('0x32')],_0x303749['query']);_0x327842[_0xef74('0x35')]=_[_0xef74('0x36')](_0x303749[_0xef74('0x32')],qs[_0xef74('0x37')](_0x4d7d4a['query'][_0xef74('0x37')]));_0x327842[_0xef74('0x35')]=_0x327842[_0xef74('0x35')]['length']?_0x327842[_0xef74('0x35')]:_0x303749[_0xef74('0x32')];if(!_0x4d7d4a[_0xef74('0x33')][_0xef74('0x38')](_0xef74('0x39'))){_0x327842[_0xef74('0x22')]=qs[_0xef74('0x22')](_0x4d7d4a[_0xef74('0x33')][_0xef74('0x22')]);_0x327842[_0xef74('0x20')]=qs[_0xef74('0x20')](_0x4d7d4a[_0xef74('0x33')][_0xef74('0x20')]);}_0x327842[_0xef74('0x3a')]=qs[_0xef74('0x3b')](_0x4d7d4a[_0xef74('0x33')][_0xef74('0x3b')]);_0x327842[_0xef74('0x3c')]=qs[_0xef74('0x3d')](_[_0xef74('0x3e')](_0x4d7d4a[_0xef74('0x33')],_0x303749[_0xef74('0x3d')]),_0x1b0541);if(_0x4d7d4a[_0xef74('0x33')][_0xef74('0x3f')]){_0x327842[_0xef74('0x3c')]=_[_0xef74('0x40')](_0x327842[_0xef74('0x3c')],{'$or':_[_0xef74('0x2d')](_0x1b0541,function(_0xf0b85e){if(_0xf0b85e['type']!==_0xef74('0x41')){var _0x4eca85={};_0x4eca85[_0xf0b85e['name']]={'$like':'%'+_0x4d7d4a['query'][_0xef74('0x3f')]+'%'};return _0x4eca85;}})});}_0x327842=_['merge']({},_0x327842,_0x4d7d4a[_0xef74('0x42')]);var _0x3b95c8={'where':_0x327842[_0xef74('0x3c')]};return db[_0xef74('0x2e')]['count'](_0x3b95c8)[_0xef74('0x26')](function(_0x29c061){_0x44aac6[_0xef74('0x23')]=_0x29c061;if(_0x4d7d4a['query']['includeAll']){_0x327842['include']=[{'all':!![]}];}return db[_0xef74('0x2e')][_0xef74('0x43')](_0x327842);})[_0xef74('0x26')](function(_0x2c00ef){_0x44aac6[_0xef74('0x44')]=_0x2c00ef;return _0x44aac6;})[_0xef74('0x26')](respondWithFilteredResult(_0x390658,_0x327842))[_0xef74('0x45')](handleError(_0x390658,null));};exports['show']=function(_0xba08d,_0x2eeb01){var _0x2f92fb={'raw':![],'where':{'id':_0xba08d['params']['id']}},_0xa731e6={};_0xa731e6[_0xef74('0x32')]=_[_0xef74('0x34')](db['AnalyticCustomReport'][_0xef74('0x2f')]);_0xa731e6[_0xef74('0x33')]=_[_0xef74('0x34')](_0xba08d[_0xef74('0x33')]);_0xa731e6[_0xef74('0x3d')]=_['intersection'](_0xa731e6[_0xef74('0x32')],_0xa731e6[_0xef74('0x33')]);_0x2f92fb[_0xef74('0x35')]=_['intersection'](_0xa731e6[_0xef74('0x32')],qs[_0xef74('0x37')](_0xba08d['query'][_0xef74('0x37')]));_0x2f92fb['attributes']=_0x2f92fb[_0xef74('0x35')][_0xef74('0x46')]?_0x2f92fb[_0xef74('0x35')]:_0xa731e6[_0xef74('0x32')];if(_0xba08d[_0xef74('0x33')][_0xef74('0x47')]){_0x2f92fb['include']=[{'all':!![]}];}_0x2f92fb=_[_0xef74('0x40')]({},_0x2f92fb,_0xba08d['options']);return db[_0xef74('0x2e')][_0xef74('0x48')](_0x2f92fb)[_0xef74('0x26')](handleEntityNotFound(_0x2eeb01,null))[_0xef74('0x26')](respondWithResult(_0x2eeb01,null))['catch'](handleError(_0x2eeb01,null));};exports[_0xef74('0x49')]=function(_0x147b6f,_0x5b3482){return db['AnalyticCustomReport'][_0xef74('0x49')](_0x147b6f[_0xef74('0x4a')],{})[_0xef74('0x26')](function(_0x16d9a4){var _0x39301d=_0x147b6f['user'][_0xef74('0x4b')]({'plain':!![]});if(!_0x39301d)throw new Error(_0xef74('0x4c'));if(_0x39301d[_0xef74('0x4d')]===_0xef74('0x4e')){var _0x1766c9=_0x16d9a4['get']({'plain':!![]});var _0x3201b3=_0xef74('0x4f');return db[_0xef74('0x50')][_0xef74('0x48')]({'where':{'name':_0x3201b3,'userProfileId':_0x39301d['userProfileId']},'raw':!![]})[_0xef74('0x26')](function(_0x1e26d7){if(_0x1e26d7&&_0x1e26d7['autoAssociation']===0x0){return db[_0xef74('0x28')][_0xef74('0x49')]({'name':_0x1766c9[_0xef74('0x2b')],'resourceId':_0x1766c9['id'],'type':'CustomReports','sectionId':_0x1e26d7['id']},{})[_0xef74('0x26')](function(){return _0x16d9a4;});}else{return _0x16d9a4;}})[_0xef74('0x45')](function(_0x48eb07){logger['error'](_0xef74('0x51'),_0x48eb07);throw _0x48eb07;});}return _0x16d9a4;})[_0xef74('0x26')](respondWithResult(_0x5b3482,0xc9))['catch'](handleError(_0x5b3482,null));};exports[_0xef74('0x52')]=function(_0x5f1b6e,_0x42f4c9){if(_0x5f1b6e[_0xef74('0x4a')]['id']){delete _0x5f1b6e[_0xef74('0x4a')]['id'];}return db[_0xef74('0x2e')][_0xef74('0x48')]({'where':{'id':_0x5f1b6e[_0xef74('0x53')]['id']}})[_0xef74('0x26')](handleEntityNotFound(_0x42f4c9,null))[_0xef74('0x26')](saveUpdates(_0x5f1b6e[_0xef74('0x4a')],null))[_0xef74('0x26')](respondWithResult(_0x42f4c9,null))[_0xef74('0x45')](handleError(_0x42f4c9,null));};exports[_0xef74('0x27')]=function(_0xb6b450,_0x65d42b){return db['AnalyticCustomReport'][_0xef74('0x48')]({'where':{'id':_0xb6b450[_0xef74('0x53')]['id']}})[_0xef74('0x26')](handleEntityNotFound(_0x65d42b,null))[_0xef74('0x26')](removeEntity(_0x65d42b,null))[_0xef74('0x45')](handleError(_0x65d42b,null));};exports['preview']=function(_0x4f2ba1,_0x35bd71){var _0xa3f7ca=0xa;var _0x4e33ed=[_0xef74('0x54'),'left_join',_0xef74('0x55'),'cross_join'];var _0x280c5b={'SUM':_0xef74('0x56'),'COUNT':_0xef74('0x57'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xef74('0x58'),'MIN':_0xef74('0x59'),'AVG':_0xef74('0x5a'),'GROUP_CONCAT':_0xef74('0x5b'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xef74('0x5c')};var _0x4c6f19={'SEC_TO_TIME':_0xef74('0x5d'),'DATE':_0xef74('0x5e'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xef74('0x5f')};var _0x42fe42=function(_0x584f48){return!_['includes'](['IS\x20NULL','IS\x20NOT\x20NULL',_0xef74('0x60'),_0xef74('0x61')],_0x584f48);};var _0x573368=function(_0x21c87b){if(!_0x21c87b||!_0x21c87b[_0xef74('0x62')][_0xef74('0x46')]){return'';}for(var _0x7a71bd='(',_0x4ecb31=0x0;_0x4ecb31<_0x21c87b[_0xef74('0x62')][_0xef74('0x46')];_0x4ecb31+=0x1){_0x4ecb31>0x0&&(_0x7a71bd+='\x20'+_0x21c87b['operator']+'\x20');_0x7a71bd+=_0x21c87b['rules'][_0x4ecb31][_0xef74('0x63')]?_0x573368(_0x21c87b[_0xef74('0x62')][_0x4ecb31][_0xef74('0x63')]):_0x21c87b[_0xef74('0x62')][_0x4ecb31][_0xef74('0x64')]+'\x20'+_0x21c87b[_0xef74('0x62')][_0x4ecb31]['condition']+(_0x42fe42(_0x21c87b['rules'][_0x4ecb31][_0xef74('0x65')])?'\x20'+_0x21c87b['rules'][_0x4ecb31]['value']:'');}return _0x7a71bd+')';};var _0x356ee7={'where':{'id':_0x4f2ba1[_0xef74('0x53')]['id']}},_0x755398,_0x4c3c19,_0xf70944,_0x169fe8,_0x34d4e4;_0x356ee7=_[_0xef74('0x40')]({},_0x356ee7,_0x4f2ba1[_0xef74('0x42')]);return db[_0xef74('0x2e')][_0xef74('0x48')](_0x356ee7)[_0xef74('0x26')](function(_0x4df209){if(_0x4df209){_0x755398=_0x4df209;return _0x4df209['getFields']();}return null;})['then'](function(_0x210fad){if(_0x210fad){if(!_0x210fad[_0xef74('0x46')]){throw new db['Sequelize'][(_0xef74('0x66'))](_0xef74('0x67'),0x193);}_0x4c3c19=_0x210fad;return db[_0xef74('0x68')][_0xef74('0x43')]({'raw':!![]});}return null;})['then'](function(_0x48bb9c){if(_0x48bb9c){_0xf70944=_['keyBy'](_0x48bb9c,'id');var _0x5a206d;var _0x294a52=squel[_0xef74('0x69')]();_0x294a52[_0xef74('0x6a')](_0x755398['table']);for(var _0x2391e4=0x0;_0x2391e4<_0x4c3c19[_0xef74('0x46')];_0x2391e4+=0x1){_0x5a206d=_0x4c3c19[_0x2391e4][_0xef74('0x6b')]?_0xf70944[_0x4c3c19[_0x2391e4][_0xef74('0x6b')]][_0xef74('0x6c')]:_0x4c3c19[_0x2391e4]['field'];_0x5a206d=_0x4c3c19[_0x2391e4][_0xef74('0x6d')]?_[_0xef74('0x6e')](_0x280c5b[_0x4c3c19[_0x2391e4][_0xef74('0x6d')]],'%s',_0x5a206d):_0x5a206d;_0x5a206d=_0x4c3c19[_0x2391e4][_0xef74('0x6f')]?_['replace'](_0x4c6f19[_0x4c3c19[_0x2391e4][_0xef74('0x6f')]],'%s',_0x5a206d):_0x5a206d;if(_0x4c3c19[_0x2391e4][_0xef74('0x70')]){_0x294a52[_0xef74('0x63')](_0x5a206d);}_0x4c3c19[_0x2391e4]['orderBy']&&_0x294a52[_0xef74('0x3a')](_0x5a206d,_0x4c3c19[_0x2391e4][_0xef74('0x71')]===_0xef74('0x72')?![]:!![]);_0x294a52[_0xef74('0x64')](_0x5a206d,_0x4c3c19[_0x2391e4][_0xef74('0x73')]||_0x5a206d);}if(_0x755398[_0xef74('0x74')]){_0x755398[_0xef74('0x74')]=JSON[_0xef74('0x75')](_0x755398[_0xef74('0x74')]);for(var _0x36948f=0x0;_0x36948f<_0x755398[_0xef74('0x74')][_0xef74('0x46')];_0x36948f+=0x1){if(_0x755398['joins'][_0x36948f][_0xef74('0x30')]&&_['includes'](_0x4e33ed,_0x755398[_0xef74('0x74')][_0x36948f][_0xef74('0x30')])&&_0x755398[_0xef74('0x74')][_0x36948f]['parentKey']&&_0x755398[_0xef74('0x74')][_0x36948f][_0xef74('0x76')]&&_0x755398[_0xef74('0x74')][_0x36948f]['foreignKey']){_0x294a52[_0x755398[_0xef74('0x74')][_0x36948f][_0xef74('0x30')]](_0x755398[_0xef74('0x74')][_0x36948f][_0xef74('0x76')],null,util[_0xef74('0x6f')]('%s.%s\x20=\x20%s.%s',_0x755398[_0xef74('0x77')],_0x755398['joins'][_0x36948f]['parentKey'],_0x755398[_0xef74('0x74')][_0x36948f]['foreignTable'],_0x755398['joins'][_0x36948f][_0xef74('0x78')]));}}}if(_0x755398[_0xef74('0x79')]){_0x755398[_0xef74('0x79')]=JSON[_0xef74('0x75')](_0x755398[_0xef74('0x79')]);_0x294a52[_0xef74('0x3c')](_0x573368(_0x755398[_0xef74('0x79')][_0xef74('0x63')]));}_0x34d4e4=_0x294a52[_0xef74('0x7a')]();_0x294a52[_0xef74('0x22')](_0xa3f7ca);_0x294a52[_0xef74('0x20')](0x0);logger[_0xef74('0x7b')](_0xef74('0x7c'),_0x294a52[_0xef74('0x7d')]());return dbH[_0xef74('0x7e')]['query'](_0x294a52[_0xef74('0x7d')](),{'type':dbH[_0xef74('0x7e')][_0xef74('0x7f')][_0xef74('0x80')]});}})['then'](respondWithResult(_0x35bd71,null))[_0xef74('0x45')](handleError(_0x35bd71,null));};function runReport(_0x579288,_0x345257,_0x3556ea){var _0x503607=_0x345257[_0xef74('0x2b')];var _0x2e1371=0xa;var _0x49d56f=[_0xef74('0x54'),_0xef74('0x81'),_0xef74('0x55'),_0xef74('0x82')];var _0x12f3c5={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0xef74('0x83'),'MAX':_0xef74('0x58'),'MIN':'MIN(%s)','AVG':_0xef74('0x5a'),'GROUP_CONCAT':_0xef74('0x5b'),'GROUP_CONCAT ASC':_0xef74('0x84'),'GROUP_CONCAT DESC':_0xef74('0x5c')};var _0x3b6bf5={'SEC_TO_TIME':_0xef74('0x5d'),'DATE':_0xef74('0x5e'),'HOUR':_0xef74('0x85'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xef74('0x5f')};var _0x30153c=function(_0x454a79){return!_[_0xef74('0x86')]([_0xef74('0x87'),_0xef74('0x88'),_0xef74('0x60'),_0xef74('0x61')],_0x454a79);};var _0x2fdbe1=function(_0x2b48b5){if(!_0x2b48b5||!_0x2b48b5[_0xef74('0x62')][_0xef74('0x46')]){return'';}for(var _0x28aa72='(',_0x5ef9cb=0x0;_0x5ef9cb<_0x2b48b5[_0xef74('0x62')]['length'];_0x5ef9cb+=0x1){_0x5ef9cb>0x0&&(_0x28aa72+='\x20'+_0x2b48b5[_0xef74('0x89')]+'\x20');_0x28aa72+=_0x2b48b5[_0xef74('0x62')][_0x5ef9cb]['group']?_0x2fdbe1(_0x2b48b5[_0xef74('0x62')][_0x5ef9cb][_0xef74('0x63')]):_0x2b48b5[_0xef74('0x62')][_0x5ef9cb]['field']+'\x20'+_0x2b48b5[_0xef74('0x62')][_0x5ef9cb][_0xef74('0x65')]+(_0x30153c(_0x2b48b5[_0xef74('0x62')][_0x5ef9cb]['condition'])?'\x20'+_0x2b48b5[_0xef74('0x62')][_0x5ef9cb][_0xef74('0x8a')]:'');}return _0x28aa72+')';};var _0xa831c6={'where':{'id':_0x579288['id']}},_0x3c351e,_0x187430,_0x458454,_0x71807f,_0x4a961b;_0xa831c6=_['merge']({},_0xa831c6,_0x3556ea);return db[_0xef74('0x2e')][_0xef74('0x48')](_0xa831c6)[_0xef74('0x26')](function(_0x40f2bd){if(_0x40f2bd){_0x3c351e=_0x40f2bd;return _0x40f2bd['getFields']();}return null;})[_0xef74('0x26')](function(_0x43b3b2){if(_0x43b3b2){if(!_0x43b3b2[_0xef74('0x46')]){throw new db['Sequelize']['ValidationErrorItem'](_0xef74('0x67'),0x193);}_0x187430=_0x43b3b2;return db['AnalyticMetric'][_0xef74('0x43')]({'raw':!![]});}return null;})[_0xef74('0x26')](function(_0x2f6258){if(_0x2f6258){_0x458454=_['keyBy'](_0x2f6258,'id');var _0x1e32e3;var _0x3c3875=squel[_0xef74('0x69')]();_0x3c3875[_0xef74('0x6a')](_0x3c351e[_0xef74('0x77')]);for(var _0x55249c=0x0;_0x55249c<_0x187430[_0xef74('0x46')];_0x55249c+=0x1){_0x1e32e3=_0x187430[_0x55249c][_0xef74('0x6b')]?_0x458454[_0x187430[_0x55249c][_0xef74('0x6b')]][_0xef74('0x6c')]:_0x187430[_0x55249c][_0xef74('0x64')];_0x1e32e3=_0x187430[_0x55249c][_0xef74('0x6d')]?_[_0xef74('0x6e')](_0x12f3c5[_0x187430[_0x55249c][_0xef74('0x6d')]],'%s',_0x1e32e3):_0x1e32e3;_0x1e32e3=_0x187430[_0x55249c][_0xef74('0x6f')]?_[_0xef74('0x6e')](_0x3b6bf5[_0x187430[_0x55249c][_0xef74('0x6f')]],'%s',_0x1e32e3):_0x1e32e3;if(_0x187430[_0x55249c][_0xef74('0x70')]){_0x3c3875[_0xef74('0x63')](_0x1e32e3);}_0x187430[_0x55249c][_0xef74('0x71')]&&_0x3c3875[_0xef74('0x3a')](_0x1e32e3,_0x187430[_0x55249c][_0xef74('0x71')]===_0xef74('0x72')?![]:!![]);_0x3c3875[_0xef74('0x64')](_0x1e32e3,_0x187430[_0x55249c][_0xef74('0x73')]||_0x1e32e3);}if(_0x3c351e[_0xef74('0x74')]){_0x3c351e[_0xef74('0x74')]=JSON[_0xef74('0x75')](_0x3c351e['joins']);for(var _0x3244a6=0x0;_0x3244a6<_0x3c351e[_0xef74('0x74')][_0xef74('0x46')];_0x3244a6+=0x1){if(_0x3c351e[_0xef74('0x74')][_0x3244a6][_0xef74('0x30')]&&_[_0xef74('0x86')](_0x49d56f,_0x3c351e['joins'][_0x3244a6]['type'])&&_0x3c351e['joins'][_0x3244a6]['parentKey']&&_0x3c351e[_0xef74('0x74')][_0x3244a6][_0xef74('0x76')]&&_0x3c351e['joins'][_0x3244a6][_0xef74('0x78')]){_0x3c3875[_0x3c351e[_0xef74('0x74')][_0x3244a6][_0xef74('0x30')]](_0x3c351e[_0xef74('0x74')][_0x3244a6][_0xef74('0x76')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x3c351e[_0xef74('0x77')],_0x3c351e['joins'][_0x3244a6][_0xef74('0x8b')],_0x3c351e['joins'][_0x3244a6]['foreignTable'],_0x3c351e[_0xef74('0x74')][_0x3244a6]['foreignKey']));}}}if(_0x3c351e['conditions']){_0x3c351e['conditions']=JSON[_0xef74('0x75')](_0x3c351e[_0xef74('0x79')]);_0x3c3875[_0xef74('0x3c')](_0x2fdbe1(_0x3c351e['conditions'][_0xef74('0x63')]));}_0x4a961b=_0x3c3875[_0xef74('0x7a')]();_0x3c3875['limit'](_0x2e1371);_0x3c3875[_0xef74('0x20')](0x0);return;}})['then'](function(){if(_0x345257[_0xef74('0x8c')]===_0xef74('0x8d')){return null;}var _0x31ff8d=_[_0xef74('0x40')](_0x345257,{'name':_0x345257[_0xef74('0x8e')]||_0x345257[_0xef74('0x2b')]||_0x3c351e[_0xef74('0x2b')],'basename':_0x503607,'savename':util['format'](_0xef74('0x8f'),_0x345257[_0xef74('0x2b')]||_0x3c351e['name'],require('randomstring')['generate'](0x4),_0x345257[_0xef74('0x8c')]||_0xef74('0x90')),'reportId':_0x3c351e['id'],'reportType':_0xef74('0x91')});return db[_0xef74('0x92')][_0xef74('0x49')](_0x31ff8d,{'raw':!![]});})['then'](function(_0x5f49e1){if(_0x3c351e[_0xef74('0x77')]==='cdr'){_0x4a961b['where'](_0x3c351e[_0xef74('0x77')]+_0xef74('0x93'),_0x345257['startDate'],_0x345257['endDate']);}else{_0x4a961b[_0xef74('0x3c')](_0x3c351e['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x345257[_0xef74('0x94')],_0x345257[_0xef74('0x95')]);}if(_0x5f49e1){logger['info'](_0xef74('0x96'),_0x4a961b[_0xef74('0x7d')]());require(_0xef74('0x97'))['fork'](path[_0xef74('0x54')](__dirname,_0xef74('0x98'),_0x5f49e1['output']),[_0x5f49e1['id'],_0x4a961b[_0xef74('0x7d')](),path['join'](__dirname,_0xef74('0x99'),_0x5f49e1[_0xef74('0x9a')]),_0x503607]);return _0x5f49e1;}else{var _0x30f0f3=squel[_0xef74('0x69')]();_0x30f0f3[_0xef74('0x6a')]('('+_0x4a961b['toString']()+')',_0xef74('0x9b'));_0x30f0f3[_0xef74('0x64')]('COUNT(*)',_0xef74('0x23'));_0x4a961b[_0xef74('0x22')](_0x345257[_0xef74('0x22')]||_0x2e1371);_0x4a961b[_0xef74('0x20')](_0x345257[_0xef74('0x20')]||0x0);return dbH['sequelize'][_0xef74('0x33')](_0x30f0f3['toString'](),{'type':dbH[_0xef74('0x7e')]['QueryTypes'][_0xef74('0x80')]})[_0xef74('0x26')](function(_0x3e684b){if(!_0x3e684b['length']){_0x71807f=0x0;}else{_0x71807f=_0x3e684b[0x0][_0xef74('0x23')]||0x0;}return dbH[_0xef74('0x7e')]['query'](_0x4a961b[_0xef74('0x7d')](),{'type':dbH[_0xef74('0x7e')][_0xef74('0x7f')][_0xef74('0x80')]});})[_0xef74('0x26')](function(_0x582b88){return{'rows':_0x582b88||[],'count':_0x71807f};});}});}exports[_0xef74('0x9c')]=function(_0x24055a,_0x390c5e){return runReport(_0x24055a[_0xef74('0x53')],_0x24055a[_0xef74('0x33')],_0x24055a[_0xef74('0x42')])[_0xef74('0x26')](respondWithResult(_0x390c5e,null))[_0xef74('0x45')](handleError(_0x390c5e,null));};exports[_0xef74('0x9d')]=runReport;exports[_0xef74('0x33')]=function(_0x1be03d,_0x1a122d){var _0xc39473=0xa;var _0x2fbf8a=[_0xef74('0x54'),_0xef74('0x81'),'right_join',_0xef74('0x82')];var _0x201946={'SUM':'SUM(%s)','COUNT':_0xef74('0x57'),'COUNT DISTINCT':_0xef74('0x83'),'MAX':_0xef74('0x58'),'MIN':_0xef74('0x59'),'AVG':_0xef74('0x5a'),'GROUP_CONCAT':_0xef74('0x5b'),'GROUP_CONCAT ASC':_0xef74('0x84'),'GROUP_CONCAT DESC':_0xef74('0x5c')};var _0xbf487a={'SEC_TO_TIME':_0xef74('0x5d'),'DATE':_0xef74('0x5e'),'HOUR':_0xef74('0x85'),'ROUND':_0xef74('0x9e'),'UNIX_TIMESTAMP':_0xef74('0x5f')};var _0xfd8a9b=function(_0x2e13d7){return!_[_0xef74('0x86')]([_0xef74('0x87'),_0xef74('0x88'),_0xef74('0x60'),_0xef74('0x61')],_0x2e13d7);};var _0x24a8bf=function(_0x3ab78c){if(!_0x3ab78c||!_0x3ab78c[_0xef74('0x62')][_0xef74('0x46')]){return'';}for(var _0x12329b='(',_0x4ffd8c=0x0;_0x4ffd8c<_0x3ab78c[_0xef74('0x62')][_0xef74('0x46')];_0x4ffd8c+=0x1){_0x4ffd8c>0x0&&(_0x12329b+='\x20'+_0x3ab78c[_0xef74('0x89')]+'\x20');_0x12329b+=_0x3ab78c[_0xef74('0x62')][_0x4ffd8c][_0xef74('0x63')]?_0x24a8bf(_0x3ab78c[_0xef74('0x62')][_0x4ffd8c][_0xef74('0x63')]):_0x3ab78c[_0xef74('0x62')][_0x4ffd8c][_0xef74('0x64')]+'\x20'+_0x3ab78c[_0xef74('0x62')][_0x4ffd8c][_0xef74('0x65')]+(_0xfd8a9b(_0x3ab78c[_0xef74('0x62')][_0x4ffd8c][_0xef74('0x65')])?'\x20'+_0x3ab78c[_0xef74('0x62')][_0x4ffd8c][_0xef74('0x8a')]:'');}return _0x12329b+')';};var _0x3fa43a={'where':{'id':_0x1be03d['params']['id']}},_0x39b9dc,_0x185a29,_0x1a9fc1,_0x4cee0d,_0x1ab63f;_0x3fa43a=_[_0xef74('0x40')]({},_0x3fa43a,_0x1be03d[_0xef74('0x42')]);return db['AnalyticCustomReport'][_0xef74('0x48')](_0x3fa43a)['then'](function(_0x5a9148){if(_0x5a9148){_0x39b9dc=_0x5a9148;return _0x5a9148['getFields']();}return null;})[_0xef74('0x26')](function(_0x3b19f8){if(_0x3b19f8){if(!_0x3b19f8['length']){throw new db[(_0xef74('0x9f'))][(_0xef74('0x66'))](_0xef74('0x67'),0x193);}_0x185a29=_0x3b19f8;return db[_0xef74('0x68')]['findAll']({'raw':!![]});}return null;})[_0xef74('0x26')](function(_0x15f11f){if(_0x15f11f){_0x1a9fc1=_[_0xef74('0xa0')](_0x15f11f,'id');var _0x37040c;var _0x2d3ef3=squel[_0xef74('0x69')]();_0x2d3ef3[_0xef74('0x6a')](_0x39b9dc[_0xef74('0x77')]);for(var _0x4f398b=0x0;_0x4f398b<_0x185a29[_0xef74('0x46')];_0x4f398b+=0x1){_0x37040c=_0x185a29[_0x4f398b][_0xef74('0x6b')]?_0x1a9fc1[_0x185a29[_0x4f398b]['MetricId']][_0xef74('0x6c')]:_0x185a29[_0x4f398b]['field'];_0x37040c=_0x185a29[_0x4f398b][_0xef74('0x6d')]?_[_0xef74('0x6e')](_0x201946[_0x185a29[_0x4f398b][_0xef74('0x6d')]],'%s',_0x37040c):_0x37040c;_0x37040c=_0x185a29[_0x4f398b][_0xef74('0x6f')]?_[_0xef74('0x6e')](_0xbf487a[_0x185a29[_0x4f398b][_0xef74('0x6f')]],'%s',_0x37040c):_0x37040c;if(_0x185a29[_0x4f398b][_0xef74('0x70')]){_0x2d3ef3[_0xef74('0x63')](_0x37040c);}_0x185a29[_0x4f398b][_0xef74('0x71')]&&_0x2d3ef3[_0xef74('0x3a')](_0x37040c,_0x185a29[_0x4f398b][_0xef74('0x71')]===_0xef74('0x72')?![]:!![]);_0x2d3ef3['field'](_0x37040c,_0x185a29[_0x4f398b][_0xef74('0x73')]||_0x37040c);}if(_0x39b9dc[_0xef74('0x74')]){_0x39b9dc[_0xef74('0x74')]=JSON[_0xef74('0x75')](_0x39b9dc[_0xef74('0x74')]);for(var _0x534de9=0x0;_0x534de9<_0x39b9dc[_0xef74('0x74')][_0xef74('0x46')];_0x534de9+=0x1){if(_0x39b9dc['joins'][_0x534de9][_0xef74('0x30')]&&_[_0xef74('0x86')](_0x2fbf8a,_0x39b9dc[_0xef74('0x74')][_0x534de9][_0xef74('0x30')])&&_0x39b9dc[_0xef74('0x74')][_0x534de9][_0xef74('0x8b')]&&_0x39b9dc[_0xef74('0x74')][_0x534de9][_0xef74('0x76')]&&_0x39b9dc[_0xef74('0x74')][_0x534de9][_0xef74('0x78')]){_0x2d3ef3[_0x39b9dc['joins'][_0x534de9][_0xef74('0x30')]](_0x39b9dc[_0xef74('0x74')][_0x534de9]['foreignTable'],null,util['format']('%s.%s\x20=\x20%s.%s',_0x39b9dc['table'],_0x39b9dc[_0xef74('0x74')][_0x534de9][_0xef74('0x8b')],_0x39b9dc[_0xef74('0x74')][_0x534de9][_0xef74('0x76')],_0x39b9dc['joins'][_0x534de9][_0xef74('0x78')]));}}}if(_0x39b9dc[_0xef74('0x79')]){_0x39b9dc[_0xef74('0x79')]=JSON['parse'](_0x39b9dc['conditions']);_0x2d3ef3[_0xef74('0x3c')](_0x24a8bf(_0x39b9dc[_0xef74('0x79')][_0xef74('0x63')]));}_0x1ab63f=_0x2d3ef3[_0xef74('0x7a')]();_0x2d3ef3[_0xef74('0x22')](_0xc39473);_0x2d3ef3[_0xef74('0x20')](0x0);logger[_0xef74('0x7b')]('Limited\x20Query:',_0x2d3ef3[_0xef74('0x7d')]());return dbH['sequelize'][_0xef74('0x33')](_0x2d3ef3['toString'](),{'type':dbH[_0xef74('0x7e')]['QueryTypes'][_0xef74('0x80')]});}})[_0xef74('0x26')](function(){return{'sql':_0x1ab63f[_0xef74('0x7d')]()};})[_0xef74('0x26')](respondWithResult(_0x1a122d,null))['catch'](handleError(_0x1a122d,null));};