Built motion from commit a61a4a20.|2.5.46
[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 _0x864e=['ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','undefined','limit','count','offset','set','Content-Range','apply','save','destroy','then','get','CustomReports','UserProfileResource','end','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','merge','VIRTUAL','AnalyticCustomReport','include','findAll','rows','catch','show','params','includeAll','options','find','create','body','role','user','Reports','UserProfileSection','userProfileId','autoAssociation','error','update','preview','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','format','replace','groupBy','orderBy','DESC','field','alias','joins','parse','parentKey','foreignTable','foreignKey','conditions','clone','Limited\x20Query:','toString','sequelize','QueryTypes','left_join','SUM(%s)','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','IS\x20NULL','%s.%s\x20=\x20%s.%s','web','fullPath','%s-%s.%s','generate','output','csv','custom','AnalyticExtractedReport','cdr','startDate','endDate','info','Run\x20Query:','child_process','fork','join','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','SELECT','run','runReport','SEC_TO_TIME(%s)','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x5c2e3e,_0x26ecd3){var _0x53f64a=function(_0x2b5df8){while(--_0x2b5df8){_0x5c2e3e['push'](_0x5c2e3e['shift']());}};_0x53f64a(++_0x26ecd3);}(_0x864e,0x13b));var _0xe864=function(_0x2abd13,_0x501317){_0x2abd13=_0x2abd13-0x0;var _0x5ad645=_0x864e[_0x2abd13];return _0x5ad645;};'use strict';var emlformat=require(_0xe864('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe864('0x1'));var jsonpatch=require(_0xe864('0x2'));var rp=require('request-promise');var moment=require(_0xe864('0x3'));var BPromise=require(_0xe864('0x4'));var Mustache=require('mustache');var util=require(_0xe864('0x5'));var path=require(_0xe864('0x6'));var sox=require(_0xe864('0x7'));var csv=require(_0xe864('0x8'));var ejs=require(_0xe864('0x9'));var fs=require('fs');var fs_extra=require(_0xe864('0xa'));var _=require(_0xe864('0xb'));var squel=require('squel');var crypto=require(_0xe864('0xc'));var jsforce=require(_0xe864('0xd'));var deskjs=require(_0xe864('0xe'));var toCsv=require(_0xe864('0x8'));var querystring=require(_0xe864('0xf'));var Papa=require(_0xe864('0x10'));var Redis=require(_0xe864('0x11'));var authService=require(_0xe864('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xe864('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xe864('0x14'));var config=require(_0xe864('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require(_0xe864('0x16'))['dbH'];function respondWithStatusCode(_0x3bc12c,_0x35aec0){_0x35aec0=_0x35aec0||0xcc;return function(_0x2a5e97){if(_0x2a5e97){return _0x3bc12c[_0xe864('0x17')](_0x35aec0);}return _0x3bc12c['status'](_0x35aec0)['end']();};}function respondWithResult(_0x27a64e,_0x5eb93f){_0x5eb93f=_0x5eb93f||0xc8;return function(_0x139b13){if(_0x139b13){return _0x27a64e[_0xe864('0x18')](_0x5eb93f)['json'](_0x139b13);}};}function respondWithFilteredResult(_0x12eb97,_0x4b479c){return function(_0x508192){if(_0x508192){var _0x183e4c=typeof _0x4b479c['offset']===_0xe864('0x19')&&typeof _0x4b479c[_0xe864('0x1a')]===_0xe864('0x19');var _0x58bb4d=_0x508192[_0xe864('0x1b')];var _0x4ca820=_0x183e4c?0x0:_0x4b479c[_0xe864('0x1c')];var _0x51ce1b=_0x183e4c?_0x508192['count']:_0x4b479c['offset']+_0x4b479c['limit'];var _0x17b67a;if(_0x51ce1b>=_0x58bb4d){_0x51ce1b=_0x58bb4d;_0x17b67a=0xc8;}else{_0x17b67a=0xce;}_0x12eb97[_0xe864('0x18')](_0x17b67a);return _0x12eb97[_0xe864('0x1d')](_0xe864('0x1e'),_0x4ca820+'-'+_0x51ce1b+'/'+_0x58bb4d)['json'](_0x508192);}return null;};}function patchUpdates(_0x47474d){return function(_0xa2c109){try{jsonpatch[_0xe864('0x1f')](_0xa2c109,_0x47474d,!![]);}catch(_0x503ae3){return BPromise['reject'](_0x503ae3);}return _0xa2c109[_0xe864('0x20')]();};}function saveUpdates(_0x616967,_0x4f3bb4){return function(_0x259c84){if(_0x259c84){return _0x259c84['update'](_0x616967)['then'](function(_0x1961e8){return _0x1961e8;});}return null;};}function removeEntity(_0x1bda3b,_0x3a3928){return function(_0x301334){if(_0x301334){return _0x301334[_0xe864('0x21')]()[_0xe864('0x22')](function(){var _0x7aa084=_0x301334[_0xe864('0x23')]({'plain':!![]});var _0x172adb=_0xe864('0x24');return db[_0xe864('0x25')]['destroy']({'where':{'type':_0x172adb,'resourceId':_0x7aa084['id']}})['then'](function(){return _0x301334;});})[_0xe864('0x22')](function(){_0x1bda3b['status'](0xcc)[_0xe864('0x26')]();});}};}function handleEntityNotFound(_0x315a66,_0x3e4a49){return function(_0x393a67){if(!_0x393a67){_0x315a66[_0xe864('0x17')](0x194);}return _0x393a67;};}function handleError(_0x3b55b7,_0x2b88ce){_0x2b88ce=_0x2b88ce||0x1f4;return function(_0x2ff853){logger['error'](_0x2ff853[_0xe864('0x27')]);if(_0x2ff853[_0xe864('0x28')]){delete _0x2ff853[_0xe864('0x28')];}_0x3b55b7[_0xe864('0x18')](_0x2b88ce)[_0xe864('0x29')](_0x2ff853);};}exports[_0xe864('0x2a')]=function(_0x11165e,_0x347b30){var _0x5057ae={},_0x2ba1ea={},_0x4dada8={'count':0x0,'rows':[]};var _0x247787=_[_0xe864('0x2b')](db['AnalyticCustomReport'][_0xe864('0x2c')],function(_0x4547cd){return{'name':_0x4547cd[_0xe864('0x2d')],'type':_0x4547cd[_0xe864('0x2e')][_0xe864('0x2f')]};});_0x2ba1ea[_0xe864('0x30')]=_[_0xe864('0x2b')](_0x247787,_0xe864('0x28'));_0x2ba1ea[_0xe864('0x31')]=_[_0xe864('0x32')](_0x11165e[_0xe864('0x31')]);_0x2ba1ea[_0xe864('0x33')]=_['intersection'](_0x2ba1ea['model'],_0x2ba1ea[_0xe864('0x31')]);_0x5057ae[_0xe864('0x34')]=_[_0xe864('0x35')](_0x2ba1ea[_0xe864('0x30')],qs[_0xe864('0x36')](_0x11165e['query'][_0xe864('0x36')]));_0x5057ae['attributes']=_0x5057ae[_0xe864('0x34')][_0xe864('0x37')]?_0x5057ae['attributes']:_0x2ba1ea['model'];if(!_0x11165e[_0xe864('0x31')]['hasOwnProperty'](_0xe864('0x38'))){_0x5057ae[_0xe864('0x1a')]=qs['limit'](_0x11165e[_0xe864('0x31')]['limit']);_0x5057ae[_0xe864('0x1c')]=qs[_0xe864('0x1c')](_0x11165e[_0xe864('0x31')][_0xe864('0x1c')]);}_0x5057ae[_0xe864('0x39')]=qs[_0xe864('0x3a')](_0x11165e[_0xe864('0x31')][_0xe864('0x3a')]);_0x5057ae[_0xe864('0x3b')]=qs['filters'](_[_0xe864('0x3c')](_0x11165e[_0xe864('0x31')],_0x2ba1ea[_0xe864('0x33')]),_0x247787);if(_0x11165e[_0xe864('0x31')]['filter']){_0x5057ae[_0xe864('0x3b')]=_[_0xe864('0x3d')](_0x5057ae[_0xe864('0x3b')],{'$or':_[_0xe864('0x2b')](_0x247787,function(_0x3860ba){if(_0x3860ba['type']!==_0xe864('0x3e')){var _0x1aa53e={};_0x1aa53e[_0x3860ba[_0xe864('0x28')]]={'$like':'%'+_0x11165e[_0xe864('0x31')]['filter']+'%'};return _0x1aa53e;}})});}_0x5057ae=_['merge']({},_0x5057ae,_0x11165e['options']);var _0x41603d={'where':_0x5057ae[_0xe864('0x3b')]};return db[_0xe864('0x3f')]['count'](_0x41603d)[_0xe864('0x22')](function(_0xc9480a){_0x4dada8[_0xe864('0x1b')]=_0xc9480a;if(_0x11165e[_0xe864('0x31')]['includeAll']){_0x5057ae[_0xe864('0x40')]=[{'all':!![]}];}return db['AnalyticCustomReport'][_0xe864('0x41')](_0x5057ae);})[_0xe864('0x22')](function(_0x485642){_0x4dada8[_0xe864('0x42')]=_0x485642;return _0x4dada8;})['then'](respondWithFilteredResult(_0x347b30,_0x5057ae))[_0xe864('0x43')](handleError(_0x347b30,null));};exports[_0xe864('0x44')]=function(_0x2f3593,_0x469cc8){var _0x422f13={'raw':![],'where':{'id':_0x2f3593[_0xe864('0x45')]['id']}},_0x30b9ba={};_0x30b9ba[_0xe864('0x30')]=_[_0xe864('0x32')](db[_0xe864('0x3f')][_0xe864('0x2c')]);_0x30b9ba[_0xe864('0x31')]=_[_0xe864('0x32')](_0x2f3593[_0xe864('0x31')]);_0x30b9ba[_0xe864('0x33')]=_[_0xe864('0x35')](_0x30b9ba['model'],_0x30b9ba[_0xe864('0x31')]);_0x422f13[_0xe864('0x34')]=_[_0xe864('0x35')](_0x30b9ba[_0xe864('0x30')],qs[_0xe864('0x36')](_0x2f3593[_0xe864('0x31')][_0xe864('0x36')]));_0x422f13[_0xe864('0x34')]=_0x422f13['attributes'][_0xe864('0x37')]?_0x422f13['attributes']:_0x30b9ba['model'];if(_0x2f3593[_0xe864('0x31')][_0xe864('0x46')]){_0x422f13[_0xe864('0x40')]=[{'all':!![]}];}_0x422f13=_[_0xe864('0x3d')]({},_0x422f13,_0x2f3593[_0xe864('0x47')]);return db[_0xe864('0x3f')][_0xe864('0x48')](_0x422f13)['then'](handleEntityNotFound(_0x469cc8,null))[_0xe864('0x22')](respondWithResult(_0x469cc8,null))[_0xe864('0x43')](handleError(_0x469cc8,null));};exports[_0xe864('0x49')]=function(_0x296228,_0x13499d){return db[_0xe864('0x3f')][_0xe864('0x49')](_0x296228[_0xe864('0x4a')],{})[_0xe864('0x22')](function(_0x158fe4){var _0x3ba3c8=_0x296228['user'][_0xe864('0x23')]({'plain':!![]});if(!_0x3ba3c8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3ba3c8[_0xe864('0x4b')]===_0xe864('0x4c')){var _0x31eb68=_0x158fe4[_0xe864('0x23')]({'plain':!![]});var _0x14ee6e=_0xe864('0x4d');return db[_0xe864('0x4e')]['find']({'where':{'name':_0x14ee6e,'userProfileId':_0x3ba3c8[_0xe864('0x4f')]},'raw':!![]})[_0xe864('0x22')](function(_0x2dcd20){if(_0x2dcd20&&_0x2dcd20[_0xe864('0x50')]===0x0){return db['UserProfileResource']['create']({'name':_0x31eb68[_0xe864('0x28')],'resourceId':_0x31eb68['id'],'type':'CustomReports','sectionId':_0x2dcd20['id']},{})[_0xe864('0x22')](function(){return _0x158fe4;});}else{return _0x158fe4;}})[_0xe864('0x43')](function(_0x1211de){logger[_0xe864('0x51')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1211de);throw _0x1211de;});}return _0x158fe4;})[_0xe864('0x22')](respondWithResult(_0x13499d,0xc9))[_0xe864('0x43')](handleError(_0x13499d,null));};exports[_0xe864('0x52')]=function(_0x9144fe,_0x134819){if(_0x9144fe[_0xe864('0x4a')]['id']){delete _0x9144fe[_0xe864('0x4a')]['id'];}return db[_0xe864('0x3f')][_0xe864('0x48')]({'where':{'id':_0x9144fe[_0xe864('0x45')]['id']}})[_0xe864('0x22')](handleEntityNotFound(_0x134819,null))[_0xe864('0x22')](saveUpdates(_0x9144fe['body'],null))['then'](respondWithResult(_0x134819,null))[_0xe864('0x43')](handleError(_0x134819,null));};exports[_0xe864('0x21')]=function(_0x415850,_0x57e76e){return db[_0xe864('0x3f')][_0xe864('0x48')]({'where':{'id':_0x415850[_0xe864('0x45')]['id']}})[_0xe864('0x22')](handleEntityNotFound(_0x57e76e,null))[_0xe864('0x22')](removeEntity(_0x57e76e,null))[_0xe864('0x43')](handleError(_0x57e76e,null));};exports[_0xe864('0x53')]=function(_0x59433c,_0x271726){var _0x533d0f=0xa;var _0x4997ea=['join','left_join',_0xe864('0x54'),_0xe864('0x55')];var _0x4e86d2={'SUM':'SUM(%s)','COUNT':_0xe864('0x56'),'COUNT DISTINCT':_0xe864('0x57'),'MAX':'MAX(%s)','MIN':_0xe864('0x58'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xe864('0x59'),'GROUP_CONCAT ASC':_0xe864('0x5a'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x518edc={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0xe864('0x5b'),'ROUND':_0xe864('0x5c'),'UNIX_TIMESTAMP':_0xe864('0x5d')};var _0xa2b15b=function(_0x2200d7){return!_[_0xe864('0x5e')](['IS\x20NULL',_0xe864('0x5f'),_0xe864('0x60'),_0xe864('0x61')],_0x2200d7);};var _0x44fc6e=function(_0x3929d1){if(!_0x3929d1||!_0x3929d1[_0xe864('0x62')][_0xe864('0x37')]){return'';}for(var _0x210603='(',_0x42ae3a=0x0;_0x42ae3a<_0x3929d1[_0xe864('0x62')][_0xe864('0x37')];_0x42ae3a+=0x1){_0x42ae3a>0x0&&(_0x210603+='\x20'+_0x3929d1[_0xe864('0x63')]+'\x20');_0x210603+=_0x3929d1['rules'][_0x42ae3a][_0xe864('0x64')]?_0x44fc6e(_0x3929d1[_0xe864('0x62')][_0x42ae3a][_0xe864('0x64')]):_0x3929d1[_0xe864('0x62')][_0x42ae3a]['field']+'\x20'+_0x3929d1['rules'][_0x42ae3a][_0xe864('0x65')]+(_0xa2b15b(_0x3929d1['rules'][_0x42ae3a][_0xe864('0x65')])?'\x20'+_0x3929d1[_0xe864('0x62')][_0x42ae3a][_0xe864('0x66')]:'');}return _0x210603+')';};var _0x159da1={'where':{'id':_0x59433c[_0xe864('0x45')]['id']}},_0x534d67,_0x11a287,_0x4fbd8b,_0x133387,_0x590af4;_0x159da1=_['merge']({},_0x159da1,_0x59433c[_0xe864('0x47')]);return db['AnalyticCustomReport'][_0xe864('0x48')](_0x159da1)['then'](function(_0x2520d9){if(_0x2520d9){_0x534d67=_0x2520d9;return _0x2520d9[_0xe864('0x67')]();}return null;})[_0xe864('0x22')](function(_0x4631ea){if(_0x4631ea){if(!_0x4631ea['length']){throw new db[(_0xe864('0x68'))][(_0xe864('0x69'))](_0xe864('0x6a'),0x193);}_0x11a287=_0x4631ea;return db[_0xe864('0x6b')]['findAll']({'raw':!![]});}return null;})['then'](function(_0x100851){if(_0x100851){_0x4fbd8b=_[_0xe864('0x6c')](_0x100851,'id');var _0x36d01a;var _0x2d8ecf=squel[_0xe864('0x6d')]();_0x2d8ecf[_0xe864('0x6e')](_0x534d67[_0xe864('0x6f')]);for(var _0x2d4044=0x0;_0x2d4044<_0x11a287[_0xe864('0x37')];_0x2d4044+=0x1){_0x36d01a=_0x11a287[_0x2d4044][_0xe864('0x70')]?_0x4fbd8b[_0x11a287[_0x2d4044][_0xe864('0x70')]][_0xe864('0x71')]:_0x11a287[_0x2d4044]['field'];_0x36d01a=_0x11a287[_0x2d4044][_0xe864('0x72')]?_['replace'](_0x4e86d2[_0x11a287[_0x2d4044]['function']],'%s',_0x36d01a):_0x36d01a;_0x36d01a=_0x11a287[_0x2d4044][_0xe864('0x73')]?_[_0xe864('0x74')](_0x518edc[_0x11a287[_0x2d4044][_0xe864('0x73')]],'%s',_0x36d01a):_0x36d01a;if(_0x11a287[_0x2d4044][_0xe864('0x75')]){_0x2d8ecf[_0xe864('0x64')](_0x36d01a);}_0x11a287[_0x2d4044][_0xe864('0x76')]&&_0x2d8ecf['order'](_0x36d01a,_0x11a287[_0x2d4044][_0xe864('0x76')]===_0xe864('0x77')?![]:!![]);_0x2d8ecf[_0xe864('0x78')](_0x36d01a,_0x11a287[_0x2d4044][_0xe864('0x79')]||_0x36d01a);}if(_0x534d67[_0xe864('0x7a')]){_0x534d67[_0xe864('0x7a')]=JSON[_0xe864('0x7b')](_0x534d67[_0xe864('0x7a')]);for(var _0x47efe3=0x0;_0x47efe3<_0x534d67[_0xe864('0x7a')]['length'];_0x47efe3+=0x1){if(_0x534d67['joins'][_0x47efe3][_0xe864('0x2e')]&&_[_0xe864('0x5e')](_0x4997ea,_0x534d67[_0xe864('0x7a')][_0x47efe3][_0xe864('0x2e')])&&_0x534d67['joins'][_0x47efe3][_0xe864('0x7c')]&&_0x534d67[_0xe864('0x7a')][_0x47efe3][_0xe864('0x7d')]&&_0x534d67[_0xe864('0x7a')][_0x47efe3][_0xe864('0x7e')]){_0x2d8ecf[_0x534d67[_0xe864('0x7a')][_0x47efe3]['type']](_0x534d67['joins'][_0x47efe3][_0xe864('0x7d')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x534d67[_0xe864('0x6f')],_0x534d67[_0xe864('0x7a')][_0x47efe3]['parentKey'],_0x534d67[_0xe864('0x7a')][_0x47efe3]['foreignTable'],_0x534d67['joins'][_0x47efe3][_0xe864('0x7e')]));}}}if(_0x534d67[_0xe864('0x7f')]){_0x534d67[_0xe864('0x7f')]=JSON[_0xe864('0x7b')](_0x534d67[_0xe864('0x7f')]);_0x2d8ecf[_0xe864('0x3b')](_0x44fc6e(_0x534d67[_0xe864('0x7f')]['group']));}_0x590af4=_0x2d8ecf[_0xe864('0x80')]();_0x2d8ecf[_0xe864('0x1a')](_0x533d0f);_0x2d8ecf[_0xe864('0x1c')](0x0);logger['debug'](_0xe864('0x81'),_0x2d8ecf['toString']());return dbH['sequelize'][_0xe864('0x31')](_0x2d8ecf[_0xe864('0x82')](),{'type':dbH[_0xe864('0x83')][_0xe864('0x84')]['SELECT']});}})['then'](respondWithResult(_0x271726,null))['catch'](handleError(_0x271726,null));};function runReport(_0x5c388f,_0x238520,_0x43e995){var _0x45761e=_0x238520[_0xe864('0x28')];var _0x3110e2=0xa;var _0x15d14c=['join',_0xe864('0x85'),'right_join','cross_join'];var _0x18974d={'SUM':_0xe864('0x86'),'COUNT':_0xe864('0x56'),'COUNT DISTINCT':_0xe864('0x57'),'MAX':_0xe864('0x87'),'MIN':_0xe864('0x58'),'AVG':_0xe864('0x88'),'GROUP_CONCAT':_0xe864('0x59'),'GROUP_CONCAT ASC':_0xe864('0x5a'),'GROUP_CONCAT DESC':_0xe864('0x89')};var _0x4ad295={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xe864('0x8a'),'HOUR':'HOUR(%s)','ROUND':_0xe864('0x5c'),'UNIX_TIMESTAMP':_0xe864('0x5d')};var _0x47cd0c=function(_0x4e727f){return!_[_0xe864('0x5e')]([_0xe864('0x8b'),'IS\x20NOT\x20NULL',_0xe864('0x60'),_0xe864('0x61')],_0x4e727f);};var _0x29e282=function(_0x3dcc16){if(!_0x3dcc16||!_0x3dcc16['rules']['length']){return'';}for(var _0x5a572e='(',_0x47ccf2=0x0;_0x47ccf2<_0x3dcc16[_0xe864('0x62')][_0xe864('0x37')];_0x47ccf2+=0x1){_0x47ccf2>0x0&&(_0x5a572e+='\x20'+_0x3dcc16['operator']+'\x20');_0x5a572e+=_0x3dcc16[_0xe864('0x62')][_0x47ccf2][_0xe864('0x64')]?_0x29e282(_0x3dcc16['rules'][_0x47ccf2][_0xe864('0x64')]):_0x3dcc16['rules'][_0x47ccf2][_0xe864('0x78')]+'\x20'+_0x3dcc16['rules'][_0x47ccf2][_0xe864('0x65')]+(_0x47cd0c(_0x3dcc16[_0xe864('0x62')][_0x47ccf2]['condition'])?'\x20'+_0x3dcc16[_0xe864('0x62')][_0x47ccf2]['value']:'');}return _0x5a572e+')';};var _0x38cfd3={'where':{'id':_0x5c388f['id']}},_0x44d1c5,_0x50a388,_0x1bf50a,_0x2caf65,_0x456ae1;_0x38cfd3=_[_0xe864('0x3d')]({},_0x38cfd3,_0x43e995);return db['AnalyticCustomReport'][_0xe864('0x48')](_0x38cfd3)['then'](function(_0x63b1b9){if(_0x63b1b9){_0x44d1c5=_0x63b1b9;return _0x63b1b9[_0xe864('0x67')]();}return null;})[_0xe864('0x22')](function(_0x2b3e47){if(_0x2b3e47){if(!_0x2b3e47[_0xe864('0x37')]){throw new db['Sequelize'][(_0xe864('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x50a388=_0x2b3e47;return db[_0xe864('0x6b')][_0xe864('0x41')]({'raw':!![]});}return null;})[_0xe864('0x22')](function(_0xfa9ed8){if(_0xfa9ed8){_0x1bf50a=_[_0xe864('0x6c')](_0xfa9ed8,'id');var _0x47a628;var _0x3460e4=squel[_0xe864('0x6d')]();_0x3460e4[_0xe864('0x6e')](_0x44d1c5[_0xe864('0x6f')]);for(var _0x42b732=0x0;_0x42b732<_0x50a388['length'];_0x42b732+=0x1){_0x47a628=_0x50a388[_0x42b732][_0xe864('0x70')]?_0x1bf50a[_0x50a388[_0x42b732][_0xe864('0x70')]][_0xe864('0x71')]:_0x50a388[_0x42b732][_0xe864('0x78')];_0x47a628=_0x50a388[_0x42b732][_0xe864('0x72')]?_[_0xe864('0x74')](_0x18974d[_0x50a388[_0x42b732][_0xe864('0x72')]],'%s',_0x47a628):_0x47a628;_0x47a628=_0x50a388[_0x42b732][_0xe864('0x73')]?_[_0xe864('0x74')](_0x4ad295[_0x50a388[_0x42b732][_0xe864('0x73')]],'%s',_0x47a628):_0x47a628;if(_0x50a388[_0x42b732][_0xe864('0x75')]){_0x3460e4[_0xe864('0x64')](_0x47a628);}_0x50a388[_0x42b732][_0xe864('0x76')]&&_0x3460e4[_0xe864('0x39')](_0x47a628,_0x50a388[_0x42b732]['orderBy']===_0xe864('0x77')?![]:!![]);_0x3460e4[_0xe864('0x78')](_0x47a628,_0x50a388[_0x42b732]['alias']||_0x47a628);}if(_0x44d1c5[_0xe864('0x7a')]){_0x44d1c5[_0xe864('0x7a')]=JSON[_0xe864('0x7b')](_0x44d1c5['joins']);for(var _0x3a30b0=0x0;_0x3a30b0<_0x44d1c5[_0xe864('0x7a')][_0xe864('0x37')];_0x3a30b0+=0x1){if(_0x44d1c5[_0xe864('0x7a')][_0x3a30b0][_0xe864('0x2e')]&&_['includes'](_0x15d14c,_0x44d1c5[_0xe864('0x7a')][_0x3a30b0][_0xe864('0x2e')])&&_0x44d1c5[_0xe864('0x7a')][_0x3a30b0][_0xe864('0x7c')]&&_0x44d1c5[_0xe864('0x7a')][_0x3a30b0][_0xe864('0x7d')]&&_0x44d1c5['joins'][_0x3a30b0][_0xe864('0x7e')]){_0x3460e4[_0x44d1c5['joins'][_0x3a30b0][_0xe864('0x2e')]](_0x44d1c5[_0xe864('0x7a')][_0x3a30b0][_0xe864('0x7d')],null,util['format'](_0xe864('0x8c'),_0x44d1c5['table'],_0x44d1c5['joins'][_0x3a30b0]['parentKey'],_0x44d1c5[_0xe864('0x7a')][_0x3a30b0][_0xe864('0x7d')],_0x44d1c5[_0xe864('0x7a')][_0x3a30b0][_0xe864('0x7e')]));}}}if(_0x44d1c5[_0xe864('0x7f')]){_0x44d1c5[_0xe864('0x7f')]=JSON[_0xe864('0x7b')](_0x44d1c5['conditions']);_0x3460e4[_0xe864('0x3b')](_0x29e282(_0x44d1c5['conditions']['group']));}_0x456ae1=_0x3460e4['clone']();_0x3460e4[_0xe864('0x1a')](_0x3110e2);_0x3460e4[_0xe864('0x1c')](0x0);return;}})[_0xe864('0x22')](function(){if(_0x238520['output']===_0xe864('0x8d')){return null;}var _0xae3eb=_[_0xe864('0x3d')](_0x238520,{'name':_0x238520[_0xe864('0x8e')]||_0x238520[_0xe864('0x28')]||_0x44d1c5['name'],'basename':_0x45761e,'savename':util['format'](_0xe864('0x8f'),_0x238520[_0xe864('0x28')]||_0x44d1c5['name'],require('randomstring')[_0xe864('0x90')](0x4),_0x238520[_0xe864('0x91')]||_0xe864('0x92')),'reportId':_0x44d1c5['id'],'reportType':_0xe864('0x93')});return db[_0xe864('0x94')][_0xe864('0x49')](_0xae3eb,{'raw':!![]});})[_0xe864('0x22')](function(_0x4dca7e){if(_0x44d1c5['table']===_0xe864('0x95')){_0x456ae1[_0xe864('0x3b')](_0x44d1c5[_0xe864('0x6f')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x238520[_0xe864('0x96')],_0x238520[_0xe864('0x97')]);}else{_0x456ae1[_0xe864('0x3b')](_0x44d1c5[_0xe864('0x6f')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x238520['startDate'],_0x238520['endDate']);}if(_0x4dca7e){logger[_0xe864('0x98')](_0xe864('0x99'),_0x456ae1[_0xe864('0x82')]());require(_0xe864('0x9a'))[_0xe864('0x9b')](path[_0xe864('0x9c')](__dirname,_0xe864('0x9d'),_0x4dca7e['output']),[_0x4dca7e['id'],_0x456ae1[_0xe864('0x82')](),path[_0xe864('0x9c')](__dirname,_0xe864('0x9e'),_0x4dca7e[_0xe864('0x9f')]),_0x45761e]);return _0x4dca7e;}else{var _0x1cf838=squel[_0xe864('0x6d')]();_0x1cf838[_0xe864('0x6e')]('('+_0x456ae1[_0xe864('0x82')]()+')',_0xe864('0xa0'));_0x1cf838['field'](_0xe864('0xa1'),_0xe864('0x1b'));_0x456ae1[_0xe864('0x1a')](_0x238520[_0xe864('0x1a')]||_0x3110e2);_0x456ae1[_0xe864('0x1c')](_0x238520['offset']||0x0);return dbH['sequelize']['query'](_0x1cf838[_0xe864('0x82')](),{'type':dbH[_0xe864('0x83')][_0xe864('0x84')][_0xe864('0xa2')]})[_0xe864('0x22')](function(_0x3f7da2){if(!_0x3f7da2[_0xe864('0x37')]){_0x2caf65=0x0;}else{_0x2caf65=_0x3f7da2[0x0][_0xe864('0x1b')]||0x0;}return dbH[_0xe864('0x83')]['query'](_0x456ae1[_0xe864('0x82')](),{'type':dbH[_0xe864('0x83')][_0xe864('0x84')][_0xe864('0xa2')]});})[_0xe864('0x22')](function(_0x55a92c){return{'rows':_0x55a92c||[],'count':_0x2caf65};});}});}exports[_0xe864('0xa3')]=function(_0x3bbb87,_0x41b221){return runReport(_0x3bbb87[_0xe864('0x45')],_0x3bbb87['query'],_0x3bbb87[_0xe864('0x47')])[_0xe864('0x22')](respondWithResult(_0x41b221,null))[_0xe864('0x43')](handleError(_0x41b221,null));};exports[_0xe864('0xa4')]=runReport;exports[_0xe864('0x31')]=function(_0x4c9a18,_0x1b1a11){var _0x2c8a30=0xa;var _0x2806d7=[_0xe864('0x9c'),_0xe864('0x85'),_0xe864('0x54'),'cross_join'];var _0x5d1cda={'SUM':'SUM(%s)','COUNT':_0xe864('0x56'),'COUNT DISTINCT':_0xe864('0x57'),'MAX':_0xe864('0x87'),'MIN':_0xe864('0x58'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xe864('0x59'),'GROUP_CONCAT ASC':_0xe864('0x5a'),'GROUP_CONCAT DESC':_0xe864('0x89')};var _0x4fac60={'SEC_TO_TIME':_0xe864('0xa5'),'DATE':_0xe864('0x8a'),'HOUR':_0xe864('0x5b'),'ROUND':_0xe864('0x5c'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x24af53=function(_0x45b55c){return!_[_0xe864('0x5e')]([_0xe864('0x8b'),_0xe864('0x5f'),_0xe864('0x60'),_0xe864('0x61')],_0x45b55c);};var _0x6ed74c=function(_0x59ea5b){if(!_0x59ea5b||!_0x59ea5b[_0xe864('0x62')][_0xe864('0x37')]){return'';}for(var _0x71cda4='(',_0x5ce04d=0x0;_0x5ce04d<_0x59ea5b[_0xe864('0x62')][_0xe864('0x37')];_0x5ce04d+=0x1){_0x5ce04d>0x0&&(_0x71cda4+='\x20'+_0x59ea5b['operator']+'\x20');_0x71cda4+=_0x59ea5b[_0xe864('0x62')][_0x5ce04d][_0xe864('0x64')]?_0x6ed74c(_0x59ea5b[_0xe864('0x62')][_0x5ce04d][_0xe864('0x64')]):_0x59ea5b['rules'][_0x5ce04d][_0xe864('0x78')]+'\x20'+_0x59ea5b[_0xe864('0x62')][_0x5ce04d][_0xe864('0x65')]+(_0x24af53(_0x59ea5b[_0xe864('0x62')][_0x5ce04d][_0xe864('0x65')])?'\x20'+_0x59ea5b[_0xe864('0x62')][_0x5ce04d][_0xe864('0x66')]:'');}return _0x71cda4+')';};var _0xccd054={'where':{'id':_0x4c9a18['params']['id']}},_0x3f9748,_0x5c5c7e,_0x1ed793,_0x5520da,_0x5c5915;_0xccd054=_[_0xe864('0x3d')]({},_0xccd054,_0x4c9a18[_0xe864('0x47')]);return db[_0xe864('0x3f')][_0xe864('0x48')](_0xccd054)['then'](function(_0x3fa911){if(_0x3fa911){_0x3f9748=_0x3fa911;return _0x3fa911['getFields']();}return null;})[_0xe864('0x22')](function(_0x44a567){if(_0x44a567){if(!_0x44a567[_0xe864('0x37')]){throw new db['Sequelize'][(_0xe864('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x5c5c7e=_0x44a567;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0xe864('0x22')](function(_0x3894bc){if(_0x3894bc){_0x1ed793=_[_0xe864('0x6c')](_0x3894bc,'id');var _0x582973;var _0x35fb2a=squel[_0xe864('0x6d')]();_0x35fb2a[_0xe864('0x6e')](_0x3f9748[_0xe864('0x6f')]);for(var _0x3a208f=0x0;_0x3a208f<_0x5c5c7e['length'];_0x3a208f+=0x1){_0x582973=_0x5c5c7e[_0x3a208f][_0xe864('0x70')]?_0x1ed793[_0x5c5c7e[_0x3a208f][_0xe864('0x70')]]['metric']:_0x5c5c7e[_0x3a208f][_0xe864('0x78')];_0x582973=_0x5c5c7e[_0x3a208f]['function']?_[_0xe864('0x74')](_0x5d1cda[_0x5c5c7e[_0x3a208f][_0xe864('0x72')]],'%s',_0x582973):_0x582973;_0x582973=_0x5c5c7e[_0x3a208f][_0xe864('0x73')]?_[_0xe864('0x74')](_0x4fac60[_0x5c5c7e[_0x3a208f]['format']],'%s',_0x582973):_0x582973;if(_0x5c5c7e[_0x3a208f][_0xe864('0x75')]){_0x35fb2a[_0xe864('0x64')](_0x582973);}_0x5c5c7e[_0x3a208f][_0xe864('0x76')]&&_0x35fb2a[_0xe864('0x39')](_0x582973,_0x5c5c7e[_0x3a208f][_0xe864('0x76')]===_0xe864('0x77')?![]:!![]);_0x35fb2a[_0xe864('0x78')](_0x582973,_0x5c5c7e[_0x3a208f][_0xe864('0x79')]||_0x582973);}if(_0x3f9748[_0xe864('0x7a')]){_0x3f9748[_0xe864('0x7a')]=JSON[_0xe864('0x7b')](_0x3f9748[_0xe864('0x7a')]);for(var _0xf8b076=0x0;_0xf8b076<_0x3f9748[_0xe864('0x7a')][_0xe864('0x37')];_0xf8b076+=0x1){if(_0x3f9748[_0xe864('0x7a')][_0xf8b076]['type']&&_['includes'](_0x2806d7,_0x3f9748[_0xe864('0x7a')][_0xf8b076]['type'])&&_0x3f9748[_0xe864('0x7a')][_0xf8b076]['parentKey']&&_0x3f9748[_0xe864('0x7a')][_0xf8b076][_0xe864('0x7d')]&&_0x3f9748[_0xe864('0x7a')][_0xf8b076]['foreignKey']){_0x35fb2a[_0x3f9748['joins'][_0xf8b076]['type']](_0x3f9748[_0xe864('0x7a')][_0xf8b076]['foreignTable'],null,util[_0xe864('0x73')](_0xe864('0x8c'),_0x3f9748[_0xe864('0x6f')],_0x3f9748[_0xe864('0x7a')][_0xf8b076][_0xe864('0x7c')],_0x3f9748[_0xe864('0x7a')][_0xf8b076][_0xe864('0x7d')],_0x3f9748[_0xe864('0x7a')][_0xf8b076]['foreignKey']));}}}if(_0x3f9748[_0xe864('0x7f')]){_0x3f9748['conditions']=JSON['parse'](_0x3f9748[_0xe864('0x7f')]);_0x35fb2a['where'](_0x6ed74c(_0x3f9748[_0xe864('0x7f')][_0xe864('0x64')]));}_0x5c5915=_0x35fb2a[_0xe864('0x80')]();_0x35fb2a['limit'](_0x2c8a30);_0x35fb2a[_0xe864('0x1c')](0x0);logger['debug']('Limited\x20Query:',_0x35fb2a[_0xe864('0x82')]());return dbH[_0xe864('0x83')]['query'](_0x35fb2a[_0xe864('0x82')](),{'type':dbH[_0xe864('0x83')]['QueryTypes'][_0xe864('0xa2')]});}})[_0xe864('0x22')](function(){return{'sql':_0x5c5915['toString']()};})['then'](respondWithResult(_0x1b1a11,null))[_0xe864('0x43')](handleError(_0x1b1a11,null));};