515448b815884048dda3e8733f36180b9cf2beae
[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 _0x97c1=['Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','alias','joins','parse','foreignTable','%s.%s\x20=\x20%s.%s','parentKey','conditions','clone','sequelize','QueryTypes','COUNT(DISTINCT\x20%s)','MAX(%s)','AVG(%s)','HOUR(%s)','IS\x20EMPTY','value','Sequelize','groupBy','orderBy','DESC','foreignKey','debug','Limited\x20Query:','toString','SELECT','No\x20available\x20data','output','fullPath','%s-%s.%s','generate','csv','custom','AnalyticExtractedReport','cdr','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','run','IS\x20NOT\x20NULL','html-pdf','eml-format','zip-dir','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH','sendStatus','status','end','json','offset','set','Content-Range','apply','save','update','then','destroy','get','CustomReports','error','stack','name','send','index','map','AnalyticCustomReport','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show','params','rawAttributes','filtears','find','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','UserProfileSection','userProfileId','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20EMPTY','operator','rules','group','field','condition','getFields','ValidationErrorItem'];(function(_0x1bf292,_0x3c2e7a){var _0x259cea=function(_0x54fd85){while(--_0x54fd85){_0x1bf292['push'](_0x1bf292['shift']());}};_0x259cea(++_0x3c2e7a);}(_0x97c1,0xdf));var _0x197c=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x97c1[_0x20a584];return _0x4b41a8;};'use strict';var pdf=require(_0x197c('0x0'));var emlformat=require(_0x197c('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x197c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x197c('0x3'));var BPromise=require(_0x197c('0x4'));var Mustache=require(_0x197c('0x5'));var util=require(_0x197c('0x6'));var path=require(_0x197c('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x197c('0x8'));var fs=require('fs');var _=require(_0x197c('0x9'));var squel=require(_0x197c('0xa'));var crypto=require(_0x197c('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x197c('0xc'));var querystring=require('querystring');var Papa=require(_0x197c('0xd'));var Redis=require(_0x197c('0xe'));var authService=require(_0x197c('0xf'));var qs=require(_0x197c('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x197c('0x11'));var logger=require(_0x197c('0x12'))(_0x197c('0x13'));var utils=require(_0x197c('0x14'));var config=require(_0x197c('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x197c('0x16'))['db'];var dbH=require(_0x197c('0x16'))[_0x197c('0x17')];function respondWithStatusCode(_0x1adcfa,_0x567658){_0x567658=_0x567658||0xcc;return function(_0x10c4db){if(_0x10c4db){return _0x1adcfa[_0x197c('0x18')](_0x567658);}return _0x1adcfa[_0x197c('0x19')](_0x567658)[_0x197c('0x1a')]();};}function respondWithResult(_0x188ff2,_0x109af2){_0x109af2=_0x109af2||0xc8;return function(_0x587958){if(_0x587958){return _0x188ff2['status'](_0x109af2)[_0x197c('0x1b')](_0x587958);}};}function respondWithFilteredResult(_0x2bc612,_0x2083d4){return function(_0x24901f){if(_0x24901f){var _0x33f8d3=_0x24901f['count'],_0x7e302f=_0x2083d4[_0x197c('0x1c')],_0x437050=_0x2083d4['offset']+_0x2083d4['limit'],_0x75beba;if(_0x437050>=_0x33f8d3){_0x437050=_0x33f8d3;_0x75beba=0xc8;}else{_0x75beba=0xce;}_0x2bc612[_0x197c('0x19')](_0x75beba);return _0x2bc612[_0x197c('0x1d')](_0x197c('0x1e'),_0x7e302f+'-'+_0x437050+'/'+_0x33f8d3)[_0x197c('0x1b')](_0x24901f);}return null;};}function patchUpdates(_0x4a4994){return function(_0x6b0be0){try{jsonpatch[_0x197c('0x1f')](_0x6b0be0,_0x4a4994,!![]);}catch(_0x3c16d0){return BPromise['reject'](_0x3c16d0);}return _0x6b0be0[_0x197c('0x20')]();};}function saveUpdates(_0x27b3df,_0x3b5c4c){return function(_0xf3aeda){if(_0xf3aeda){return _0xf3aeda[_0x197c('0x21')](_0x27b3df)[_0x197c('0x22')](function(_0x362bbf){return _0x362bbf;});}return null;};}function removeEntity(_0x2092a0,_0x8963fd){return function(_0x3dfb7b){if(_0x3dfb7b){return _0x3dfb7b[_0x197c('0x23')]()[_0x197c('0x22')](function(){var _0x174942=_0x3dfb7b[_0x197c('0x24')]({'plain':!![]});var _0x37b040=_0x197c('0x25');return db['UserProfileResource'][_0x197c('0x23')]({'where':{'type':_0x37b040,'resourceId':_0x174942['id']}})[_0x197c('0x22')](function(){return _0x3dfb7b;});})[_0x197c('0x22')](function(){_0x2092a0['status'](0xcc)[_0x197c('0x1a')]();});}};}function handleEntityNotFound(_0x3331ac,_0x4c3337){return function(_0x5e7bc9){if(!_0x5e7bc9){_0x3331ac[_0x197c('0x18')](0x194);}return _0x5e7bc9;};}function handleError(_0x48f759,_0xfbca7a){_0xfbca7a=_0xfbca7a||0x1f4;return function(_0x14b0aa){logger[_0x197c('0x26')](_0x14b0aa[_0x197c('0x27')]);if(_0x14b0aa[_0x197c('0x28')]){delete _0x14b0aa[_0x197c('0x28')];}_0x48f759[_0x197c('0x19')](_0xfbca7a)[_0x197c('0x29')](_0x14b0aa);};}exports[_0x197c('0x2a')]=function(_0x5df39e,_0x50dea3){var _0x574274={},_0x57c289={},_0x5f7425={'count':0x0,'rows':[]};var _0x4c9256=_[_0x197c('0x2b')](db[_0x197c('0x2c')]['rawAttributes'],function(_0x422ac6){return{'name':_0x422ac6['fieldName'],'type':_0x422ac6[_0x197c('0x2d')][_0x197c('0x2e')]};});_0x57c289[_0x197c('0x2f')]=_[_0x197c('0x2b')](_0x4c9256,_0x197c('0x28'));_0x57c289[_0x197c('0x30')]=_[_0x197c('0x31')](_0x5df39e[_0x197c('0x30')]);_0x57c289[_0x197c('0x32')]=_['intersection'](_0x57c289['model'],_0x57c289[_0x197c('0x30')]);_0x574274[_0x197c('0x33')]=_[_0x197c('0x34')](_0x57c289[_0x197c('0x2f')],qs[_0x197c('0x35')](_0x5df39e[_0x197c('0x30')][_0x197c('0x35')]));_0x574274['attributes']=_0x574274['attributes'][_0x197c('0x36')]?_0x574274[_0x197c('0x33')]:_0x57c289['model'];if(!_0x5df39e['query'][_0x197c('0x37')](_0x197c('0x38'))){_0x574274[_0x197c('0x39')]=qs[_0x197c('0x39')](_0x5df39e[_0x197c('0x30')][_0x197c('0x39')]);_0x574274[_0x197c('0x1c')]=qs[_0x197c('0x1c')](_0x5df39e[_0x197c('0x30')]['offset']);}_0x574274[_0x197c('0x3a')]=qs[_0x197c('0x3b')](_0x5df39e[_0x197c('0x30')][_0x197c('0x3b')]);_0x574274[_0x197c('0x3c')]=qs[_0x197c('0x32')](_['pick'](_0x5df39e[_0x197c('0x30')],_0x57c289[_0x197c('0x32')]),_0x4c9256);if(_0x5df39e[_0x197c('0x30')]['filter']){_0x574274[_0x197c('0x3c')]=_[_0x197c('0x3d')](_0x574274[_0x197c('0x3c')],{'$or':_[_0x197c('0x2b')](_0x4c9256,function(_0x2970b4){if(_0x2970b4[_0x197c('0x2d')]!==_0x197c('0x3e')){var _0x28b6d7={};_0x28b6d7[_0x2970b4[_0x197c('0x28')]]={'$like':'%'+_0x5df39e[_0x197c('0x30')]['filter']+'%'};return _0x28b6d7;}})});}_0x574274=_[_0x197c('0x3d')]({},_0x574274,_0x5df39e[_0x197c('0x3f')]);var _0x5c70d6={'where':_0x574274['where']};return db[_0x197c('0x2c')][_0x197c('0x40')](_0x5c70d6)[_0x197c('0x22')](function(_0x28f172){_0x5f7425[_0x197c('0x40')]=_0x28f172;if(_0x5df39e['query'][_0x197c('0x41')]){_0x574274[_0x197c('0x42')]=[{'all':!![]}];}return db[_0x197c('0x2c')][_0x197c('0x43')](_0x574274);})[_0x197c('0x22')](function(_0x4b6901){_0x5f7425[_0x197c('0x44')]=_0x4b6901;return _0x5f7425;})[_0x197c('0x22')](respondWithFilteredResult(_0x50dea3,_0x574274))[_0x197c('0x45')](handleError(_0x50dea3,null));};exports[_0x197c('0x46')]=function(_0x2f3c4b,_0x5c3660){var _0x3054c2={'raw':![],'where':{'id':_0x2f3c4b[_0x197c('0x47')]['id']}},_0x3f417d={};_0x3f417d[_0x197c('0x2f')]=_[_0x197c('0x31')](db[_0x197c('0x2c')][_0x197c('0x48')]);_0x3f417d[_0x197c('0x30')]=_[_0x197c('0x31')](_0x2f3c4b[_0x197c('0x30')]);_0x3f417d[_0x197c('0x49')]=_['intersection'](_0x3f417d['model'],_0x3f417d['query']);_0x3054c2['attributes']=_[_0x197c('0x34')](_0x3f417d[_0x197c('0x2f')],qs['fields'](_0x2f3c4b[_0x197c('0x30')][_0x197c('0x35')]));_0x3054c2['attributes']=_0x3054c2[_0x197c('0x33')][_0x197c('0x36')]?_0x3054c2['attributes']:_0x3f417d[_0x197c('0x2f')];if(_0x2f3c4b[_0x197c('0x30')]['includeAll']){_0x3054c2[_0x197c('0x42')]=[{'all':!![]}];}_0x3054c2=_[_0x197c('0x3d')]({},_0x3054c2,_0x2f3c4b[_0x197c('0x3f')]);return db['AnalyticCustomReport'][_0x197c('0x4a')](_0x3054c2)[_0x197c('0x22')](handleEntityNotFound(_0x5c3660,null))[_0x197c('0x22')](respondWithResult(_0x5c3660,null))[_0x197c('0x45')](handleError(_0x5c3660,null));};exports['create']=function(_0x378cfc,_0x42491b){return db[_0x197c('0x2c')]['create'](_0x378cfc['body'],{})[_0x197c('0x22')](function(_0x332c75){var _0x364bc5=_0x378cfc[_0x197c('0x4b')][_0x197c('0x24')]({'plain':!![]});if(!_0x364bc5)throw new Error(_0x197c('0x4c'));if(_0x364bc5['role']===_0x197c('0x4b')){var _0x5cd670=_0x332c75[_0x197c('0x24')]({'plain':!![]});var _0x2a6bde=_0x197c('0x4d');return db[_0x197c('0x4e')][_0x197c('0x4a')]({'where':{'name':_0x2a6bde,'userProfileId':_0x364bc5[_0x197c('0x4f')]},'raw':!![]})[_0x197c('0x22')](function(_0x63650f){if(_0x63650f&&_0x63650f['autoAssociation']===0x0){return db[_0x197c('0x50')][_0x197c('0x51')]({'name':_0x5cd670[_0x197c('0x28')],'resourceId':_0x5cd670['id'],'type':'CustomReports','sectionId':_0x63650f['id']},{})[_0x197c('0x22')](function(){return _0x332c75;});}else{return _0x332c75;}})['catch'](function(_0x204592){logger[_0x197c('0x26')](_0x197c('0x52'),_0x204592);throw _0x204592;});}return _0x332c75;})[_0x197c('0x22')](respondWithResult(_0x42491b,0xc9))[_0x197c('0x45')](handleError(_0x42491b,null));};exports[_0x197c('0x21')]=function(_0x360599,_0x21d21f){if(_0x360599['body']['id']){delete _0x360599[_0x197c('0x53')]['id'];}return db[_0x197c('0x2c')][_0x197c('0x4a')]({'where':{'id':_0x360599['params']['id']}})[_0x197c('0x22')](handleEntityNotFound(_0x21d21f,null))[_0x197c('0x22')](saveUpdates(_0x360599[_0x197c('0x53')],null))[_0x197c('0x22')](respondWithResult(_0x21d21f,null))[_0x197c('0x45')](handleError(_0x21d21f,null));};exports['destroy']=function(_0x4dfaeb,_0x249394){return db[_0x197c('0x2c')][_0x197c('0x4a')]({'where':{'id':_0x4dfaeb[_0x197c('0x47')]['id']}})[_0x197c('0x22')](handleEntityNotFound(_0x249394,null))['then'](removeEntity(_0x249394,null))['catch'](handleError(_0x249394,null));};exports[_0x197c('0x54')]=function(_0x2974a5,_0x5855bd){var _0xb3747b=0xa;var _0x23a19c=[_0x197c('0x55'),_0x197c('0x56'),_0x197c('0x57'),_0x197c('0x58')];var _0x4e8c5b={'SUM':_0x197c('0x59'),'COUNT':_0x197c('0x5a'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x197c('0x5b'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x197c('0x5c'),'GROUP_CONCAT ASC':_0x197c('0x5d'),'GROUP_CONCAT DESC':_0x197c('0x5e')};var _0x487c37={'SEC_TO_TIME':_0x197c('0x5f'),'DATE':_0x197c('0x60'),'HOUR':'HOUR(%s)','ROUND':_0x197c('0x61'),'UNIX_TIMESTAMP':_0x197c('0x62')};var _0x767719=function(_0x5ebd0b){return!_[_0x197c('0x63')]([_0x197c('0x64'),'IS\x20NOT\x20NULL','IS\x20EMPTY',_0x197c('0x65')],_0x5ebd0b);};var _0x28a2fc=function(_0x16a261){if(!_0x16a261||!_0x16a261['rules'][_0x197c('0x36')]){return'';}for(var _0xa5bb4a='(',_0x32e8ba=0x0;_0x32e8ba<_0x16a261['rules'][_0x197c('0x36')];_0x32e8ba+=0x1){_0x32e8ba>0x0&&(_0xa5bb4a+='\x20'+_0x16a261[_0x197c('0x66')]+'\x20');_0xa5bb4a+=_0x16a261[_0x197c('0x67')][_0x32e8ba][_0x197c('0x68')]?_0x28a2fc(_0x16a261[_0x197c('0x67')][_0x32e8ba][_0x197c('0x68')]):_0x16a261[_0x197c('0x67')][_0x32e8ba][_0x197c('0x69')]+'\x20'+_0x16a261[_0x197c('0x67')][_0x32e8ba][_0x197c('0x6a')]+(_0x767719(_0x16a261['rules'][_0x32e8ba][_0x197c('0x6a')])?'\x20'+_0x16a261['rules'][_0x32e8ba]['value']:'');}return _0xa5bb4a+')';};var _0x4a8e13={'where':{'id':_0x2974a5['params']['id']}},_0x500c8f,_0x1e8441,_0x30bb6d,_0xbf0481,_0x3ad734;_0x4a8e13=_[_0x197c('0x3d')]({},_0x4a8e13,_0x2974a5['options']);return db[_0x197c('0x2c')]['find'](_0x4a8e13)[_0x197c('0x22')](function(_0x4e319d){if(_0x4e319d){_0x500c8f=_0x4e319d;return _0x4e319d[_0x197c('0x6b')]();}return null;})[_0x197c('0x22')](function(_0x2c5002){if(_0x2c5002){if(!_0x2c5002[_0x197c('0x36')]){throw new db['Sequelize'][(_0x197c('0x6c'))](_0x197c('0x6d'),0x193);}_0x1e8441=_0x2c5002;return db[_0x197c('0x6e')]['findAll']({'raw':!![]});}return null;})[_0x197c('0x22')](function(_0x2f3600){if(_0x2f3600){_0x30bb6d=_[_0x197c('0x6f')](_0x2f3600,'id');var _0x29b68f;var _0x5596f3=squel[_0x197c('0x70')]();_0x5596f3[_0x197c('0x71')](_0x500c8f[_0x197c('0x72')]);for(var _0x2c7e66=0x0;_0x2c7e66<_0x1e8441[_0x197c('0x36')];_0x2c7e66+=0x1){_0x29b68f=_0x1e8441[_0x2c7e66][_0x197c('0x73')]?_0x30bb6d[_0x1e8441[_0x2c7e66][_0x197c('0x73')]][_0x197c('0x74')]:_0x1e8441[_0x2c7e66][_0x197c('0x69')];_0x29b68f=_0x1e8441[_0x2c7e66][_0x197c('0x75')]?_[_0x197c('0x76')](_0x4e8c5b[_0x1e8441[_0x2c7e66][_0x197c('0x75')]],'%s',_0x29b68f):_0x29b68f;_0x29b68f=_0x1e8441[_0x2c7e66][_0x197c('0x77')]?_['replace'](_0x487c37[_0x1e8441[_0x2c7e66]['format']],'%s',_0x29b68f):_0x29b68f;if(_0x1e8441[_0x2c7e66]['groupBy']){_0x5596f3[_0x197c('0x68')](_0x29b68f);}_0x1e8441[_0x2c7e66]['orderBy']&&_0x5596f3[_0x197c('0x3a')](_0x29b68f,_0x1e8441[_0x2c7e66]['orderBy']==='DESC'?![]:!![]);_0x5596f3[_0x197c('0x69')](_0x29b68f,_0x1e8441[_0x2c7e66][_0x197c('0x78')]||_0x29b68f);}if(_0x500c8f[_0x197c('0x79')]){_0x500c8f['joins']=JSON[_0x197c('0x7a')](_0x500c8f[_0x197c('0x79')]);for(var _0x58e473=0x0;_0x58e473<_0x500c8f[_0x197c('0x79')][_0x197c('0x36')];_0x58e473+=0x1){if(_0x500c8f[_0x197c('0x79')][_0x58e473][_0x197c('0x2d')]&&_['includes'](_0x23a19c,_0x500c8f[_0x197c('0x79')][_0x58e473]['type'])&&_0x500c8f[_0x197c('0x79')][_0x58e473]['parentKey']&&_0x500c8f[_0x197c('0x79')][_0x58e473][_0x197c('0x7b')]&&_0x500c8f[_0x197c('0x79')][_0x58e473]['foreignKey']){_0x5596f3[_0x500c8f[_0x197c('0x79')][_0x58e473][_0x197c('0x2d')]](_0x500c8f[_0x197c('0x79')][_0x58e473]['foreignTable'],null,util[_0x197c('0x77')](_0x197c('0x7c'),_0x500c8f[_0x197c('0x72')],_0x500c8f[_0x197c('0x79')][_0x58e473][_0x197c('0x7d')],_0x500c8f[_0x197c('0x79')][_0x58e473]['foreignTable'],_0x500c8f[_0x197c('0x79')][_0x58e473]['foreignKey']));}}}if(_0x500c8f['conditions']){_0x500c8f[_0x197c('0x7e')]=JSON[_0x197c('0x7a')](_0x500c8f['conditions']);_0x5596f3[_0x197c('0x3c')](_0x28a2fc(_0x500c8f[_0x197c('0x7e')][_0x197c('0x68')]));}_0x3ad734=_0x5596f3[_0x197c('0x7f')]();_0x5596f3[_0x197c('0x39')](_0xb3747b);_0x5596f3['offset'](0x0);logger['debug']('Limited\x20Query:',_0x5596f3['toString']());return db[_0x197c('0x80')][_0x197c('0x30')](_0x5596f3['toString'](),{'type':db['sequelize'][_0x197c('0x81')]['SELECT']});}})['then'](respondWithResult(_0x5855bd,null))[_0x197c('0x45')](handleError(_0x5855bd,null));};function runReport(_0x182338,_0x1b2dd4,_0xca4458){var _0xd74af9=_0x1b2dd4[_0x197c('0x28')];var _0x48c3d8=0xa;var _0x2d0b21=[_0x197c('0x55'),_0x197c('0x56'),_0x197c('0x57'),_0x197c('0x58')];var _0x3ba9a6={'SUM':_0x197c('0x59'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x197c('0x82'),'MAX':_0x197c('0x83'),'MIN':_0x197c('0x5b'),'AVG':_0x197c('0x84'),'GROUP_CONCAT':_0x197c('0x5c'),'GROUP_CONCAT ASC':_0x197c('0x5d'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x704f3={'SEC_TO_TIME':_0x197c('0x5f'),'DATE':'DATE(%s)','HOUR':_0x197c('0x85'),'ROUND':_0x197c('0x61'),'UNIX_TIMESTAMP':_0x197c('0x62')};var _0x13a742=function(_0x15f9a7){return!_['includes'](['IS\x20NULL','IS\x20NOT\x20NULL',_0x197c('0x86'),'IS\x20NOT\x20EMPTY'],_0x15f9a7);};var _0x4c2a67=function(_0x1b7379){if(!_0x1b7379||!_0x1b7379[_0x197c('0x67')][_0x197c('0x36')]){return'';}for(var _0x179af3='(',_0x652281=0x0;_0x652281<_0x1b7379['rules']['length'];_0x652281+=0x1){_0x652281>0x0&&(_0x179af3+='\x20'+_0x1b7379[_0x197c('0x66')]+'\x20');_0x179af3+=_0x1b7379[_0x197c('0x67')][_0x652281]['group']?_0x4c2a67(_0x1b7379[_0x197c('0x67')][_0x652281][_0x197c('0x68')]):_0x1b7379[_0x197c('0x67')][_0x652281][_0x197c('0x69')]+'\x20'+_0x1b7379[_0x197c('0x67')][_0x652281][_0x197c('0x6a')]+(_0x13a742(_0x1b7379['rules'][_0x652281][_0x197c('0x6a')])?'\x20'+_0x1b7379[_0x197c('0x67')][_0x652281][_0x197c('0x87')]:'');}return _0x179af3+')';};var _0x26fe80={'where':{'id':_0x182338['id']}},_0x33e346,_0x576ca6,_0x525254,_0xe515a1,_0x590996;_0x26fe80=_[_0x197c('0x3d')]({},_0x26fe80,_0xca4458);return db[_0x197c('0x2c')][_0x197c('0x4a')](_0x26fe80)[_0x197c('0x22')](function(_0x33715a){if(_0x33715a){_0x33e346=_0x33715a;return _0x33715a['getFields']();}return null;})[_0x197c('0x22')](function(_0x176413){if(_0x176413){if(!_0x176413[_0x197c('0x36')]){throw new db[(_0x197c('0x88'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x576ca6=_0x176413;return db[_0x197c('0x6e')]['findAll']({'raw':!![]});}return null;})['then'](function(_0x34b3d6){if(_0x34b3d6){_0x525254=_[_0x197c('0x6f')](_0x34b3d6,'id');var _0x39b79a;var _0x595eec=squel['select']();_0x595eec[_0x197c('0x71')](_0x33e346[_0x197c('0x72')]);for(var _0x545061=0x0;_0x545061<_0x576ca6[_0x197c('0x36')];_0x545061+=0x1){_0x39b79a=_0x576ca6[_0x545061][_0x197c('0x73')]?_0x525254[_0x576ca6[_0x545061]['MetricId']][_0x197c('0x74')]:_0x576ca6[_0x545061][_0x197c('0x69')];_0x39b79a=_0x576ca6[_0x545061]['function']?_[_0x197c('0x76')](_0x3ba9a6[_0x576ca6[_0x545061]['function']],'%s',_0x39b79a):_0x39b79a;_0x39b79a=_0x576ca6[_0x545061][_0x197c('0x77')]?_[_0x197c('0x76')](_0x704f3[_0x576ca6[_0x545061][_0x197c('0x77')]],'%s',_0x39b79a):_0x39b79a;if(_0x576ca6[_0x545061][_0x197c('0x89')]){_0x595eec[_0x197c('0x68')](_0x39b79a);}_0x576ca6[_0x545061]['orderBy']&&_0x595eec[_0x197c('0x3a')](_0x39b79a,_0x576ca6[_0x545061][_0x197c('0x8a')]===_0x197c('0x8b')?![]:!![]);_0x595eec[_0x197c('0x69')](_0x39b79a,_0x576ca6[_0x545061][_0x197c('0x78')]||_0x39b79a);}if(_0x33e346[_0x197c('0x79')]){_0x33e346[_0x197c('0x79')]=JSON['parse'](_0x33e346[_0x197c('0x79')]);for(var _0x4b3538=0x0;_0x4b3538<_0x33e346[_0x197c('0x79')][_0x197c('0x36')];_0x4b3538+=0x1){if(_0x33e346[_0x197c('0x79')][_0x4b3538][_0x197c('0x2d')]&&_['includes'](_0x2d0b21,_0x33e346[_0x197c('0x79')][_0x4b3538][_0x197c('0x2d')])&&_0x33e346[_0x197c('0x79')][_0x4b3538]['parentKey']&&_0x33e346[_0x197c('0x79')][_0x4b3538][_0x197c('0x7b')]&&_0x33e346[_0x197c('0x79')][_0x4b3538][_0x197c('0x8c')]){_0x595eec[_0x33e346[_0x197c('0x79')][_0x4b3538][_0x197c('0x2d')]](_0x33e346[_0x197c('0x79')][_0x4b3538]['foreignTable'],null,util[_0x197c('0x77')]('%s.%s\x20=\x20%s.%s',_0x33e346[_0x197c('0x72')],_0x33e346[_0x197c('0x79')][_0x4b3538][_0x197c('0x7d')],_0x33e346[_0x197c('0x79')][_0x4b3538][_0x197c('0x7b')],_0x33e346['joins'][_0x4b3538][_0x197c('0x8c')]));}}}if(_0x33e346[_0x197c('0x7e')]){_0x33e346[_0x197c('0x7e')]=JSON[_0x197c('0x7a')](_0x33e346[_0x197c('0x7e')]);_0x595eec['where'](_0x4c2a67(_0x33e346['conditions'][_0x197c('0x68')]));}_0x590996=_0x595eec[_0x197c('0x7f')]();_0x595eec[_0x197c('0x39')](_0x48c3d8);_0x595eec[_0x197c('0x1c')](0x0);logger[_0x197c('0x8d')](_0x197c('0x8e'),_0x595eec[_0x197c('0x8f')]());return db[_0x197c('0x80')]['query'](_0x595eec[_0x197c('0x8f')](),{'type':db[_0x197c('0x80')]['QueryTypes'][_0x197c('0x90')]});}})[_0x197c('0x22')](function(_0x58d20d){if(!_0x58d20d[_0x197c('0x36')]){throw new db[(_0x197c('0x88'))][(_0x197c('0x6c'))](_0x197c('0x91'),0xcc);}if(_0x1b2dd4[_0x197c('0x92')]==='web'){return null;}var _0x5563ff=_[_0x197c('0x3d')](_0x1b2dd4,{'name':_0x1b2dd4[_0x197c('0x93')]||_0x1b2dd4[_0x197c('0x28')]||_0x33e346[_0x197c('0x28')],'basename':_0xd74af9,'savename':util[_0x197c('0x77')](_0x197c('0x94'),_0x1b2dd4[_0x197c('0x28')]||_0x33e346[_0x197c('0x28')],require('randomstring')[_0x197c('0x95')](0x4),_0x1b2dd4[_0x197c('0x92')]||_0x197c('0x96')),'reportId':_0x33e346['id'],'reportType':_0x197c('0x97')});return db[_0x197c('0x98')][_0x197c('0x51')](_0x5563ff,{'raw':!![]});})['then'](function(_0x290215){if(_0x33e346[_0x197c('0x72')]===_0x197c('0x99')){_0x590996['where'](_0x33e346[_0x197c('0x72')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x1b2dd4[_0x197c('0x9a')],_0x1b2dd4[_0x197c('0x9b')]);}else{_0x590996[_0x197c('0x3c')](_0x33e346[_0x197c('0x72')]+_0x197c('0x9c'),_0x1b2dd4[_0x197c('0x9a')],_0x1b2dd4[_0x197c('0x9b')]);}if(_0x290215){logger['info'](_0x197c('0x9d'),_0x590996[_0x197c('0x8f')]());require(_0x197c('0x9e'))[_0x197c('0x9f')](path['join'](__dirname,_0x197c('0xa0'),_0x290215['output']),[_0x290215['id'],_0x590996[_0x197c('0x8f')](),path[_0x197c('0x55')](__dirname,_0x197c('0xa1'),_0x290215[_0x197c('0xa2')]),_0xd74af9]);return _0x290215;}else{var _0x480380=squel[_0x197c('0x70')]();_0x480380[_0x197c('0x71')]('('+_0x590996[_0x197c('0x8f')]()+')',_0x197c('0xa3'));_0x480380[_0x197c('0x69')]('COUNT(*)',_0x197c('0x40'));_0x590996[_0x197c('0x39')](_0x1b2dd4[_0x197c('0x39')]||_0x48c3d8);_0x590996[_0x197c('0x1c')](_0x1b2dd4[_0x197c('0x1c')]||0x0);return dbH['sequelize']['query'](_0x480380[_0x197c('0x8f')](),{'type':dbH[_0x197c('0x80')][_0x197c('0x81')][_0x197c('0x90')]})[_0x197c('0x22')](function(_0x240c2a){if(!_0x240c2a['length']){_0xe515a1=0x0;}else{_0xe515a1=_0x240c2a[0x0][_0x197c('0x40')]||0x0;}return dbH['sequelize']['query'](_0x590996[_0x197c('0x8f')](),{'type':dbH[_0x197c('0x80')][_0x197c('0x81')]['SELECT']});})[_0x197c('0x22')](function(_0xb02205){return{'rows':_0xb02205||[],'count':_0xe515a1};});}});}exports[_0x197c('0xa4')]=function(_0x194957,_0x1709d9){return runReport(_0x194957[_0x197c('0x47')],_0x194957['query'],_0x194957[_0x197c('0x3f')])['then'](respondWithResult(_0x1709d9,null))[_0x197c('0x45')](handleError(_0x1709d9,null));};exports['runReport']=runReport;exports[_0x197c('0x30')]=function(_0x42cf40,_0x58adf7){var _0x1d0187=0xa;var _0x7f2db=[_0x197c('0x55'),_0x197c('0x56'),_0x197c('0x57'),_0x197c('0x58')];var _0x3f954d={'SUM':_0x197c('0x59'),'COUNT':_0x197c('0x5a'),'COUNT DISTINCT':_0x197c('0x82'),'MAX':_0x197c('0x83'),'MIN':_0x197c('0x5b'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x197c('0x5d'),'GROUP_CONCAT DESC':_0x197c('0x5e')};var _0x16ab3c={'SEC_TO_TIME':_0x197c('0x5f'),'DATE':_0x197c('0x60'),'HOUR':'HOUR(%s)','ROUND':_0x197c('0x61'),'UNIX_TIMESTAMP':_0x197c('0x62')};var _0x266fd7=function(_0x12da82){return!_[_0x197c('0x63')]([_0x197c('0x64'),_0x197c('0xa5'),_0x197c('0x86'),_0x197c('0x65')],_0x12da82);};var _0x1e3364=function(_0xc8ecb4){if(!_0xc8ecb4||!_0xc8ecb4[_0x197c('0x67')]['length']){return'';}for(var _0x512a2d='(',_0x24da47=0x0;_0x24da47<_0xc8ecb4['rules'][_0x197c('0x36')];_0x24da47+=0x1){_0x24da47>0x0&&(_0x512a2d+='\x20'+_0xc8ecb4[_0x197c('0x66')]+'\x20');_0x512a2d+=_0xc8ecb4[_0x197c('0x67')][_0x24da47][_0x197c('0x68')]?_0x1e3364(_0xc8ecb4[_0x197c('0x67')][_0x24da47][_0x197c('0x68')]):_0xc8ecb4[_0x197c('0x67')][_0x24da47]['field']+'\x20'+_0xc8ecb4[_0x197c('0x67')][_0x24da47]['condition']+(_0x266fd7(_0xc8ecb4[_0x197c('0x67')][_0x24da47][_0x197c('0x6a')])?'\x20'+_0xc8ecb4[_0x197c('0x67')][_0x24da47][_0x197c('0x87')]:'');}return _0x512a2d+')';};var _0x26f071={'where':{'id':_0x42cf40[_0x197c('0x47')]['id']}},_0x3cf297,_0x5786e6,_0x3520eb,_0x3dfdbf,_0x2a4030;_0x26f071=_[_0x197c('0x3d')]({},_0x26f071,_0x42cf40[_0x197c('0x3f')]);return db[_0x197c('0x2c')][_0x197c('0x4a')](_0x26f071)[_0x197c('0x22')](function(_0x2364db){if(_0x2364db){_0x3cf297=_0x2364db;return _0x2364db['getFields']();}return null;})[_0x197c('0x22')](function(_0x375ae7){if(_0x375ae7){if(!_0x375ae7[_0x197c('0x36')]){throw new db[(_0x197c('0x88'))][(_0x197c('0x6c'))](_0x197c('0x6d'),0x193);}_0x5786e6=_0x375ae7;return db[_0x197c('0x6e')][_0x197c('0x43')]({'raw':!![]});}return null;})['then'](function(_0x3a95a7){if(_0x3a95a7){_0x3520eb=_[_0x197c('0x6f')](_0x3a95a7,'id');var _0xd71d1b;var _0x4f92e2=squel[_0x197c('0x70')]();_0x4f92e2[_0x197c('0x71')](_0x3cf297['table']);for(var _0x1ae423=0x0;_0x1ae423<_0x5786e6[_0x197c('0x36')];_0x1ae423+=0x1){_0xd71d1b=_0x5786e6[_0x1ae423]['MetricId']?_0x3520eb[_0x5786e6[_0x1ae423][_0x197c('0x73')]][_0x197c('0x74')]:_0x5786e6[_0x1ae423][_0x197c('0x69')];_0xd71d1b=_0x5786e6[_0x1ae423][_0x197c('0x75')]?_[_0x197c('0x76')](_0x3f954d[_0x5786e6[_0x1ae423][_0x197c('0x75')]],'%s',_0xd71d1b):_0xd71d1b;_0xd71d1b=_0x5786e6[_0x1ae423][_0x197c('0x77')]?_[_0x197c('0x76')](_0x16ab3c[_0x5786e6[_0x1ae423]['format']],'%s',_0xd71d1b):_0xd71d1b;if(_0x5786e6[_0x1ae423]['groupBy']){_0x4f92e2[_0x197c('0x68')](_0xd71d1b);}_0x5786e6[_0x1ae423]['orderBy']&&_0x4f92e2[_0x197c('0x3a')](_0xd71d1b,_0x5786e6[_0x1ae423][_0x197c('0x8a')]===_0x197c('0x8b')?![]:!![]);_0x4f92e2['field'](_0xd71d1b,_0x5786e6[_0x1ae423][_0x197c('0x78')]||_0xd71d1b);}if(_0x3cf297[_0x197c('0x79')]){_0x3cf297[_0x197c('0x79')]=JSON[_0x197c('0x7a')](_0x3cf297[_0x197c('0x79')]);for(var _0x57d9a4=0x0;_0x57d9a4<_0x3cf297['joins'][_0x197c('0x36')];_0x57d9a4+=0x1){if(_0x3cf297[_0x197c('0x79')][_0x57d9a4][_0x197c('0x2d')]&&_[_0x197c('0x63')](_0x7f2db,_0x3cf297['joins'][_0x57d9a4]['type'])&&_0x3cf297['joins'][_0x57d9a4][_0x197c('0x7d')]&&_0x3cf297[_0x197c('0x79')][_0x57d9a4][_0x197c('0x7b')]&&_0x3cf297[_0x197c('0x79')][_0x57d9a4][_0x197c('0x8c')]){_0x4f92e2[_0x3cf297[_0x197c('0x79')][_0x57d9a4][_0x197c('0x2d')]](_0x3cf297[_0x197c('0x79')][_0x57d9a4][_0x197c('0x7b')],null,util['format'](_0x197c('0x7c'),_0x3cf297[_0x197c('0x72')],_0x3cf297[_0x197c('0x79')][_0x57d9a4][_0x197c('0x7d')],_0x3cf297['joins'][_0x57d9a4][_0x197c('0x7b')],_0x3cf297[_0x197c('0x79')][_0x57d9a4][_0x197c('0x8c')]));}}}if(_0x3cf297['conditions']){_0x3cf297[_0x197c('0x7e')]=JSON['parse'](_0x3cf297[_0x197c('0x7e')]);_0x4f92e2[_0x197c('0x3c')](_0x1e3364(_0x3cf297[_0x197c('0x7e')][_0x197c('0x68')]));}_0x2a4030=_0x4f92e2['clone']();_0x4f92e2['limit'](_0x1d0187);_0x4f92e2[_0x197c('0x1c')](0x0);logger['debug']('Limited\x20Query:',_0x4f92e2[_0x197c('0x8f')]());return db[_0x197c('0x80')]['query'](_0x4f92e2[_0x197c('0x8f')](),{'type':db[_0x197c('0x80')][_0x197c('0x81')][_0x197c('0x90')]});}})[_0x197c('0x22')](function(){return{'sql':_0x2a4030[_0x197c('0x8f')]()};})['then'](respondWithResult(_0x58adf7,null))[_0x197c('0x45')](handleError(_0x58adf7,null));};