55e54c55741c6cf88dda2a035663e5d35b45101a
[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 _0xbee7=['get','CustomReports','UserProfileResource','end','sendStatus','error','name','send','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','params','length','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Reports','UserProfileSection','autoAssociation','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','operator','group','rules','field','condition','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','table','MetricId','metric','replace','function','format','groupBy','orderBy','order','alias','joins','parse','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','parentKey','conditions','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','from','DESC','clone','output','fullPath','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','savename','select','countTable','run','runReport','UNIX_TIMESTAMP(%s)','value','debug','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','Content-Range','update','destroy','then'];(function(_0x341fd6,_0x9d0e71){var _0x3755d3=function(_0x3b7fd3){while(--_0x3b7fd3){_0x341fd6['push'](_0x341fd6['shift']());}};_0x3755d3(++_0x9d0e71);}(_0xbee7,0x1c6));var _0x7bee=function(_0x3a1b67,_0x4b6129){_0x3a1b67=_0x3a1b67-0x0;var _0x3f820d=_0xbee7[_0x3a1b67];return _0x3f820d;};'use strict';var emlformat=require(_0x7bee('0x0'));var rimraf=require(_0x7bee('0x1'));var zipdir=require(_0x7bee('0x2'));var jsonpatch=require(_0x7bee('0x3'));var rp=require(_0x7bee('0x4'));var moment=require(_0x7bee('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x7bee('0x6'));var path=require(_0x7bee('0x7'));var sox=require(_0x7bee('0x8'));var csv=require(_0x7bee('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7bee('0xa'));var _=require(_0x7bee('0xb'));var squel=require(_0x7bee('0xc'));var crypto=require(_0x7bee('0xd'));var jsforce=require(_0x7bee('0xe'));var deskjs=require(_0x7bee('0xf'));var toCsv=require(_0x7bee('0x9'));var querystring=require(_0x7bee('0x10'));var Papa=require(_0x7bee('0x11'));var Redis=require(_0x7bee('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x7bee('0x13'));var as=require(_0x7bee('0x14'));var hardwareService=require(_0x7bee('0x15'));var logger=require(_0x7bee('0x16'))(_0x7bee('0x17'));var utils=require(_0x7bee('0x18'));var config=require(_0x7bee('0x19'));var licenseUtil=require(_0x7bee('0x1a'));var db=require(_0x7bee('0x1b'))['db'];var dbH=require('../../mysqldb')['dbH'];function respondWithStatusCode(_0x100ac9,_0x4b93ed){_0x4b93ed=_0x4b93ed||0xcc;return function(_0x5f007c){if(_0x5f007c){return _0x100ac9['sendStatus'](_0x4b93ed);}return _0x100ac9[_0x7bee('0x1c')](_0x4b93ed)['end']();};}function respondWithResult(_0x10ce13,_0xbb4d55){_0xbb4d55=_0xbb4d55||0xc8;return function(_0x43eb39){if(_0x43eb39){return _0x10ce13['status'](_0xbb4d55)[_0x7bee('0x1d')](_0x43eb39);}};}function respondWithFilteredResult(_0x33a0e4,_0xa9bfc6){return function(_0x6088b8){if(_0x6088b8){var _0x46016c=typeof _0xa9bfc6[_0x7bee('0x1e')]===_0x7bee('0x1f')&&typeof _0xa9bfc6[_0x7bee('0x20')]==='undefined';var _0x1ecd8a=_0x6088b8[_0x7bee('0x21')];var _0x106178=_0x46016c?0x0:_0xa9bfc6[_0x7bee('0x1e')];var _0x375944=_0x46016c?_0x6088b8[_0x7bee('0x21')]:_0xa9bfc6['offset']+_0xa9bfc6['limit'];var _0x9bb08d;if(_0x375944>=_0x1ecd8a){_0x375944=_0x1ecd8a;_0x9bb08d=0xc8;}else{_0x9bb08d=0xce;}_0x33a0e4[_0x7bee('0x1c')](_0x9bb08d);return _0x33a0e4['set'](_0x7bee('0x22'),_0x106178+'-'+_0x375944+'/'+_0x1ecd8a)[_0x7bee('0x1d')](_0x6088b8);}return null;};}function patchUpdates(_0x443a0a){return function(_0x5c3089){try{jsonpatch['apply'](_0x5c3089,_0x443a0a,!![]);}catch(_0x132563){return BPromise['reject'](_0x132563);}return _0x5c3089['save']();};}function saveUpdates(_0x352aa2,_0x21e2a7){return function(_0x3161ed){if(_0x3161ed){return _0x3161ed[_0x7bee('0x23')](_0x352aa2)['then'](function(_0x4c7644){return _0x4c7644;});}return null;};}function removeEntity(_0x43ef61,_0x2bad3d){return function(_0x24df88){if(_0x24df88){return _0x24df88[_0x7bee('0x24')]()[_0x7bee('0x25')](function(){var _0x41a6f9=_0x24df88[_0x7bee('0x26')]({'plain':!![]});var _0x8e43bd=_0x7bee('0x27');return db[_0x7bee('0x28')]['destroy']({'where':{'type':_0x8e43bd,'resourceId':_0x41a6f9['id']}})['then'](function(){return _0x24df88;});})[_0x7bee('0x25')](function(){_0x43ef61[_0x7bee('0x1c')](0xcc)[_0x7bee('0x29')]();});}};}function handleEntityNotFound(_0x1bfe2a,_0x619db5){return function(_0x2504b8){if(!_0x2504b8){_0x1bfe2a[_0x7bee('0x2a')](0x194);}return _0x2504b8;};}function handleError(_0x4799fc,_0x9ccab6){_0x9ccab6=_0x9ccab6||0x1f4;return function(_0x3c46d9){logger[_0x7bee('0x2b')](_0x3c46d9['stack']);if(_0x3c46d9[_0x7bee('0x2c')]){delete _0x3c46d9['name'];}_0x4799fc[_0x7bee('0x1c')](_0x9ccab6)[_0x7bee('0x2d')](_0x3c46d9);};}exports['index']=function(_0x54fad3,_0x417992){var _0x4fc50a={},_0x4a6d60={},_0x18ab29={'count':0x0,'rows':[]};var _0x3c070a=_[_0x7bee('0x2e')](db[_0x7bee('0x2f')][_0x7bee('0x30')],function(_0x10e7a2){return{'name':_0x10e7a2[_0x7bee('0x31')],'type':_0x10e7a2[_0x7bee('0x32')][_0x7bee('0x33')]};});_0x4a6d60['model']=_[_0x7bee('0x2e')](_0x3c070a,_0x7bee('0x2c'));_0x4a6d60[_0x7bee('0x34')]=_[_0x7bee('0x35')](_0x54fad3[_0x7bee('0x34')]);_0x4a6d60[_0x7bee('0x36')]=_[_0x7bee('0x37')](_0x4a6d60[_0x7bee('0x38')],_0x4a6d60['query']);_0x4fc50a[_0x7bee('0x39')]=_['intersection'](_0x4a6d60[_0x7bee('0x38')],qs['fields'](_0x54fad3[_0x7bee('0x34')][_0x7bee('0x3a')]));_0x4fc50a[_0x7bee('0x39')]=_0x4fc50a[_0x7bee('0x39')]['length']?_0x4fc50a[_0x7bee('0x39')]:_0x4a6d60[_0x7bee('0x38')];if(!_0x54fad3['query'][_0x7bee('0x3b')](_0x7bee('0x3c'))){_0x4fc50a[_0x7bee('0x20')]=qs[_0x7bee('0x20')](_0x54fad3[_0x7bee('0x34')][_0x7bee('0x20')]);_0x4fc50a[_0x7bee('0x1e')]=qs['offset'](_0x54fad3[_0x7bee('0x34')][_0x7bee('0x1e')]);}_0x4fc50a['order']=qs[_0x7bee('0x3d')](_0x54fad3[_0x7bee('0x34')][_0x7bee('0x3d')]);_0x4fc50a[_0x7bee('0x3e')]=qs[_0x7bee('0x36')](_[_0x7bee('0x3f')](_0x54fad3[_0x7bee('0x34')],_0x4a6d60[_0x7bee('0x36')]),_0x3c070a);if(_0x54fad3[_0x7bee('0x34')][_0x7bee('0x40')]){_0x4fc50a[_0x7bee('0x3e')]=_[_0x7bee('0x41')](_0x4fc50a['where'],{'$or':_[_0x7bee('0x2e')](_0x3c070a,function(_0x392c47){if(_0x392c47[_0x7bee('0x32')]!==_0x7bee('0x42')){var _0x348ef6={};_0x348ef6[_0x392c47['name']]={'$like':'%'+_0x54fad3[_0x7bee('0x34')][_0x7bee('0x40')]+'%'};return _0x348ef6;}})});}_0x4fc50a=_['merge']({},_0x4fc50a,_0x54fad3[_0x7bee('0x43')]);var _0x18e125={'where':_0x4fc50a[_0x7bee('0x3e')]};return db[_0x7bee('0x2f')][_0x7bee('0x21')](_0x18e125)['then'](function(_0x181e81){_0x18ab29[_0x7bee('0x21')]=_0x181e81;if(_0x54fad3[_0x7bee('0x34')][_0x7bee('0x44')]){_0x4fc50a['include']=[{'all':!![]}];}return db['AnalyticCustomReport'][_0x7bee('0x45')](_0x4fc50a);})[_0x7bee('0x25')](function(_0x506a07){_0x18ab29['rows']=_0x506a07;return _0x18ab29;})[_0x7bee('0x25')](respondWithFilteredResult(_0x417992,_0x4fc50a))[_0x7bee('0x46')](handleError(_0x417992,null));};exports[_0x7bee('0x47')]=function(_0x221ee1,_0x477a88){var _0x1039ae={'raw':![],'where':{'id':_0x221ee1[_0x7bee('0x48')]['id']}},_0x31720b={};_0x31720b[_0x7bee('0x38')]=_[_0x7bee('0x35')](db[_0x7bee('0x2f')][_0x7bee('0x30')]);_0x31720b[_0x7bee('0x34')]=_[_0x7bee('0x35')](_0x221ee1['query']);_0x31720b[_0x7bee('0x36')]=_[_0x7bee('0x37')](_0x31720b['model'],_0x31720b['query']);_0x1039ae[_0x7bee('0x39')]=_[_0x7bee('0x37')](_0x31720b['model'],qs['fields'](_0x221ee1['query'][_0x7bee('0x3a')]));_0x1039ae[_0x7bee('0x39')]=_0x1039ae[_0x7bee('0x39')][_0x7bee('0x49')]?_0x1039ae['attributes']:_0x31720b[_0x7bee('0x38')];if(_0x221ee1[_0x7bee('0x34')][_0x7bee('0x44')]){_0x1039ae['include']=[{'all':!![]}];}_0x1039ae=_['merge']({},_0x1039ae,_0x221ee1[_0x7bee('0x43')]);return db[_0x7bee('0x2f')][_0x7bee('0x4a')](_0x1039ae)[_0x7bee('0x25')](handleEntityNotFound(_0x477a88,null))[_0x7bee('0x25')](respondWithResult(_0x477a88,null))[_0x7bee('0x46')](handleError(_0x477a88,null));};exports['create']=function(_0x60f117,_0x30bbfa){return db['AnalyticCustomReport'][_0x7bee('0x4b')](_0x60f117[_0x7bee('0x4c')],{})[_0x7bee('0x25')](function(_0x1bd29b){var _0x502229=_0x60f117['user'][_0x7bee('0x26')]({'plain':!![]});if(!_0x502229)throw new Error(_0x7bee('0x4d'));if(_0x502229['role']===_0x7bee('0x4e')){var _0x2c454c=_0x1bd29b['get']({'plain':!![]});var _0x3b45f8=_0x7bee('0x4f');return db[_0x7bee('0x50')][_0x7bee('0x4a')]({'where':{'name':_0x3b45f8,'userProfileId':_0x502229['userProfileId']},'raw':!![]})[_0x7bee('0x25')](function(_0x47e40b){if(_0x47e40b&&_0x47e40b[_0x7bee('0x51')]===0x0){return db[_0x7bee('0x28')][_0x7bee('0x4b')]({'name':_0x2c454c[_0x7bee('0x2c')],'resourceId':_0x2c454c['id'],'type':_0x7bee('0x27'),'sectionId':_0x47e40b['id']},{})['then'](function(){return _0x1bd29b;});}else{return _0x1bd29b;}})[_0x7bee('0x46')](function(_0x475b22){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x475b22);throw _0x475b22;});}return _0x1bd29b;})['then'](respondWithResult(_0x30bbfa,0xc9))['catch'](handleError(_0x30bbfa,null));};exports[_0x7bee('0x23')]=function(_0x2b16b5,_0xf30b42){if(_0x2b16b5[_0x7bee('0x4c')]['id']){delete _0x2b16b5[_0x7bee('0x4c')]['id'];}return db[_0x7bee('0x2f')]['find']({'where':{'id':_0x2b16b5['params']['id']}})[_0x7bee('0x25')](handleEntityNotFound(_0xf30b42,null))[_0x7bee('0x25')](saveUpdates(_0x2b16b5[_0x7bee('0x4c')],null))[_0x7bee('0x25')](respondWithResult(_0xf30b42,null))[_0x7bee('0x46')](handleError(_0xf30b42,null));};exports['destroy']=function(_0x1da1d3,_0x334fd5){return db[_0x7bee('0x2f')][_0x7bee('0x4a')]({'where':{'id':_0x1da1d3['params']['id']}})['then'](handleEntityNotFound(_0x334fd5,null))[_0x7bee('0x25')](removeEntity(_0x334fd5,null))[_0x7bee('0x46')](handleError(_0x334fd5,null));};exports['preview']=function(_0x165743,_0x2e72f1){var _0x37eb3f=0xa;var _0x390a3a=[_0x7bee('0x52'),_0x7bee('0x53'),_0x7bee('0x54'),_0x7bee('0x55')];var _0x3174fb={'SUM':_0x7bee('0x56'),'COUNT':_0x7bee('0x57'),'COUNT DISTINCT':_0x7bee('0x58'),'MAX':_0x7bee('0x59'),'MIN':_0x7bee('0x5a'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x7bee('0x5b'),'GROUP_CONCAT ASC':_0x7bee('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x1bcc51={'SEC_TO_TIME':_0x7bee('0x5d'),'DATE':_0x7bee('0x5e'),'HOUR':_0x7bee('0x5f'),'ROUND':_0x7bee('0x60'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x4d9c76=function(_0x3c2ea7){return!_[_0x7bee('0x61')]([_0x7bee('0x62'),_0x7bee('0x63'),_0x7bee('0x64'),_0x7bee('0x65')],_0x3c2ea7);};var _0x41f408=function(_0x2d9b21){if(!_0x2d9b21||!_0x2d9b21['rules'][_0x7bee('0x49')]){return'';}for(var _0x2a5c46='(',_0xd70cd8=0x0;_0xd70cd8<_0x2d9b21['rules'][_0x7bee('0x49')];_0xd70cd8+=0x1){_0xd70cd8>0x0&&(_0x2a5c46+='\x20'+_0x2d9b21[_0x7bee('0x66')]+'\x20');_0x2a5c46+=_0x2d9b21['rules'][_0xd70cd8][_0x7bee('0x67')]?_0x41f408(_0x2d9b21[_0x7bee('0x68')][_0xd70cd8][_0x7bee('0x67')]):_0x2d9b21[_0x7bee('0x68')][_0xd70cd8][_0x7bee('0x69')]+'\x20'+_0x2d9b21[_0x7bee('0x68')][_0xd70cd8][_0x7bee('0x6a')]+(_0x4d9c76(_0x2d9b21[_0x7bee('0x68')][_0xd70cd8][_0x7bee('0x6a')])?'\x20'+_0x2d9b21[_0x7bee('0x68')][_0xd70cd8]['value']:'');}return _0x2a5c46+')';};var _0x559f91={'where':{'id':_0x165743['params']['id']}},_0x30a0a9,_0x4cabd8,_0x505ded,_0x10fecc,_0x87729b;_0x559f91=_['merge']({},_0x559f91,_0x165743[_0x7bee('0x43')]);return db[_0x7bee('0x2f')][_0x7bee('0x4a')](_0x559f91)['then'](function(_0x79a988){if(_0x79a988){_0x30a0a9=_0x79a988;return _0x79a988[_0x7bee('0x6b')]();}return null;})[_0x7bee('0x25')](function(_0x2ec818){if(_0x2ec818){if(!_0x2ec818['length']){throw new db[(_0x7bee('0x6c'))][(_0x7bee('0x6d'))](_0x7bee('0x6e'),0x193);}_0x4cabd8=_0x2ec818;return db[_0x7bee('0x6f')][_0x7bee('0x45')]({'raw':!![]});}return null;})[_0x7bee('0x25')](function(_0x3887c9){if(_0x3887c9){_0x505ded=_[_0x7bee('0x70')](_0x3887c9,'id');var _0x499613;var _0x4fb748=squel['select']();_0x4fb748['from'](_0x30a0a9[_0x7bee('0x71')]);for(var _0x29ec48=0x0;_0x29ec48<_0x4cabd8[_0x7bee('0x49')];_0x29ec48+=0x1){_0x499613=_0x4cabd8[_0x29ec48][_0x7bee('0x72')]?_0x505ded[_0x4cabd8[_0x29ec48][_0x7bee('0x72')]][_0x7bee('0x73')]:_0x4cabd8[_0x29ec48]['field'];_0x499613=_0x4cabd8[_0x29ec48]['function']?_[_0x7bee('0x74')](_0x3174fb[_0x4cabd8[_0x29ec48][_0x7bee('0x75')]],'%s',_0x499613):_0x499613;_0x499613=_0x4cabd8[_0x29ec48][_0x7bee('0x76')]?_[_0x7bee('0x74')](_0x1bcc51[_0x4cabd8[_0x29ec48][_0x7bee('0x76')]],'%s',_0x499613):_0x499613;if(_0x4cabd8[_0x29ec48][_0x7bee('0x77')]){_0x4fb748[_0x7bee('0x67')](_0x499613);}_0x4cabd8[_0x29ec48][_0x7bee('0x78')]&&_0x4fb748[_0x7bee('0x79')](_0x499613,_0x4cabd8[_0x29ec48][_0x7bee('0x78')]==='DESC'?![]:!![]);_0x4fb748['field'](_0x499613,_0x4cabd8[_0x29ec48][_0x7bee('0x7a')]||_0x499613);}if(_0x30a0a9[_0x7bee('0x7b')]){_0x30a0a9[_0x7bee('0x7b')]=JSON[_0x7bee('0x7c')](_0x30a0a9['joins']);for(var _0x1fb437=0x0;_0x1fb437<_0x30a0a9[_0x7bee('0x7b')]['length'];_0x1fb437+=0x1){if(_0x30a0a9[_0x7bee('0x7b')][_0x1fb437]['type']&&_['includes'](_0x390a3a,_0x30a0a9[_0x7bee('0x7b')][_0x1fb437][_0x7bee('0x32')])&&_0x30a0a9[_0x7bee('0x7b')][_0x1fb437]['parentKey']&&_0x30a0a9[_0x7bee('0x7b')][_0x1fb437][_0x7bee('0x7d')]&&_0x30a0a9['joins'][_0x1fb437][_0x7bee('0x7e')]){_0x4fb748[_0x30a0a9[_0x7bee('0x7b')][_0x1fb437][_0x7bee('0x32')]](_0x30a0a9['joins'][_0x1fb437][_0x7bee('0x7d')],null,util[_0x7bee('0x76')](_0x7bee('0x7f'),_0x30a0a9[_0x7bee('0x71')],_0x30a0a9['joins'][_0x1fb437][_0x7bee('0x80')],_0x30a0a9[_0x7bee('0x7b')][_0x1fb437][_0x7bee('0x7d')],_0x30a0a9[_0x7bee('0x7b')][_0x1fb437]['foreignKey']));}}}if(_0x30a0a9['conditions']){_0x30a0a9[_0x7bee('0x81')]=JSON[_0x7bee('0x7c')](_0x30a0a9[_0x7bee('0x81')]);_0x4fb748[_0x7bee('0x3e')](_0x41f408(_0x30a0a9[_0x7bee('0x81')][_0x7bee('0x67')]));}_0x87729b=_0x4fb748['clone']();_0x4fb748[_0x7bee('0x20')](_0x37eb3f);_0x4fb748[_0x7bee('0x1e')](0x0);logger['debug'](_0x7bee('0x82'),_0x4fb748[_0x7bee('0x83')]());return dbH['sequelize']['query'](_0x4fb748[_0x7bee('0x83')](),{'type':dbH[_0x7bee('0x84')][_0x7bee('0x85')][_0x7bee('0x86')]});}})[_0x7bee('0x25')](respondWithResult(_0x2e72f1,null))[_0x7bee('0x46')](handleError(_0x2e72f1,null));};function runReport(_0x431c8d,_0xa0be23,_0x2afa22){var _0x4b2e5d=_0xa0be23[_0x7bee('0x2c')];var _0x27f513=0xa;var _0xf81e40=[_0x7bee('0x52'),'left_join',_0x7bee('0x54'),_0x7bee('0x55')];var _0x1718cd={'SUM':_0x7bee('0x56'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x7bee('0x59'),'MIN':_0x7bee('0x5a'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x7bee('0x5b'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x7bee('0x87')};var _0x3595b8={'SEC_TO_TIME':_0x7bee('0x5d'),'DATE':_0x7bee('0x5e'),'HOUR':'HOUR(%s)','ROUND':_0x7bee('0x60'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x19f60d=function(_0x49a28b){return!_['includes']([_0x7bee('0x62'),_0x7bee('0x63'),'IS\x20EMPTY',_0x7bee('0x65')],_0x49a28b);};var _0x5c770e=function(_0x3b7094){if(!_0x3b7094||!_0x3b7094[_0x7bee('0x68')][_0x7bee('0x49')]){return'';}for(var _0x5ce9e6='(',_0x2289e2=0x0;_0x2289e2<_0x3b7094['rules']['length'];_0x2289e2+=0x1){_0x2289e2>0x0&&(_0x5ce9e6+='\x20'+_0x3b7094[_0x7bee('0x66')]+'\x20');_0x5ce9e6+=_0x3b7094[_0x7bee('0x68')][_0x2289e2][_0x7bee('0x67')]?_0x5c770e(_0x3b7094[_0x7bee('0x68')][_0x2289e2][_0x7bee('0x67')]):_0x3b7094[_0x7bee('0x68')][_0x2289e2]['field']+'\x20'+_0x3b7094[_0x7bee('0x68')][_0x2289e2][_0x7bee('0x6a')]+(_0x19f60d(_0x3b7094[_0x7bee('0x68')][_0x2289e2][_0x7bee('0x6a')])?'\x20'+_0x3b7094['rules'][_0x2289e2]['value']:'');}return _0x5ce9e6+')';};var _0x3212f9={'where':{'id':_0x431c8d['id']}},_0x14afe3,_0x1339ea,_0xc33e72,_0x20cd80,_0x936db8;_0x3212f9=_[_0x7bee('0x41')]({},_0x3212f9,_0x2afa22);return db[_0x7bee('0x2f')][_0x7bee('0x4a')](_0x3212f9)[_0x7bee('0x25')](function(_0x13c912){if(_0x13c912){_0x14afe3=_0x13c912;return _0x13c912[_0x7bee('0x6b')]();}return null;})['then'](function(_0x580b47){if(_0x580b47){if(!_0x580b47['length']){throw new db['Sequelize'][(_0x7bee('0x6d'))](_0x7bee('0x6e'),0x193);}_0x1339ea=_0x580b47;return db[_0x7bee('0x6f')][_0x7bee('0x45')]({'raw':!![]});}return null;})[_0x7bee('0x25')](function(_0x9725c0){if(_0x9725c0){_0xc33e72=_[_0x7bee('0x70')](_0x9725c0,'id');var _0x463f16;var _0x33c191=squel['select']();_0x33c191[_0x7bee('0x88')](_0x14afe3[_0x7bee('0x71')]);for(var _0x276d39=0x0;_0x276d39<_0x1339ea['length'];_0x276d39+=0x1){_0x463f16=_0x1339ea[_0x276d39]['MetricId']?_0xc33e72[_0x1339ea[_0x276d39][_0x7bee('0x72')]][_0x7bee('0x73')]:_0x1339ea[_0x276d39][_0x7bee('0x69')];_0x463f16=_0x1339ea[_0x276d39]['function']?_['replace'](_0x1718cd[_0x1339ea[_0x276d39]['function']],'%s',_0x463f16):_0x463f16;_0x463f16=_0x1339ea[_0x276d39][_0x7bee('0x76')]?_[_0x7bee('0x74')](_0x3595b8[_0x1339ea[_0x276d39][_0x7bee('0x76')]],'%s',_0x463f16):_0x463f16;if(_0x1339ea[_0x276d39][_0x7bee('0x77')]){_0x33c191[_0x7bee('0x67')](_0x463f16);}_0x1339ea[_0x276d39]['orderBy']&&_0x33c191[_0x7bee('0x79')](_0x463f16,_0x1339ea[_0x276d39][_0x7bee('0x78')]===_0x7bee('0x89')?![]:!![]);_0x33c191[_0x7bee('0x69')](_0x463f16,_0x1339ea[_0x276d39][_0x7bee('0x7a')]||_0x463f16);}if(_0x14afe3[_0x7bee('0x7b')]){_0x14afe3[_0x7bee('0x7b')]=JSON['parse'](_0x14afe3[_0x7bee('0x7b')]);for(var _0x43fb4b=0x0;_0x43fb4b<_0x14afe3[_0x7bee('0x7b')][_0x7bee('0x49')];_0x43fb4b+=0x1){if(_0x14afe3[_0x7bee('0x7b')][_0x43fb4b]['type']&&_[_0x7bee('0x61')](_0xf81e40,_0x14afe3[_0x7bee('0x7b')][_0x43fb4b][_0x7bee('0x32')])&&_0x14afe3[_0x7bee('0x7b')][_0x43fb4b][_0x7bee('0x80')]&&_0x14afe3[_0x7bee('0x7b')][_0x43fb4b]['foreignTable']&&_0x14afe3[_0x7bee('0x7b')][_0x43fb4b][_0x7bee('0x7e')]){_0x33c191[_0x14afe3['joins'][_0x43fb4b]['type']](_0x14afe3[_0x7bee('0x7b')][_0x43fb4b][_0x7bee('0x7d')],null,util[_0x7bee('0x76')](_0x7bee('0x7f'),_0x14afe3[_0x7bee('0x71')],_0x14afe3['joins'][_0x43fb4b]['parentKey'],_0x14afe3['joins'][_0x43fb4b][_0x7bee('0x7d')],_0x14afe3[_0x7bee('0x7b')][_0x43fb4b][_0x7bee('0x7e')]));}}}if(_0x14afe3[_0x7bee('0x81')]){_0x14afe3[_0x7bee('0x81')]=JSON[_0x7bee('0x7c')](_0x14afe3[_0x7bee('0x81')]);_0x33c191['where'](_0x5c770e(_0x14afe3['conditions'][_0x7bee('0x67')]));}_0x936db8=_0x33c191[_0x7bee('0x8a')]();_0x33c191[_0x7bee('0x20')](_0x27f513);_0x33c191[_0x7bee('0x1e')](0x0);return;}})[_0x7bee('0x25')](function(){if(_0xa0be23[_0x7bee('0x8b')]==='web'){return null;}var _0x50ea3d=_[_0x7bee('0x41')](_0xa0be23,{'name':_0xa0be23[_0x7bee('0x8c')]||_0xa0be23[_0x7bee('0x2c')]||_0x14afe3[_0x7bee('0x2c')],'basename':_0x4b2e5d,'savename':util[_0x7bee('0x76')](_0x7bee('0x8d'),_0xa0be23[_0x7bee('0x2c')]||_0x14afe3[_0x7bee('0x2c')],require(_0x7bee('0x8e'))[_0x7bee('0x8f')](0x4),_0xa0be23[_0x7bee('0x8b')]||_0x7bee('0x90')),'reportId':_0x14afe3['id'],'reportType':_0x7bee('0x91')});return db[_0x7bee('0x92')][_0x7bee('0x4b')](_0x50ea3d,{'raw':!![]});})['then'](function(_0x3f40ae){if(_0x14afe3[_0x7bee('0x71')]===_0x7bee('0x93')){_0x936db8[_0x7bee('0x3e')](_0x14afe3[_0x7bee('0x71')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0xa0be23[_0x7bee('0x94')],_0xa0be23[_0x7bee('0x95')]);}else{_0x936db8['where'](_0x14afe3[_0x7bee('0x71')]+_0x7bee('0x96'),_0xa0be23['startDate'],_0xa0be23['endDate']);}if(_0x3f40ae){logger[_0x7bee('0x97')](_0x7bee('0x98'),_0x936db8[_0x7bee('0x83')]());require(_0x7bee('0x99'))[_0x7bee('0x9a')](path[_0x7bee('0x52')](__dirname,_0x7bee('0x9b'),_0x3f40ae['output']),[_0x3f40ae['id'],_0x936db8[_0x7bee('0x83')](),path[_0x7bee('0x52')](__dirname,'../../files/reports',_0x3f40ae[_0x7bee('0x9c')]),_0x4b2e5d]);return _0x3f40ae;}else{var _0x56c055=squel[_0x7bee('0x9d')]();_0x56c055[_0x7bee('0x88')]('('+_0x936db8[_0x7bee('0x83')]()+')',_0x7bee('0x9e'));_0x56c055[_0x7bee('0x69')]('COUNT(*)',_0x7bee('0x21'));_0x936db8['limit'](_0xa0be23[_0x7bee('0x20')]||_0x27f513);_0x936db8[_0x7bee('0x1e')](_0xa0be23[_0x7bee('0x1e')]||0x0);return dbH[_0x7bee('0x84')][_0x7bee('0x34')](_0x56c055[_0x7bee('0x83')](),{'type':dbH['sequelize'][_0x7bee('0x85')][_0x7bee('0x86')]})[_0x7bee('0x25')](function(_0x47f0c6){if(!_0x47f0c6[_0x7bee('0x49')]){_0x20cd80=0x0;}else{_0x20cd80=_0x47f0c6[0x0][_0x7bee('0x21')]||0x0;}return dbH[_0x7bee('0x84')][_0x7bee('0x34')](_0x936db8['toString'](),{'type':dbH[_0x7bee('0x84')][_0x7bee('0x85')]['SELECT']});})[_0x7bee('0x25')](function(_0x1f3309){return{'rows':_0x1f3309||[],'count':_0x20cd80};});}});}exports[_0x7bee('0x9f')]=function(_0x2beac7,_0x56c121){return runReport(_0x2beac7[_0x7bee('0x48')],_0x2beac7[_0x7bee('0x34')],_0x2beac7[_0x7bee('0x43')])[_0x7bee('0x25')](respondWithResult(_0x56c121,null))['catch'](handleError(_0x56c121,null));};exports[_0x7bee('0xa0')]=runReport;exports[_0x7bee('0x34')]=function(_0x22c667,_0xb2347){var _0x50d5a5=0xa;var _0x4a69ae=[_0x7bee('0x52'),'left_join','right_join',_0x7bee('0x55')];var _0x590a94={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x7bee('0x5a'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x7bee('0x5b'),'GROUP_CONCAT ASC':_0x7bee('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x35f13d={'SEC_TO_TIME':_0x7bee('0x5d'),'DATE':_0x7bee('0x5e'),'HOUR':'HOUR(%s)','ROUND':_0x7bee('0x60'),'UNIX_TIMESTAMP':_0x7bee('0xa1')};var _0x135ea4=function(_0x1b8623){return!_['includes']([_0x7bee('0x62'),'IS\x20NOT\x20NULL',_0x7bee('0x64'),_0x7bee('0x65')],_0x1b8623);};var _0x213c75=function(_0x1b8c4f){if(!_0x1b8c4f||!_0x1b8c4f[_0x7bee('0x68')]['length']){return'';}for(var _0x6be1a3='(',_0x46d530=0x0;_0x46d530<_0x1b8c4f[_0x7bee('0x68')][_0x7bee('0x49')];_0x46d530+=0x1){_0x46d530>0x0&&(_0x6be1a3+='\x20'+_0x1b8c4f[_0x7bee('0x66')]+'\x20');_0x6be1a3+=_0x1b8c4f[_0x7bee('0x68')][_0x46d530][_0x7bee('0x67')]?_0x213c75(_0x1b8c4f[_0x7bee('0x68')][_0x46d530][_0x7bee('0x67')]):_0x1b8c4f[_0x7bee('0x68')][_0x46d530][_0x7bee('0x69')]+'\x20'+_0x1b8c4f['rules'][_0x46d530]['condition']+(_0x135ea4(_0x1b8c4f[_0x7bee('0x68')][_0x46d530][_0x7bee('0x6a')])?'\x20'+_0x1b8c4f[_0x7bee('0x68')][_0x46d530][_0x7bee('0xa2')]:'');}return _0x6be1a3+')';};var _0x305dcf={'where':{'id':_0x22c667[_0x7bee('0x48')]['id']}},_0x10dded,_0x309347,_0x2053a8,_0x19f458,_0x1d4cc2;_0x305dcf=_[_0x7bee('0x41')]({},_0x305dcf,_0x22c667[_0x7bee('0x43')]);return db[_0x7bee('0x2f')][_0x7bee('0x4a')](_0x305dcf)[_0x7bee('0x25')](function(_0x8f379d){if(_0x8f379d){_0x10dded=_0x8f379d;return _0x8f379d[_0x7bee('0x6b')]();}return null;})[_0x7bee('0x25')](function(_0x5d1e94){if(_0x5d1e94){if(!_0x5d1e94[_0x7bee('0x49')]){throw new db[(_0x7bee('0x6c'))][(_0x7bee('0x6d'))](_0x7bee('0x6e'),0x193);}_0x309347=_0x5d1e94;return db[_0x7bee('0x6f')][_0x7bee('0x45')]({'raw':!![]});}return null;})['then'](function(_0x2a2a50){if(_0x2a2a50){_0x2053a8=_['keyBy'](_0x2a2a50,'id');var _0x2659a8;var _0x5518a0=squel[_0x7bee('0x9d')]();_0x5518a0[_0x7bee('0x88')](_0x10dded['table']);for(var _0x1244ac=0x0;_0x1244ac<_0x309347['length'];_0x1244ac+=0x1){_0x2659a8=_0x309347[_0x1244ac][_0x7bee('0x72')]?_0x2053a8[_0x309347[_0x1244ac][_0x7bee('0x72')]]['metric']:_0x309347[_0x1244ac][_0x7bee('0x69')];_0x2659a8=_0x309347[_0x1244ac][_0x7bee('0x75')]?_['replace'](_0x590a94[_0x309347[_0x1244ac][_0x7bee('0x75')]],'%s',_0x2659a8):_0x2659a8;_0x2659a8=_0x309347[_0x1244ac][_0x7bee('0x76')]?_[_0x7bee('0x74')](_0x35f13d[_0x309347[_0x1244ac][_0x7bee('0x76')]],'%s',_0x2659a8):_0x2659a8;if(_0x309347[_0x1244ac][_0x7bee('0x77')]){_0x5518a0[_0x7bee('0x67')](_0x2659a8);}_0x309347[_0x1244ac][_0x7bee('0x78')]&&_0x5518a0['order'](_0x2659a8,_0x309347[_0x1244ac][_0x7bee('0x78')]===_0x7bee('0x89')?![]:!![]);_0x5518a0['field'](_0x2659a8,_0x309347[_0x1244ac][_0x7bee('0x7a')]||_0x2659a8);}if(_0x10dded[_0x7bee('0x7b')]){_0x10dded[_0x7bee('0x7b')]=JSON[_0x7bee('0x7c')](_0x10dded[_0x7bee('0x7b')]);for(var _0x4d2d10=0x0;_0x4d2d10<_0x10dded[_0x7bee('0x7b')]['length'];_0x4d2d10+=0x1){if(_0x10dded[_0x7bee('0x7b')][_0x4d2d10][_0x7bee('0x32')]&&_[_0x7bee('0x61')](_0x4a69ae,_0x10dded[_0x7bee('0x7b')][_0x4d2d10][_0x7bee('0x32')])&&_0x10dded[_0x7bee('0x7b')][_0x4d2d10]['parentKey']&&_0x10dded[_0x7bee('0x7b')][_0x4d2d10][_0x7bee('0x7d')]&&_0x10dded[_0x7bee('0x7b')][_0x4d2d10]['foreignKey']){_0x5518a0[_0x10dded['joins'][_0x4d2d10][_0x7bee('0x32')]](_0x10dded[_0x7bee('0x7b')][_0x4d2d10][_0x7bee('0x7d')],null,util[_0x7bee('0x76')]('%s.%s\x20=\x20%s.%s',_0x10dded[_0x7bee('0x71')],_0x10dded[_0x7bee('0x7b')][_0x4d2d10]['parentKey'],_0x10dded[_0x7bee('0x7b')][_0x4d2d10]['foreignTable'],_0x10dded['joins'][_0x4d2d10][_0x7bee('0x7e')]));}}}if(_0x10dded[_0x7bee('0x81')]){_0x10dded[_0x7bee('0x81')]=JSON['parse'](_0x10dded['conditions']);_0x5518a0[_0x7bee('0x3e')](_0x213c75(_0x10dded[_0x7bee('0x81')]['group']));}_0x1d4cc2=_0x5518a0[_0x7bee('0x8a')]();_0x5518a0[_0x7bee('0x20')](_0x50d5a5);_0x5518a0[_0x7bee('0x1e')](0x0);logger[_0x7bee('0xa3')](_0x7bee('0x82'),_0x5518a0[_0x7bee('0x83')]());return dbH[_0x7bee('0x84')]['query'](_0x5518a0[_0x7bee('0x83')](),{'type':dbH[_0x7bee('0x84')][_0x7bee('0x85')][_0x7bee('0x86')]});}})[_0x7bee('0x25')](function(){return{'sql':_0x1d4cc2[_0x7bee('0x83')]()};})['then'](respondWithResult(_0xb2347,null))[_0x7bee('0x46')](handleError(_0xb2347,null));};