Built motion from commit (unavailable).|2.5.4
[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 _0x8388=['group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','from','table','MetricId','metric','replace','function','format','groupBy','orderBy','DESC','parse','joins','parentKey','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','clone','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','cross_join','COUNT(DISTINCT\x20%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20EMPTY','select','alias','debug','No\x20available\x20data','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../files/reports','savename','countTable','COUNT(*)','runReport','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','set','apply','save','update','then','destroy','UserProfileResource','error','name','send','index','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','count','include','AnalyticCustomReport','findAll','rows','catch','show','params','filters','includeAll','merge','options','find','create','body','get','role','Reports','UserProfileSection','autoAssociation','CustomReports','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','SUM(%s)','COUNT(%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator'];(function(_0x5b41de,_0x592d1b){var _0x894470=function(_0x316c07){while(--_0x316c07){_0x5b41de['push'](_0x5b41de['shift']());}};_0x894470(++_0x592d1b);}(_0x8388,0x18d));var _0x8838=function(_0x23a79e,_0x235f89){_0x23a79e=_0x23a79e-0x0;var _0x3dab57=_0x8388[_0x23a79e];return _0x3dab57;};'use strict';var pdf=require(_0x8838('0x0'));var emlformat=require(_0x8838('0x1'));var rimraf=require(_0x8838('0x2'));var zipdir=require(_0x8838('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8838('0x4'));var moment=require(_0x8838('0x5'));var BPromise=require(_0x8838('0x6'));var Mustache=require(_0x8838('0x7'));var util=require(_0x8838('0x8'));var path=require('path');var sox=require(_0x8838('0x9'));var csv=require(_0x8838('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x8838('0xb'));var squel=require(_0x8838('0xc'));var crypto=require(_0x8838('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x8838('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8838('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x8838('0x10'));var as=require(_0x8838('0x11'));var hardwareService=require(_0x8838('0x12'));var logger=require(_0x8838('0x13'))('api');var utils=require(_0x8838('0x14'));var config=require(_0x8838('0x15'));var db=require(_0x8838('0x16'))['db'];var dbH=require(_0x8838('0x16'))['dbH'];function respondWithStatusCode(_0x157a82,_0x48dc7a){_0x48dc7a=_0x48dc7a||0xcc;return function(_0x530bac){if(_0x530bac){return _0x157a82[_0x8838('0x17')](_0x48dc7a);}return _0x157a82[_0x8838('0x18')](_0x48dc7a)[_0x8838('0x19')]();};}function respondWithResult(_0x43b446,_0x15936c){_0x15936c=_0x15936c||0xc8;return function(_0x22b3d4){if(_0x22b3d4){return _0x43b446[_0x8838('0x18')](_0x15936c)[_0x8838('0x1a')](_0x22b3d4);}};}function respondWithFilteredResult(_0x486dae,_0x44a342){return function(_0x377db0){if(_0x377db0){var _0x5eecf2=_0x377db0['count'],_0x10a41f=_0x44a342[_0x8838('0x1b')],_0xab3fb8=_0x44a342['offset']+_0x44a342[_0x8838('0x1c')],_0x1a089c;if(_0xab3fb8>=_0x5eecf2){_0xab3fb8=_0x5eecf2;_0x1a089c=0xc8;}else{_0x1a089c=0xce;}_0x486dae[_0x8838('0x18')](_0x1a089c);return _0x486dae[_0x8838('0x1d')]('Content-Range',_0x10a41f+'-'+_0xab3fb8+'/'+_0x5eecf2)[_0x8838('0x1a')](_0x377db0);}return null;};}function patchUpdates(_0x7b836e){return function(_0x4d34bd){try{jsonpatch[_0x8838('0x1e')](_0x4d34bd,_0x7b836e,!![]);}catch(_0x2a1ccd){return BPromise['reject'](_0x2a1ccd);}return _0x4d34bd[_0x8838('0x1f')]();};}function saveUpdates(_0xd59bca,_0x53cd4b){return function(_0x55ccbc){if(_0x55ccbc){return _0x55ccbc[_0x8838('0x20')](_0xd59bca)[_0x8838('0x21')](function(_0xe01a61){return _0xe01a61;});}return null;};}function removeEntity(_0xb74e1b,_0x109341){return function(_0xa008f2){if(_0xa008f2){return _0xa008f2[_0x8838('0x22')]()[_0x8838('0x21')](function(){var _0x46b603=_0xa008f2['get']({'plain':!![]});var _0x73d719='CustomReports';return db[_0x8838('0x23')][_0x8838('0x22')]({'where':{'type':_0x73d719,'resourceId':_0x46b603['id']}})['then'](function(){return _0xa008f2;});})['then'](function(){_0xb74e1b[_0x8838('0x18')](0xcc)[_0x8838('0x19')]();});}};}function handleEntityNotFound(_0x105887,_0x45e5bb){return function(_0x1c611a){if(!_0x1c611a){_0x105887[_0x8838('0x17')](0x194);}return _0x1c611a;};}function handleError(_0x1b7c30,_0x1fe141){_0x1fe141=_0x1fe141||0x1f4;return function(_0xaca1e7){logger[_0x8838('0x24')](_0xaca1e7['stack']);if(_0xaca1e7['name']){delete _0xaca1e7[_0x8838('0x25')];}_0x1b7c30['status'](_0x1fe141)[_0x8838('0x26')](_0xaca1e7);};}exports[_0x8838('0x27')]=function(_0x5da3b0,_0x537c9d){var _0x2ac2b1={},_0x5113f8={},_0x552bc9={'count':0x0,'rows':[]};var _0x1b605d=_[_0x8838('0x28')](db['AnalyticCustomReport'][_0x8838('0x29')],function(_0x296ba1){return{'name':_0x296ba1['fieldName'],'type':_0x296ba1[_0x8838('0x2a')][_0x8838('0x2b')]};});_0x5113f8[_0x8838('0x2c')]=_[_0x8838('0x28')](_0x1b605d,'name');_0x5113f8[_0x8838('0x2d')]=_[_0x8838('0x2e')](_0x5da3b0['query']);_0x5113f8['filters']=_[_0x8838('0x2f')](_0x5113f8['model'],_0x5113f8[_0x8838('0x2d')]);_0x2ac2b1[_0x8838('0x30')]=_[_0x8838('0x2f')](_0x5113f8['model'],qs[_0x8838('0x31')](_0x5da3b0[_0x8838('0x2d')][_0x8838('0x31')]));_0x2ac2b1['attributes']=_0x2ac2b1[_0x8838('0x30')][_0x8838('0x32')]?_0x2ac2b1[_0x8838('0x30')]:_0x5113f8['model'];if(!_0x5da3b0['query'][_0x8838('0x33')](_0x8838('0x34'))){_0x2ac2b1[_0x8838('0x1c')]=qs[_0x8838('0x1c')](_0x5da3b0['query'][_0x8838('0x1c')]);_0x2ac2b1[_0x8838('0x1b')]=qs[_0x8838('0x1b')](_0x5da3b0[_0x8838('0x2d')][_0x8838('0x1b')]);}_0x2ac2b1[_0x8838('0x35')]=qs[_0x8838('0x36')](_0x5da3b0[_0x8838('0x2d')]['sort']);_0x2ac2b1[_0x8838('0x37')]=qs['filters'](_['pick'](_0x5da3b0['query'],_0x5113f8['filters']),_0x1b605d);if(_0x5da3b0[_0x8838('0x2d')][_0x8838('0x38')]){_0x2ac2b1[_0x8838('0x37')]=_['merge'](_0x2ac2b1[_0x8838('0x37')],{'$or':_[_0x8838('0x28')](_0x1b605d,function(_0x3c9e1e){if(_0x3c9e1e[_0x8838('0x2a')]!==_0x8838('0x39')){var _0x39f5fd={};_0x39f5fd[_0x3c9e1e[_0x8838('0x25')]]={'$like':'%'+_0x5da3b0['query']['filter']+'%'};return _0x39f5fd;}})});}_0x2ac2b1=_['merge']({},_0x2ac2b1,_0x5da3b0['options']);var _0x3bc27c={'where':_0x2ac2b1[_0x8838('0x37')]};return db['AnalyticCustomReport'][_0x8838('0x3a')](_0x3bc27c)[_0x8838('0x21')](function(_0x2ebc6c){_0x552bc9['count']=_0x2ebc6c;if(_0x5da3b0[_0x8838('0x2d')]['includeAll']){_0x2ac2b1[_0x8838('0x3b')]=[{'all':!![]}];}return db[_0x8838('0x3c')][_0x8838('0x3d')](_0x2ac2b1);})[_0x8838('0x21')](function(_0x440585){_0x552bc9[_0x8838('0x3e')]=_0x440585;return _0x552bc9;})['then'](respondWithFilteredResult(_0x537c9d,_0x2ac2b1))[_0x8838('0x3f')](handleError(_0x537c9d,null));};exports[_0x8838('0x40')]=function(_0x5dfa10,_0x52e0e2){var _0x2e694b={'raw':![],'where':{'id':_0x5dfa10[_0x8838('0x41')]['id']}},_0xde98de={};_0xde98de[_0x8838('0x2c')]=_[_0x8838('0x2e')](db['AnalyticCustomReport'][_0x8838('0x29')]);_0xde98de[_0x8838('0x2d')]=_[_0x8838('0x2e')](_0x5dfa10[_0x8838('0x2d')]);_0xde98de[_0x8838('0x42')]=_['intersection'](_0xde98de['model'],_0xde98de[_0x8838('0x2d')]);_0x2e694b['attributes']=_[_0x8838('0x2f')](_0xde98de[_0x8838('0x2c')],qs[_0x8838('0x31')](_0x5dfa10['query']['fields']));_0x2e694b[_0x8838('0x30')]=_0x2e694b[_0x8838('0x30')][_0x8838('0x32')]?_0x2e694b[_0x8838('0x30')]:_0xde98de[_0x8838('0x2c')];if(_0x5dfa10[_0x8838('0x2d')][_0x8838('0x43')]){_0x2e694b[_0x8838('0x3b')]=[{'all':!![]}];}_0x2e694b=_[_0x8838('0x44')]({},_0x2e694b,_0x5dfa10[_0x8838('0x45')]);return db[_0x8838('0x3c')][_0x8838('0x46')](_0x2e694b)['then'](handleEntityNotFound(_0x52e0e2,null))[_0x8838('0x21')](respondWithResult(_0x52e0e2,null))['catch'](handleError(_0x52e0e2,null));};exports[_0x8838('0x47')]=function(_0x5d498b,_0x3afe73){return db[_0x8838('0x3c')][_0x8838('0x47')](_0x5d498b[_0x8838('0x48')],{})[_0x8838('0x21')](function(_0x226f91){var _0x3a1b8a=_0x5d498b['user'][_0x8838('0x49')]({'plain':!![]});if(!_0x3a1b8a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3a1b8a[_0x8838('0x4a')]==='user'){var _0x25432f=_0x226f91[_0x8838('0x49')]({'plain':!![]});var _0x4e2a14=_0x8838('0x4b');return db[_0x8838('0x4c')][_0x8838('0x46')]({'where':{'name':_0x4e2a14,'userProfileId':_0x3a1b8a['userProfileId']},'raw':!![]})[_0x8838('0x21')](function(_0x206fef){if(_0x206fef&&_0x206fef[_0x8838('0x4d')]===0x0){return db['UserProfileResource'][_0x8838('0x47')]({'name':_0x25432f[_0x8838('0x25')],'resourceId':_0x25432f['id'],'type':_0x8838('0x4e'),'sectionId':_0x206fef['id']},{})[_0x8838('0x21')](function(){return _0x226f91;});}else{return _0x226f91;}})[_0x8838('0x3f')](function(_0x2bb99f){logger[_0x8838('0x24')](_0x8838('0x4f'),_0x2bb99f);throw _0x2bb99f;});}return _0x226f91;})[_0x8838('0x21')](respondWithResult(_0x3afe73,0xc9))[_0x8838('0x3f')](handleError(_0x3afe73,null));};exports[_0x8838('0x20')]=function(_0x1dc4ae,_0xf3310){if(_0x1dc4ae['body']['id']){delete _0x1dc4ae[_0x8838('0x48')]['id'];}return db['AnalyticCustomReport'][_0x8838('0x46')]({'where':{'id':_0x1dc4ae[_0x8838('0x41')]['id']}})[_0x8838('0x21')](handleEntityNotFound(_0xf3310,null))[_0x8838('0x21')](saveUpdates(_0x1dc4ae[_0x8838('0x48')],null))[_0x8838('0x21')](respondWithResult(_0xf3310,null))[_0x8838('0x3f')](handleError(_0xf3310,null));};exports['destroy']=function(_0x1f1259,_0x13cdfb){return db[_0x8838('0x3c')][_0x8838('0x46')]({'where':{'id':_0x1f1259[_0x8838('0x41')]['id']}})[_0x8838('0x21')](handleEntityNotFound(_0x13cdfb,null))['then'](removeEntity(_0x13cdfb,null))[_0x8838('0x3f')](handleError(_0x13cdfb,null));};exports[_0x8838('0x50')]=function(_0x504534,_0x3db35d){var _0x47d15c=0xa;var _0x8eaf6b=[_0x8838('0x51'),_0x8838('0x52'),_0x8838('0x53'),'cross_join'];var _0x338166={'SUM':_0x8838('0x54'),'COUNT':_0x8838('0x55'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x8838('0x56'),'MIN':_0x8838('0x57'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x8838('0x58'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x3d506a={'SEC_TO_TIME':_0x8838('0x59'),'DATE':_0x8838('0x5a'),'HOUR':_0x8838('0x5b'),'ROUND':_0x8838('0x5c'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x1e6b9d=function(_0x4b3b4e){return!_[_0x8838('0x5d')](['IS\x20NULL',_0x8838('0x5e'),_0x8838('0x5f'),'IS\x20NOT\x20EMPTY'],_0x4b3b4e);};var _0x4ff75b=function(_0x5ba896){if(!_0x5ba896||!_0x5ba896[_0x8838('0x60')]['length']){return'';}for(var _0x287258='(',_0x50e754=0x0;_0x50e754<_0x5ba896['rules'][_0x8838('0x32')];_0x50e754+=0x1){_0x50e754>0x0&&(_0x287258+='\x20'+_0x5ba896[_0x8838('0x61')]+'\x20');_0x287258+=_0x5ba896['rules'][_0x50e754][_0x8838('0x62')]?_0x4ff75b(_0x5ba896[_0x8838('0x60')][_0x50e754][_0x8838('0x62')]):_0x5ba896['rules'][_0x50e754][_0x8838('0x63')]+'\x20'+_0x5ba896[_0x8838('0x60')][_0x50e754][_0x8838('0x64')]+(_0x1e6b9d(_0x5ba896[_0x8838('0x60')][_0x50e754][_0x8838('0x64')])?'\x20'+_0x5ba896[_0x8838('0x60')][_0x50e754][_0x8838('0x65')]:'');}return _0x287258+')';};var _0x5aa054={'where':{'id':_0x504534[_0x8838('0x41')]['id']}},_0x39c289,_0x26029f,_0xf6a1ed,_0xe73cd4,_0xad38a1;_0x5aa054=_[_0x8838('0x44')]({},_0x5aa054,_0x504534['options']);return db['AnalyticCustomReport'][_0x8838('0x46')](_0x5aa054)[_0x8838('0x21')](function(_0x397109){if(_0x397109){_0x39c289=_0x397109;return _0x397109[_0x8838('0x66')]();}return null;})[_0x8838('0x21')](function(_0x21c6f3){if(_0x21c6f3){if(!_0x21c6f3[_0x8838('0x32')]){throw new db[(_0x8838('0x67'))][(_0x8838('0x68'))](_0x8838('0x69'),0x193);}_0x26029f=_0x21c6f3;return db[_0x8838('0x6a')]['findAll']({'raw':!![]});}return null;})[_0x8838('0x21')](function(_0x14fbe4){if(_0x14fbe4){_0xf6a1ed=_[_0x8838('0x6b')](_0x14fbe4,'id');var _0x44b5f7;var _0x376be6=squel['select']();_0x376be6[_0x8838('0x6c')](_0x39c289[_0x8838('0x6d')]);for(var _0x29250d=0x0;_0x29250d<_0x26029f[_0x8838('0x32')];_0x29250d+=0x1){_0x44b5f7=_0x26029f[_0x29250d]['MetricId']?_0xf6a1ed[_0x26029f[_0x29250d][_0x8838('0x6e')]][_0x8838('0x6f')]:_0x26029f[_0x29250d][_0x8838('0x63')];_0x44b5f7=_0x26029f[_0x29250d]['function']?_[_0x8838('0x70')](_0x338166[_0x26029f[_0x29250d][_0x8838('0x71')]],'%s',_0x44b5f7):_0x44b5f7;_0x44b5f7=_0x26029f[_0x29250d]['format']?_[_0x8838('0x70')](_0x3d506a[_0x26029f[_0x29250d][_0x8838('0x72')]],'%s',_0x44b5f7):_0x44b5f7;if(_0x26029f[_0x29250d][_0x8838('0x73')]){_0x376be6[_0x8838('0x62')](_0x44b5f7);}_0x26029f[_0x29250d][_0x8838('0x74')]&&_0x376be6['order'](_0x44b5f7,_0x26029f[_0x29250d]['orderBy']===_0x8838('0x75')?![]:!![]);_0x376be6['field'](_0x44b5f7,_0x26029f[_0x29250d]['alias']||_0x44b5f7);}if(_0x39c289['joins']){_0x39c289['joins']=JSON[_0x8838('0x76')](_0x39c289[_0x8838('0x77')]);for(var _0x5a5f2d=0x0;_0x5a5f2d<_0x39c289[_0x8838('0x77')][_0x8838('0x32')];_0x5a5f2d+=0x1){if(_0x39c289[_0x8838('0x77')][_0x5a5f2d][_0x8838('0x2a')]&&_[_0x8838('0x5d')](_0x8eaf6b,_0x39c289[_0x8838('0x77')][_0x5a5f2d][_0x8838('0x2a')])&&_0x39c289[_0x8838('0x77')][_0x5a5f2d][_0x8838('0x78')]&&_0x39c289['joins'][_0x5a5f2d]['foreignTable']&&_0x39c289[_0x8838('0x77')][_0x5a5f2d][_0x8838('0x79')]){_0x376be6[_0x39c289[_0x8838('0x77')][_0x5a5f2d][_0x8838('0x2a')]](_0x39c289[_0x8838('0x77')][_0x5a5f2d][_0x8838('0x7a')],null,util[_0x8838('0x72')](_0x8838('0x7b'),_0x39c289[_0x8838('0x6d')],_0x39c289[_0x8838('0x77')][_0x5a5f2d]['parentKey'],_0x39c289[_0x8838('0x77')][_0x5a5f2d]['foreignTable'],_0x39c289[_0x8838('0x77')][_0x5a5f2d]['foreignKey']));}}}if(_0x39c289[_0x8838('0x7c')]){_0x39c289['conditions']=JSON[_0x8838('0x76')](_0x39c289[_0x8838('0x7c')]);_0x376be6['where'](_0x4ff75b(_0x39c289['conditions'][_0x8838('0x62')]));}_0xad38a1=_0x376be6[_0x8838('0x7d')]();_0x376be6[_0x8838('0x1c')](_0x47d15c);_0x376be6[_0x8838('0x1b')](0x0);logger['debug'](_0x8838('0x7e'),_0x376be6[_0x8838('0x7f')]());return db[_0x8838('0x80')][_0x8838('0x2d')](_0x376be6[_0x8838('0x7f')](),{'type':db[_0x8838('0x80')][_0x8838('0x81')][_0x8838('0x82')]});}})[_0x8838('0x21')](respondWithResult(_0x3db35d,null))['catch'](handleError(_0x3db35d,null));};function runReport(_0x274e6b,_0x2ff3a2,_0x1ce6f4){var _0x3d516a=_0x2ff3a2['name'];var _0x1ee988=0xa;var _0xe325b7=['join','left_join','right_join',_0x8838('0x83')];var _0x37f564={'SUM':'SUM(%s)','COUNT':_0x8838('0x55'),'COUNT DISTINCT':_0x8838('0x84'),'MAX':_0x8838('0x56'),'MIN':'MIN(%s)','AVG':_0x8838('0x85'),'GROUP_CONCAT':_0x8838('0x58'),'GROUP_CONCAT ASC':_0x8838('0x86'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x61b9ae={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x8838('0x5a'),'HOUR':'HOUR(%s)','ROUND':_0x8838('0x5c'),'UNIX_TIMESTAMP':_0x8838('0x87')};var _0x37312a=function(_0x4343e7){return!_[_0x8838('0x5d')]([_0x8838('0x88'),_0x8838('0x5e'),_0x8838('0x5f'),_0x8838('0x89')],_0x4343e7);};var _0xf2b6fb=function(_0x2f8e0e){if(!_0x2f8e0e||!_0x2f8e0e[_0x8838('0x60')][_0x8838('0x32')]){return'';}for(var _0x425745='(',_0x3ea2d6=0x0;_0x3ea2d6<_0x2f8e0e['rules']['length'];_0x3ea2d6+=0x1){_0x3ea2d6>0x0&&(_0x425745+='\x20'+_0x2f8e0e[_0x8838('0x61')]+'\x20');_0x425745+=_0x2f8e0e[_0x8838('0x60')][_0x3ea2d6][_0x8838('0x62')]?_0xf2b6fb(_0x2f8e0e[_0x8838('0x60')][_0x3ea2d6][_0x8838('0x62')]):_0x2f8e0e[_0x8838('0x60')][_0x3ea2d6][_0x8838('0x63')]+'\x20'+_0x2f8e0e[_0x8838('0x60')][_0x3ea2d6][_0x8838('0x64')]+(_0x37312a(_0x2f8e0e[_0x8838('0x60')][_0x3ea2d6][_0x8838('0x64')])?'\x20'+_0x2f8e0e[_0x8838('0x60')][_0x3ea2d6][_0x8838('0x65')]:'');}return _0x425745+')';};var _0x5b2fa0={'where':{'id':_0x274e6b['id']}},_0x38ae40,_0x1c444d,_0x2db792,_0xdc66dc,_0x117974;_0x5b2fa0=_[_0x8838('0x44')]({},_0x5b2fa0,_0x1ce6f4);return db[_0x8838('0x3c')][_0x8838('0x46')](_0x5b2fa0)['then'](function(_0x340c22){if(_0x340c22){_0x38ae40=_0x340c22;return _0x340c22[_0x8838('0x66')]();}return null;})['then'](function(_0x32e2d1){if(_0x32e2d1){if(!_0x32e2d1[_0x8838('0x32')]){throw new db['Sequelize'][(_0x8838('0x68'))](_0x8838('0x69'),0x193);}_0x1c444d=_0x32e2d1;return db[_0x8838('0x6a')][_0x8838('0x3d')]({'raw':!![]});}return null;})['then'](function(_0x335a93){if(_0x335a93){_0x2db792=_[_0x8838('0x6b')](_0x335a93,'id');var _0x829fbb;var _0x32f906=squel[_0x8838('0x8a')]();_0x32f906[_0x8838('0x6c')](_0x38ae40[_0x8838('0x6d')]);for(var _0x44ae02=0x0;_0x44ae02<_0x1c444d[_0x8838('0x32')];_0x44ae02+=0x1){_0x829fbb=_0x1c444d[_0x44ae02]['MetricId']?_0x2db792[_0x1c444d[_0x44ae02]['MetricId']][_0x8838('0x6f')]:_0x1c444d[_0x44ae02][_0x8838('0x63')];_0x829fbb=_0x1c444d[_0x44ae02][_0x8838('0x71')]?_['replace'](_0x37f564[_0x1c444d[_0x44ae02][_0x8838('0x71')]],'%s',_0x829fbb):_0x829fbb;_0x829fbb=_0x1c444d[_0x44ae02][_0x8838('0x72')]?_[_0x8838('0x70')](_0x61b9ae[_0x1c444d[_0x44ae02][_0x8838('0x72')]],'%s',_0x829fbb):_0x829fbb;if(_0x1c444d[_0x44ae02][_0x8838('0x73')]){_0x32f906['group'](_0x829fbb);}_0x1c444d[_0x44ae02][_0x8838('0x74')]&&_0x32f906['order'](_0x829fbb,_0x1c444d[_0x44ae02][_0x8838('0x74')]===_0x8838('0x75')?![]:!![]);_0x32f906[_0x8838('0x63')](_0x829fbb,_0x1c444d[_0x44ae02][_0x8838('0x8b')]||_0x829fbb);}if(_0x38ae40['joins']){_0x38ae40[_0x8838('0x77')]=JSON[_0x8838('0x76')](_0x38ae40['joins']);for(var _0x2aca35=0x0;_0x2aca35<_0x38ae40[_0x8838('0x77')][_0x8838('0x32')];_0x2aca35+=0x1){if(_0x38ae40[_0x8838('0x77')][_0x2aca35]['type']&&_[_0x8838('0x5d')](_0xe325b7,_0x38ae40['joins'][_0x2aca35][_0x8838('0x2a')])&&_0x38ae40[_0x8838('0x77')][_0x2aca35][_0x8838('0x78')]&&_0x38ae40[_0x8838('0x77')][_0x2aca35][_0x8838('0x7a')]&&_0x38ae40[_0x8838('0x77')][_0x2aca35][_0x8838('0x79')]){_0x32f906[_0x38ae40[_0x8838('0x77')][_0x2aca35][_0x8838('0x2a')]](_0x38ae40[_0x8838('0x77')][_0x2aca35][_0x8838('0x7a')],null,util[_0x8838('0x72')]('%s.%s\x20=\x20%s.%s',_0x38ae40['table'],_0x38ae40[_0x8838('0x77')][_0x2aca35][_0x8838('0x78')],_0x38ae40[_0x8838('0x77')][_0x2aca35]['foreignTable'],_0x38ae40[_0x8838('0x77')][_0x2aca35][_0x8838('0x79')]));}}}if(_0x38ae40[_0x8838('0x7c')]){_0x38ae40['conditions']=JSON[_0x8838('0x76')](_0x38ae40[_0x8838('0x7c')]);_0x32f906[_0x8838('0x37')](_0xf2b6fb(_0x38ae40[_0x8838('0x7c')][_0x8838('0x62')]));}_0x117974=_0x32f906['clone']();_0x32f906['limit'](_0x1ee988);_0x32f906[_0x8838('0x1b')](0x0);logger[_0x8838('0x8c')](_0x8838('0x7e'),_0x32f906[_0x8838('0x7f')]());return db[_0x8838('0x80')][_0x8838('0x2d')](_0x32f906[_0x8838('0x7f')](),{'type':db[_0x8838('0x80')][_0x8838('0x81')][_0x8838('0x82')]});}})[_0x8838('0x21')](function(_0x407b32){if(!_0x407b32[_0x8838('0x32')]){throw new db[(_0x8838('0x67'))][(_0x8838('0x68'))](_0x8838('0x8d'),0xcc);}if(_0x2ff3a2[_0x8838('0x8e')]===_0x8838('0x8f')){return null;}var _0x53ba4d=_[_0x8838('0x44')](_0x2ff3a2,{'name':_0x2ff3a2[_0x8838('0x90')]||_0x2ff3a2[_0x8838('0x25')]||_0x38ae40[_0x8838('0x25')],'basename':_0x3d516a,'savename':util[_0x8838('0x72')](_0x8838('0x91'),_0x2ff3a2[_0x8838('0x25')]||_0x38ae40[_0x8838('0x25')],require(_0x8838('0x92'))[_0x8838('0x93')](0x4),_0x2ff3a2[_0x8838('0x8e')]||_0x8838('0x94')),'reportId':_0x38ae40['id'],'reportType':_0x8838('0x95')});return db[_0x8838('0x96')][_0x8838('0x47')](_0x53ba4d,{'raw':!![]});})['then'](function(_0x4bfc90){if(_0x38ae40['table']==='cdr'){_0x117974[_0x8838('0x37')](_0x38ae40['table']+_0x8838('0x97'),_0x2ff3a2[_0x8838('0x98')],_0x2ff3a2[_0x8838('0x99')]);}else{_0x117974[_0x8838('0x37')](_0x38ae40[_0x8838('0x6d')]+_0x8838('0x9a'),_0x2ff3a2[_0x8838('0x98')],_0x2ff3a2[_0x8838('0x99')]);}if(_0x4bfc90){logger[_0x8838('0x9b')](_0x8838('0x9c'),_0x117974[_0x8838('0x7f')]());require(_0x8838('0x9d'))[_0x8838('0x9e')](path['join'](__dirname,'../../components/export/',_0x4bfc90[_0x8838('0x8e')]),[_0x4bfc90['id'],_0x117974[_0x8838('0x7f')](),path['join'](__dirname,_0x8838('0x9f'),_0x4bfc90[_0x8838('0xa0')]),_0x3d516a]);return _0x4bfc90;}else{var _0x5450be=squel[_0x8838('0x8a')]();_0x5450be[_0x8838('0x6c')]('('+_0x117974['toString']()+')',_0x8838('0xa1'));_0x5450be[_0x8838('0x63')](_0x8838('0xa2'),_0x8838('0x3a'));_0x117974[_0x8838('0x1c')](_0x2ff3a2[_0x8838('0x1c')]||_0x1ee988);_0x117974[_0x8838('0x1b')](_0x2ff3a2[_0x8838('0x1b')]||0x0);return dbH[_0x8838('0x80')]['query'](_0x5450be[_0x8838('0x7f')](),{'type':dbH[_0x8838('0x80')][_0x8838('0x81')][_0x8838('0x82')]})['then'](function(_0x102562){if(!_0x102562['length']){_0xdc66dc=0x0;}else{_0xdc66dc=_0x102562[0x0][_0x8838('0x3a')]||0x0;}return dbH[_0x8838('0x80')][_0x8838('0x2d')](_0x117974[_0x8838('0x7f')](),{'type':dbH[_0x8838('0x80')]['QueryTypes'][_0x8838('0x82')]});})[_0x8838('0x21')](function(_0x2a7463){return{'rows':_0x2a7463||[],'count':_0xdc66dc};});}});}exports['run']=function(_0x2fc46f,_0x4ad962){return runReport(_0x2fc46f['params'],_0x2fc46f['query'],_0x2fc46f['options'])[_0x8838('0x21')](respondWithResult(_0x4ad962,null))['catch'](handleError(_0x4ad962,null));};exports[_0x8838('0xa3')]=runReport;exports[_0x8838('0x2d')]=function(_0x455d9e,_0x23b6c7){var _0x3f5fc7=0xa;var _0x226afa=[_0x8838('0x51'),'left_join','right_join',_0x8838('0x83')];var _0x172756={'SUM':_0x8838('0x54'),'COUNT':_0x8838('0x55'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x8838('0x56'),'MIN':_0x8838('0x57'),'AVG':_0x8838('0x85'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x8838('0x86'),'GROUP_CONCAT DESC':_0x8838('0xa4')};var _0x29743d={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x8838('0x5b'),'ROUND':_0x8838('0x5c'),'UNIX_TIMESTAMP':_0x8838('0x87')};var _0x54eaab=function(_0x4cdc9e){return!_[_0x8838('0x5d')]([_0x8838('0x88'),'IS\x20NOT\x20NULL',_0x8838('0x5f'),_0x8838('0x89')],_0x4cdc9e);};var _0x4325f6=function(_0x43d632){if(!_0x43d632||!_0x43d632[_0x8838('0x60')][_0x8838('0x32')]){return'';}for(var _0x316008='(',_0x519d51=0x0;_0x519d51<_0x43d632[_0x8838('0x60')][_0x8838('0x32')];_0x519d51+=0x1){_0x519d51>0x0&&(_0x316008+='\x20'+_0x43d632[_0x8838('0x61')]+'\x20');_0x316008+=_0x43d632['rules'][_0x519d51]['group']?_0x4325f6(_0x43d632[_0x8838('0x60')][_0x519d51][_0x8838('0x62')]):_0x43d632[_0x8838('0x60')][_0x519d51]['field']+'\x20'+_0x43d632[_0x8838('0x60')][_0x519d51][_0x8838('0x64')]+(_0x54eaab(_0x43d632[_0x8838('0x60')][_0x519d51][_0x8838('0x64')])?'\x20'+_0x43d632[_0x8838('0x60')][_0x519d51][_0x8838('0x65')]:'');}return _0x316008+')';};var _0x4f5136={'where':{'id':_0x455d9e[_0x8838('0x41')]['id']}},_0x592f1f,_0x745c41,_0x3ebb4d,_0x764701,_0x5227ae;_0x4f5136=_[_0x8838('0x44')]({},_0x4f5136,_0x455d9e[_0x8838('0x45')]);return db[_0x8838('0x3c')][_0x8838('0x46')](_0x4f5136)[_0x8838('0x21')](function(_0x9d7684){if(_0x9d7684){_0x592f1f=_0x9d7684;return _0x9d7684['getFields']();}return null;})[_0x8838('0x21')](function(_0x5827ca){if(_0x5827ca){if(!_0x5827ca['length']){throw new db[(_0x8838('0x67'))][(_0x8838('0x68'))](_0x8838('0x69'),0x193);}_0x745c41=_0x5827ca;return db[_0x8838('0x6a')][_0x8838('0x3d')]({'raw':!![]});}return null;})[_0x8838('0x21')](function(_0x1b5b71){if(_0x1b5b71){_0x3ebb4d=_[_0x8838('0x6b')](_0x1b5b71,'id');var _0x1ae990;var _0x5cf10b=squel[_0x8838('0x8a')]();_0x5cf10b[_0x8838('0x6c')](_0x592f1f[_0x8838('0x6d')]);for(var _0x2bf42d=0x0;_0x2bf42d<_0x745c41[_0x8838('0x32')];_0x2bf42d+=0x1){_0x1ae990=_0x745c41[_0x2bf42d][_0x8838('0x6e')]?_0x3ebb4d[_0x745c41[_0x2bf42d][_0x8838('0x6e')]][_0x8838('0x6f')]:_0x745c41[_0x2bf42d][_0x8838('0x63')];_0x1ae990=_0x745c41[_0x2bf42d][_0x8838('0x71')]?_[_0x8838('0x70')](_0x172756[_0x745c41[_0x2bf42d][_0x8838('0x71')]],'%s',_0x1ae990):_0x1ae990;_0x1ae990=_0x745c41[_0x2bf42d][_0x8838('0x72')]?_['replace'](_0x29743d[_0x745c41[_0x2bf42d][_0x8838('0x72')]],'%s',_0x1ae990):_0x1ae990;if(_0x745c41[_0x2bf42d][_0x8838('0x73')]){_0x5cf10b[_0x8838('0x62')](_0x1ae990);}_0x745c41[_0x2bf42d][_0x8838('0x74')]&&_0x5cf10b[_0x8838('0x35')](_0x1ae990,_0x745c41[_0x2bf42d][_0x8838('0x74')]===_0x8838('0x75')?![]:!![]);_0x5cf10b[_0x8838('0x63')](_0x1ae990,_0x745c41[_0x2bf42d][_0x8838('0x8b')]||_0x1ae990);}if(_0x592f1f['joins']){_0x592f1f[_0x8838('0x77')]=JSON[_0x8838('0x76')](_0x592f1f[_0x8838('0x77')]);for(var _0x50ffb7=0x0;_0x50ffb7<_0x592f1f[_0x8838('0x77')]['length'];_0x50ffb7+=0x1){if(_0x592f1f[_0x8838('0x77')][_0x50ffb7]['type']&&_[_0x8838('0x5d')](_0x226afa,_0x592f1f[_0x8838('0x77')][_0x50ffb7][_0x8838('0x2a')])&&_0x592f1f[_0x8838('0x77')][_0x50ffb7][_0x8838('0x78')]&&_0x592f1f[_0x8838('0x77')][_0x50ffb7]['foreignTable']&&_0x592f1f[_0x8838('0x77')][_0x50ffb7]['foreignKey']){_0x5cf10b[_0x592f1f[_0x8838('0x77')][_0x50ffb7][_0x8838('0x2a')]](_0x592f1f['joins'][_0x50ffb7][_0x8838('0x7a')],null,util[_0x8838('0x72')](_0x8838('0x7b'),_0x592f1f[_0x8838('0x6d')],_0x592f1f[_0x8838('0x77')][_0x50ffb7][_0x8838('0x78')],_0x592f1f[_0x8838('0x77')][_0x50ffb7][_0x8838('0x7a')],_0x592f1f[_0x8838('0x77')][_0x50ffb7][_0x8838('0x79')]));}}}if(_0x592f1f['conditions']){_0x592f1f[_0x8838('0x7c')]=JSON[_0x8838('0x76')](_0x592f1f[_0x8838('0x7c')]);_0x5cf10b[_0x8838('0x37')](_0x4325f6(_0x592f1f[_0x8838('0x7c')]['group']));}_0x5227ae=_0x5cf10b[_0x8838('0x7d')]();_0x5cf10b[_0x8838('0x1c')](_0x3f5fc7);_0x5cf10b[_0x8838('0x1b')](0x0);logger[_0x8838('0x8c')](_0x8838('0x7e'),_0x5cf10b[_0x8838('0x7f')]());return db['sequelize'][_0x8838('0x2d')](_0x5cf10b[_0x8838('0x7f')](),{'type':db[_0x8838('0x80')]['QueryTypes']['SELECT']});}})[_0x8838('0x21')](function(){return{'sql':_0x5227ae[_0x8838('0x7f')]()};})['then'](respondWithResult(_0x23b6c7,null))[_0x8838('0x3f')](handleError(_0x23b6c7,null));};