126a4f275e5dea929f1caa25dce06ee0b6d78750
[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 _0x0c48=['metric','Limited\x20Query:','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','dbH','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','update','then','destroy','CustomReports','error','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','VIRTUAL','merge','options','count','includeAll','rows','catch','include','find','create','body','user','role','Reports','UserProfileSection','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','preview','left_join','right_join','SUM(%s)','COUNT(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','SEC_TO_TIME(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','operator','rules','group','field','condition','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','from','MetricId','replace','function','format','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','table','conditions','clone','debug','toString','sequelize','SELECT','join','cross_join','COUNT(DISTINCT\x20%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','HOUR(%s)','ROUND(%s)','getFields','groupBy','output','fullPath','%s-%s.%s','randomstring','csv','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../files/reports','savename','select','countTable','COUNT(*)','QueryTypes','runReport','MAX(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'];(function(_0x423247,_0x17a2a2){var _0x56d8df=function(_0x303f99){while(--_0x303f99){_0x423247['push'](_0x423247['shift']());}};_0x56d8df(++_0x17a2a2);}(_0x0c48,0x1e8));var _0x80c4=function(_0x4ceebe,_0x489560){_0x4ceebe=_0x4ceebe-0x0;var _0x3d69ff=_0x0c48[_0x4ceebe];return _0x3d69ff;};'use strict';var pdf=require(_0x80c4('0x0'));var emlformat=require(_0x80c4('0x1'));var rimraf=require(_0x80c4('0x2'));var zipdir=require(_0x80c4('0x3'));var jsonpatch=require(_0x80c4('0x4'));var rp=require(_0x80c4('0x5'));var moment=require('moment');var BPromise=require(_0x80c4('0x6'));var Mustache=require(_0x80c4('0x7'));var util=require(_0x80c4('0x8'));var path=require('path');var sox=require(_0x80c4('0x9'));var csv=require('to-csv');var ejs=require(_0x80c4('0xa'));var fs=require('fs');var _=require(_0x80c4('0xb'));var squel=require(_0x80c4('0xc'));var crypto=require('crypto');var jsforce=require(_0x80c4('0xd'));var deskjs=require(_0x80c4('0xe'));var toCsv=require(_0x80c4('0xf'));var querystring=require(_0x80c4('0x10'));var Papa=require(_0x80c4('0x11'));var Redis=require(_0x80c4('0x12'));var authService=require(_0x80c4('0x13'));var qs=require(_0x80c4('0x14'));var as=require(_0x80c4('0x15'));var hardwareService=require(_0x80c4('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x80c4('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x80c4('0x18'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0x80c4('0x19')];function respondWithStatusCode(_0x6886e8,_0x4f3468){_0x4f3468=_0x4f3468||0xcc;return function(_0x361338){if(_0x361338){return _0x6886e8[_0x80c4('0x1a')](_0x4f3468);}return _0x6886e8[_0x80c4('0x1b')](_0x4f3468)[_0x80c4('0x1c')]();};}function respondWithResult(_0x37ab6f,_0x21486d){_0x21486d=_0x21486d||0xc8;return function(_0x34f235){if(_0x34f235){return _0x37ab6f['status'](_0x21486d)[_0x80c4('0x1d')](_0x34f235);}};}function respondWithFilteredResult(_0x1afcd4,_0x1975ce){return function(_0x3d94a3){if(_0x3d94a3){var _0xc0eeb0=_0x3d94a3['count'],_0x517efd=_0x1975ce[_0x80c4('0x1e')],_0x481f84=_0x1975ce[_0x80c4('0x1e')]+_0x1975ce[_0x80c4('0x1f')],_0x527881;if(_0x481f84>=_0xc0eeb0){_0x481f84=_0xc0eeb0;_0x527881=0xc8;}else{_0x527881=0xce;}_0x1afcd4[_0x80c4('0x1b')](_0x527881);return _0x1afcd4[_0x80c4('0x20')](_0x80c4('0x21'),_0x517efd+'-'+_0x481f84+'/'+_0xc0eeb0)[_0x80c4('0x1d')](_0x3d94a3);}return null;};}function patchUpdates(_0x3bff4d){return function(_0x37fc32){try{jsonpatch[_0x80c4('0x22')](_0x37fc32,_0x3bff4d,!![]);}catch(_0xc7d4c6){return BPromise[_0x80c4('0x23')](_0xc7d4c6);}return _0x37fc32['save']();};}function saveUpdates(_0x3bea05,_0x227067){return function(_0x309ba4){if(_0x309ba4){return _0x309ba4[_0x80c4('0x24')](_0x3bea05)[_0x80c4('0x25')](function(_0x3dc598){return _0x3dc598;});}return null;};}function removeEntity(_0x1ea64a,_0x101e44){return function(_0x28b661){if(_0x28b661){return _0x28b661[_0x80c4('0x26')]()['then'](function(){var _0x42024c=_0x28b661['get']({'plain':!![]});var _0x46a045=_0x80c4('0x27');return db['UserProfileResource'][_0x80c4('0x26')]({'where':{'type':_0x46a045,'resourceId':_0x42024c['id']}})[_0x80c4('0x25')](function(){return _0x28b661;});})['then'](function(){_0x1ea64a[_0x80c4('0x1b')](0xcc)[_0x80c4('0x1c')]();});}};}function handleEntityNotFound(_0x1c847a,_0x326098){return function(_0xe898d5){if(!_0xe898d5){_0x1c847a[_0x80c4('0x1a')](0x194);}return _0xe898d5;};}function handleError(_0x552032,_0xc7297c){_0xc7297c=_0xc7297c||0x1f4;return function(_0x4e9661){logger[_0x80c4('0x28')](_0x4e9661['stack']);if(_0x4e9661[_0x80c4('0x29')]){delete _0x4e9661[_0x80c4('0x29')];}_0x552032[_0x80c4('0x1b')](_0xc7297c)[_0x80c4('0x2a')](_0x4e9661);};}exports[_0x80c4('0x2b')]=function(_0x12d7da,_0x4ad608){var _0x596090={},_0x4d90ef={},_0x3a6654={'count':0x0,'rows':[]};var _0x122647=_[_0x80c4('0x2c')](db[_0x80c4('0x2d')][_0x80c4('0x2e')],function(_0x2ba9e2){return{'name':_0x2ba9e2[_0x80c4('0x2f')],'type':_0x2ba9e2[_0x80c4('0x30')]['key']};});_0x4d90ef[_0x80c4('0x31')]=_[_0x80c4('0x2c')](_0x122647,_0x80c4('0x29'));_0x4d90ef[_0x80c4('0x32')]=_[_0x80c4('0x33')](_0x12d7da['query']);_0x4d90ef[_0x80c4('0x34')]=_[_0x80c4('0x35')](_0x4d90ef['model'],_0x4d90ef[_0x80c4('0x32')]);_0x596090[_0x80c4('0x36')]=_['intersection'](_0x4d90ef[_0x80c4('0x31')],qs[_0x80c4('0x37')](_0x12d7da[_0x80c4('0x32')][_0x80c4('0x37')]));_0x596090[_0x80c4('0x36')]=_0x596090['attributes'][_0x80c4('0x38')]?_0x596090[_0x80c4('0x36')]:_0x4d90ef[_0x80c4('0x31')];if(!_0x12d7da[_0x80c4('0x32')][_0x80c4('0x39')](_0x80c4('0x3a'))){_0x596090['limit']=qs[_0x80c4('0x1f')](_0x12d7da[_0x80c4('0x32')][_0x80c4('0x1f')]);_0x596090[_0x80c4('0x1e')]=qs[_0x80c4('0x1e')](_0x12d7da[_0x80c4('0x32')][_0x80c4('0x1e')]);}_0x596090[_0x80c4('0x3b')]=qs[_0x80c4('0x3c')](_0x12d7da[_0x80c4('0x32')][_0x80c4('0x3c')]);_0x596090['where']=qs[_0x80c4('0x34')](_['pick'](_0x12d7da['query'],_0x4d90ef[_0x80c4('0x34')]),_0x122647);if(_0x12d7da[_0x80c4('0x32')][_0x80c4('0x3d')]){_0x596090[_0x80c4('0x3e')]=_['merge'](_0x596090[_0x80c4('0x3e')],{'$or':_[_0x80c4('0x2c')](_0x122647,function(_0x8f8c59){if(_0x8f8c59[_0x80c4('0x30')]!==_0x80c4('0x3f')){var _0x15da95={};_0x15da95[_0x8f8c59[_0x80c4('0x29')]]={'$like':'%'+_0x12d7da[_0x80c4('0x32')][_0x80c4('0x3d')]+'%'};return _0x15da95;}})});}_0x596090=_[_0x80c4('0x40')]({},_0x596090,_0x12d7da[_0x80c4('0x41')]);var _0x47cb1a={'where':_0x596090[_0x80c4('0x3e')]};return db[_0x80c4('0x2d')][_0x80c4('0x42')](_0x47cb1a)['then'](function(_0x397c81){_0x3a6654['count']=_0x397c81;if(_0x12d7da[_0x80c4('0x32')][_0x80c4('0x43')]){_0x596090['include']=[{'all':!![]}];}return db[_0x80c4('0x2d')]['findAll'](_0x596090);})[_0x80c4('0x25')](function(_0x130f64){_0x3a6654[_0x80c4('0x44')]=_0x130f64;return _0x3a6654;})[_0x80c4('0x25')](respondWithFilteredResult(_0x4ad608,_0x596090))[_0x80c4('0x45')](handleError(_0x4ad608,null));};exports['show']=function(_0x3ec682,_0x7589bc){var _0x73d5b6={'raw':![],'where':{'id':_0x3ec682['params']['id']}},_0x21eec2={};_0x21eec2[_0x80c4('0x31')]=_[_0x80c4('0x33')](db[_0x80c4('0x2d')]['rawAttributes']);_0x21eec2[_0x80c4('0x32')]=_[_0x80c4('0x33')](_0x3ec682[_0x80c4('0x32')]);_0x21eec2['filters']=_['intersection'](_0x21eec2[_0x80c4('0x31')],_0x21eec2['query']);_0x73d5b6[_0x80c4('0x36')]=_[_0x80c4('0x35')](_0x21eec2[_0x80c4('0x31')],qs[_0x80c4('0x37')](_0x3ec682[_0x80c4('0x32')][_0x80c4('0x37')]));_0x73d5b6['attributes']=_0x73d5b6[_0x80c4('0x36')][_0x80c4('0x38')]?_0x73d5b6[_0x80c4('0x36')]:_0x21eec2['model'];if(_0x3ec682[_0x80c4('0x32')][_0x80c4('0x43')]){_0x73d5b6[_0x80c4('0x46')]=[{'all':!![]}];}_0x73d5b6=_[_0x80c4('0x40')]({},_0x73d5b6,_0x3ec682[_0x80c4('0x41')]);return db[_0x80c4('0x2d')][_0x80c4('0x47')](_0x73d5b6)[_0x80c4('0x25')](handleEntityNotFound(_0x7589bc,null))[_0x80c4('0x25')](respondWithResult(_0x7589bc,null))[_0x80c4('0x45')](handleError(_0x7589bc,null));};exports[_0x80c4('0x48')]=function(_0x2c7a97,_0x4c8213){return db[_0x80c4('0x2d')]['create'](_0x2c7a97[_0x80c4('0x49')],{})['then'](function(_0x1c3443){var _0x546840=_0x2c7a97[_0x80c4('0x4a')]['get']({'plain':!![]});if(!_0x546840)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x546840[_0x80c4('0x4b')]==='user'){var _0x436cf8=_0x1c3443['get']({'plain':!![]});var _0x2ef579=_0x80c4('0x4c');return db[_0x80c4('0x4d')][_0x80c4('0x47')]({'where':{'name':_0x2ef579,'userProfileId':_0x546840['userProfileId']},'raw':!![]})['then'](function(_0x49922f){if(_0x49922f&&_0x49922f['autoAssociation']===0x0){return db[_0x80c4('0x4e')][_0x80c4('0x48')]({'name':_0x436cf8['name'],'resourceId':_0x436cf8['id'],'type':'CustomReports','sectionId':_0x49922f['id']},{})[_0x80c4('0x25')](function(){return _0x1c3443;});}else{return _0x1c3443;}})['catch'](function(_0x24a219){logger[_0x80c4('0x28')](_0x80c4('0x4f'),_0x24a219);throw _0x24a219;});}return _0x1c3443;})['then'](respondWithResult(_0x4c8213,0xc9))[_0x80c4('0x45')](handleError(_0x4c8213,null));};exports['update']=function(_0x26b6c2,_0x5a8fde){if(_0x26b6c2['body']['id']){delete _0x26b6c2[_0x80c4('0x49')]['id'];}return db[_0x80c4('0x2d')][_0x80c4('0x47')]({'where':{'id':_0x26b6c2[_0x80c4('0x50')]['id']}})[_0x80c4('0x25')](handleEntityNotFound(_0x5a8fde,null))[_0x80c4('0x25')](saveUpdates(_0x26b6c2[_0x80c4('0x49')],null))[_0x80c4('0x25')](respondWithResult(_0x5a8fde,null))[_0x80c4('0x45')](handleError(_0x5a8fde,null));};exports[_0x80c4('0x26')]=function(_0x429268,_0x4ec467){return db['AnalyticCustomReport']['find']({'where':{'id':_0x429268[_0x80c4('0x50')]['id']}})[_0x80c4('0x25')](handleEntityNotFound(_0x4ec467,null))[_0x80c4('0x25')](removeEntity(_0x4ec467,null))[_0x80c4('0x45')](handleError(_0x4ec467,null));};exports[_0x80c4('0x51')]=function(_0x5454ee,_0x22807e){var _0x15b9fd=0xa;var _0xf6ff30=['join',_0x80c4('0x52'),_0x80c4('0x53'),'cross_join'];var _0x351012={'SUM':_0x80c4('0x54'),'COUNT':_0x80c4('0x55'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x80c4('0x56'),'AVG':_0x80c4('0x57'),'GROUP_CONCAT':_0x80c4('0x58'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x149197={'SEC_TO_TIME':_0x80c4('0x59'),'DATE':_0x80c4('0x5a'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x80c4('0x5b')};var _0xd66c33=function(_0x1bc952){return!_[_0x80c4('0x5c')]([_0x80c4('0x5d'),_0x80c4('0x5e'),_0x80c4('0x5f'),_0x80c4('0x60')],_0x1bc952);};var _0x4d3436=function(_0x42ded8){if(!_0x42ded8||!_0x42ded8['rules'][_0x80c4('0x38')]){return'';}for(var _0x3dd761='(',_0x99e7ba=0x0;_0x99e7ba<_0x42ded8['rules'][_0x80c4('0x38')];_0x99e7ba+=0x1){_0x99e7ba>0x0&&(_0x3dd761+='\x20'+_0x42ded8[_0x80c4('0x61')]+'\x20');_0x3dd761+=_0x42ded8[_0x80c4('0x62')][_0x99e7ba][_0x80c4('0x63')]?_0x4d3436(_0x42ded8['rules'][_0x99e7ba][_0x80c4('0x63')]):_0x42ded8['rules'][_0x99e7ba][_0x80c4('0x64')]+'\x20'+_0x42ded8['rules'][_0x99e7ba][_0x80c4('0x65')]+(_0xd66c33(_0x42ded8['rules'][_0x99e7ba]['condition'])?'\x20'+_0x42ded8[_0x80c4('0x62')][_0x99e7ba][_0x80c4('0x66')]:'');}return _0x3dd761+')';};var _0x59235f={'where':{'id':_0x5454ee['params']['id']}},_0x154f92,_0x78aeec,_0x2b1bf0,_0x5aa454,_0xb82701;_0x59235f=_[_0x80c4('0x40')]({},_0x59235f,_0x5454ee[_0x80c4('0x41')]);return db['AnalyticCustomReport']['find'](_0x59235f)['then'](function(_0xaf39bf){if(_0xaf39bf){_0x154f92=_0xaf39bf;return _0xaf39bf['getFields']();}return null;})[_0x80c4('0x25')](function(_0x7e9c0c){if(_0x7e9c0c){if(!_0x7e9c0c['length']){throw new db[(_0x80c4('0x67'))][(_0x80c4('0x68'))](_0x80c4('0x69'),0x193);}_0x78aeec=_0x7e9c0c;return db[_0x80c4('0x6a')][_0x80c4('0x6b')]({'raw':!![]});}return null;})[_0x80c4('0x25')](function(_0x5d5238){if(_0x5d5238){_0x2b1bf0=_[_0x80c4('0x6c')](_0x5d5238,'id');var _0x371d84;var _0x1be081=squel['select']();_0x1be081[_0x80c4('0x6d')](_0x154f92['table']);for(var _0x2bb57a=0x0;_0x2bb57a<_0x78aeec['length'];_0x2bb57a+=0x1){_0x371d84=_0x78aeec[_0x2bb57a][_0x80c4('0x6e')]?_0x2b1bf0[_0x78aeec[_0x2bb57a][_0x80c4('0x6e')]]['metric']:_0x78aeec[_0x2bb57a][_0x80c4('0x64')];_0x371d84=_0x78aeec[_0x2bb57a]['function']?_[_0x80c4('0x6f')](_0x351012[_0x78aeec[_0x2bb57a][_0x80c4('0x70')]],'%s',_0x371d84):_0x371d84;_0x371d84=_0x78aeec[_0x2bb57a][_0x80c4('0x71')]?_[_0x80c4('0x6f')](_0x149197[_0x78aeec[_0x2bb57a][_0x80c4('0x71')]],'%s',_0x371d84):_0x371d84;if(_0x78aeec[_0x2bb57a]['groupBy']){_0x1be081[_0x80c4('0x63')](_0x371d84);}_0x78aeec[_0x2bb57a][_0x80c4('0x72')]&&_0x1be081['order'](_0x371d84,_0x78aeec[_0x2bb57a][_0x80c4('0x72')]===_0x80c4('0x73')?![]:!![]);_0x1be081['field'](_0x371d84,_0x78aeec[_0x2bb57a][_0x80c4('0x74')]||_0x371d84);}if(_0x154f92[_0x80c4('0x75')]){_0x154f92[_0x80c4('0x75')]=JSON[_0x80c4('0x76')](_0x154f92[_0x80c4('0x75')]);for(var _0x3b9c0d=0x0;_0x3b9c0d<_0x154f92[_0x80c4('0x75')][_0x80c4('0x38')];_0x3b9c0d+=0x1){if(_0x154f92[_0x80c4('0x75')][_0x3b9c0d][_0x80c4('0x30')]&&_[_0x80c4('0x5c')](_0xf6ff30,_0x154f92['joins'][_0x3b9c0d][_0x80c4('0x30')])&&_0x154f92[_0x80c4('0x75')][_0x3b9c0d][_0x80c4('0x77')]&&_0x154f92[_0x80c4('0x75')][_0x3b9c0d][_0x80c4('0x78')]&&_0x154f92[_0x80c4('0x75')][_0x3b9c0d][_0x80c4('0x79')]){_0x1be081[_0x154f92[_0x80c4('0x75')][_0x3b9c0d]['type']](_0x154f92[_0x80c4('0x75')][_0x3b9c0d][_0x80c4('0x78')],null,util[_0x80c4('0x71')](_0x80c4('0x7a'),_0x154f92[_0x80c4('0x7b')],_0x154f92[_0x80c4('0x75')][_0x3b9c0d][_0x80c4('0x77')],_0x154f92['joins'][_0x3b9c0d][_0x80c4('0x78')],_0x154f92[_0x80c4('0x75')][_0x3b9c0d][_0x80c4('0x79')]));}}}if(_0x154f92[_0x80c4('0x7c')]){_0x154f92[_0x80c4('0x7c')]=JSON[_0x80c4('0x76')](_0x154f92[_0x80c4('0x7c')]);_0x1be081[_0x80c4('0x3e')](_0x4d3436(_0x154f92['conditions']['group']));}_0xb82701=_0x1be081[_0x80c4('0x7d')]();_0x1be081[_0x80c4('0x1f')](_0x15b9fd);_0x1be081['offset'](0x0);logger[_0x80c4('0x7e')]('Limited\x20Query:',_0x1be081[_0x80c4('0x7f')]());return dbH[_0x80c4('0x80')][_0x80c4('0x32')](_0x1be081['toString'](),{'type':dbH['sequelize']['QueryTypes'][_0x80c4('0x81')]});}})['then'](respondWithResult(_0x22807e,null))[_0x80c4('0x45')](handleError(_0x22807e,null));};function runReport(_0x4f45d6,_0x170fea,_0x1ec468){var _0x1ecc89=_0x170fea[_0x80c4('0x29')];var _0x1e815a=0xa;var _0x18e03b=[_0x80c4('0x82'),_0x80c4('0x52'),'right_join',_0x80c4('0x83')];var _0x119ae2={'SUM':'SUM(%s)','COUNT':_0x80c4('0x55'),'COUNT DISTINCT':_0x80c4('0x84'),'MAX':'MAX(%s)','MIN':_0x80c4('0x56'),'AVG':_0x80c4('0x57'),'GROUP_CONCAT':_0x80c4('0x58'),'GROUP_CONCAT ASC':_0x80c4('0x85'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x4ce5df={'SEC_TO_TIME':_0x80c4('0x59'),'DATE':_0x80c4('0x5a'),'HOUR':_0x80c4('0x86'),'ROUND':_0x80c4('0x87'),'UNIX_TIMESTAMP':_0x80c4('0x5b')};var _0x39914a=function(_0x3edf76){return!_[_0x80c4('0x5c')]([_0x80c4('0x5d'),_0x80c4('0x5e'),_0x80c4('0x5f'),_0x80c4('0x60')],_0x3edf76);};var _0xebc815=function(_0x331596){if(!_0x331596||!_0x331596[_0x80c4('0x62')][_0x80c4('0x38')]){return'';}for(var _0x5bed93='(',_0x5e490c=0x0;_0x5e490c<_0x331596['rules'][_0x80c4('0x38')];_0x5e490c+=0x1){_0x5e490c>0x0&&(_0x5bed93+='\x20'+_0x331596[_0x80c4('0x61')]+'\x20');_0x5bed93+=_0x331596[_0x80c4('0x62')][_0x5e490c][_0x80c4('0x63')]?_0xebc815(_0x331596[_0x80c4('0x62')][_0x5e490c][_0x80c4('0x63')]):_0x331596['rules'][_0x5e490c]['field']+'\x20'+_0x331596['rules'][_0x5e490c][_0x80c4('0x65')]+(_0x39914a(_0x331596[_0x80c4('0x62')][_0x5e490c][_0x80c4('0x65')])?'\x20'+_0x331596[_0x80c4('0x62')][_0x5e490c][_0x80c4('0x66')]:'');}return _0x5bed93+')';};var _0x20fdc0={'where':{'id':_0x4f45d6['id']}},_0x12e776,_0x8f6046,_0x540235,_0x43eaf4,_0x1a5b61;_0x20fdc0=_[_0x80c4('0x40')]({},_0x20fdc0,_0x1ec468);return db['AnalyticCustomReport'][_0x80c4('0x47')](_0x20fdc0)[_0x80c4('0x25')](function(_0x436948){if(_0x436948){_0x12e776=_0x436948;return _0x436948[_0x80c4('0x88')]();}return null;})[_0x80c4('0x25')](function(_0x35de9b){if(_0x35de9b){if(!_0x35de9b['length']){throw new db[(_0x80c4('0x67'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x8f6046=_0x35de9b;return db[_0x80c4('0x6a')][_0x80c4('0x6b')]({'raw':!![]});}return null;})[_0x80c4('0x25')](function(_0xab930e){if(_0xab930e){_0x540235=_[_0x80c4('0x6c')](_0xab930e,'id');var _0x4665b0;var _0x44a7bd=squel['select']();_0x44a7bd[_0x80c4('0x6d')](_0x12e776[_0x80c4('0x7b')]);for(var _0x47bbbb=0x0;_0x47bbbb<_0x8f6046[_0x80c4('0x38')];_0x47bbbb+=0x1){_0x4665b0=_0x8f6046[_0x47bbbb][_0x80c4('0x6e')]?_0x540235[_0x8f6046[_0x47bbbb][_0x80c4('0x6e')]]['metric']:_0x8f6046[_0x47bbbb]['field'];_0x4665b0=_0x8f6046[_0x47bbbb]['function']?_[_0x80c4('0x6f')](_0x119ae2[_0x8f6046[_0x47bbbb][_0x80c4('0x70')]],'%s',_0x4665b0):_0x4665b0;_0x4665b0=_0x8f6046[_0x47bbbb]['format']?_[_0x80c4('0x6f')](_0x4ce5df[_0x8f6046[_0x47bbbb]['format']],'%s',_0x4665b0):_0x4665b0;if(_0x8f6046[_0x47bbbb][_0x80c4('0x89')]){_0x44a7bd['group'](_0x4665b0);}_0x8f6046[_0x47bbbb][_0x80c4('0x72')]&&_0x44a7bd['order'](_0x4665b0,_0x8f6046[_0x47bbbb][_0x80c4('0x72')]==='DESC'?![]:!![]);_0x44a7bd['field'](_0x4665b0,_0x8f6046[_0x47bbbb][_0x80c4('0x74')]||_0x4665b0);}if(_0x12e776[_0x80c4('0x75')]){_0x12e776[_0x80c4('0x75')]=JSON[_0x80c4('0x76')](_0x12e776[_0x80c4('0x75')]);for(var _0x266b93=0x0;_0x266b93<_0x12e776[_0x80c4('0x75')][_0x80c4('0x38')];_0x266b93+=0x1){if(_0x12e776[_0x80c4('0x75')][_0x266b93][_0x80c4('0x30')]&&_[_0x80c4('0x5c')](_0x18e03b,_0x12e776[_0x80c4('0x75')][_0x266b93][_0x80c4('0x30')])&&_0x12e776['joins'][_0x266b93][_0x80c4('0x77')]&&_0x12e776['joins'][_0x266b93][_0x80c4('0x78')]&&_0x12e776[_0x80c4('0x75')][_0x266b93][_0x80c4('0x79')]){_0x44a7bd[_0x12e776[_0x80c4('0x75')][_0x266b93][_0x80c4('0x30')]](_0x12e776[_0x80c4('0x75')][_0x266b93][_0x80c4('0x78')],null,util[_0x80c4('0x71')]('%s.%s\x20=\x20%s.%s',_0x12e776[_0x80c4('0x7b')],_0x12e776[_0x80c4('0x75')][_0x266b93][_0x80c4('0x77')],_0x12e776['joins'][_0x266b93][_0x80c4('0x78')],_0x12e776[_0x80c4('0x75')][_0x266b93][_0x80c4('0x79')]));}}}if(_0x12e776[_0x80c4('0x7c')]){_0x12e776[_0x80c4('0x7c')]=JSON[_0x80c4('0x76')](_0x12e776['conditions']);_0x44a7bd[_0x80c4('0x3e')](_0xebc815(_0x12e776[_0x80c4('0x7c')]['group']));}_0x1a5b61=_0x44a7bd[_0x80c4('0x7d')]();_0x44a7bd['limit'](_0x1e815a);_0x44a7bd[_0x80c4('0x1e')](0x0);return;}})[_0x80c4('0x25')](function(){if(_0x170fea[_0x80c4('0x8a')]==='web'){return null;}var _0x43392=_[_0x80c4('0x40')](_0x170fea,{'name':_0x170fea[_0x80c4('0x8b')]||_0x170fea['name']||_0x12e776[_0x80c4('0x29')],'basename':_0x1ecc89,'savename':util[_0x80c4('0x71')](_0x80c4('0x8c'),_0x170fea[_0x80c4('0x29')]||_0x12e776[_0x80c4('0x29')],require(_0x80c4('0x8d'))['generate'](0x4),_0x170fea[_0x80c4('0x8a')]||_0x80c4('0x8e')),'reportId':_0x12e776['id'],'reportType':'custom'});return db['AnalyticExtractedReport'][_0x80c4('0x48')](_0x43392,{'raw':!![]});})[_0x80c4('0x25')](function(_0x4b75d8){if(_0x12e776[_0x80c4('0x7b')]==='cdr'){_0x1a5b61[_0x80c4('0x3e')](_0x12e776[_0x80c4('0x7b')]+_0x80c4('0x8f'),_0x170fea[_0x80c4('0x90')],_0x170fea[_0x80c4('0x91')]);}else{_0x1a5b61[_0x80c4('0x3e')](_0x12e776['table']+_0x80c4('0x92'),_0x170fea[_0x80c4('0x90')],_0x170fea[_0x80c4('0x91')]);}if(_0x4b75d8){logger[_0x80c4('0x93')](_0x80c4('0x94'),_0x1a5b61[_0x80c4('0x7f')]());require(_0x80c4('0x95'))[_0x80c4('0x96')](path['join'](__dirname,'../../components/export/',_0x4b75d8[_0x80c4('0x8a')]),[_0x4b75d8['id'],_0x1a5b61[_0x80c4('0x7f')](),path['join'](__dirname,_0x80c4('0x97'),_0x4b75d8[_0x80c4('0x98')]),_0x1ecc89]);return _0x4b75d8;}else{var _0xaf238a=squel[_0x80c4('0x99')]();_0xaf238a[_0x80c4('0x6d')]('('+_0x1a5b61[_0x80c4('0x7f')]()+')',_0x80c4('0x9a'));_0xaf238a[_0x80c4('0x64')](_0x80c4('0x9b'),_0x80c4('0x42'));_0x1a5b61[_0x80c4('0x1f')](_0x170fea['limit']||_0x1e815a);_0x1a5b61[_0x80c4('0x1e')](_0x170fea[_0x80c4('0x1e')]||0x0);return dbH[_0x80c4('0x80')][_0x80c4('0x32')](_0xaf238a[_0x80c4('0x7f')](),{'type':dbH[_0x80c4('0x80')][_0x80c4('0x9c')][_0x80c4('0x81')]})[_0x80c4('0x25')](function(_0x463d09){if(!_0x463d09[_0x80c4('0x38')]){_0x43eaf4=0x0;}else{_0x43eaf4=_0x463d09[0x0][_0x80c4('0x42')]||0x0;}return dbH[_0x80c4('0x80')][_0x80c4('0x32')](_0x1a5b61['toString'](),{'type':dbH[_0x80c4('0x80')][_0x80c4('0x9c')]['SELECT']});})[_0x80c4('0x25')](function(_0x32dcb9){return{'rows':_0x32dcb9||[],'count':_0x43eaf4};});}});}exports['run']=function(_0x213a9f,_0x4de684){return runReport(_0x213a9f[_0x80c4('0x50')],_0x213a9f[_0x80c4('0x32')],_0x213a9f[_0x80c4('0x41')])['then'](respondWithResult(_0x4de684,null))['catch'](handleError(_0x4de684,null));};exports[_0x80c4('0x9d')]=runReport;exports[_0x80c4('0x32')]=function(_0x3976ee,_0x2d4a17){var _0x5e8b5e=0xa;var _0x139389=[_0x80c4('0x82'),_0x80c4('0x52'),_0x80c4('0x53'),_0x80c4('0x83')];var _0x13f173={'SUM':_0x80c4('0x54'),'COUNT':_0x80c4('0x55'),'COUNT DISTINCT':_0x80c4('0x84'),'MAX':_0x80c4('0x9e'),'MIN':_0x80c4('0x56'),'AVG':_0x80c4('0x57'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x80c4('0x85'),'GROUP_CONCAT DESC':_0x80c4('0x9f')};var _0x25e1c3={'SEC_TO_TIME':_0x80c4('0x59'),'DATE':'DATE(%s)','HOUR':_0x80c4('0x86'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x80c4('0x5b')};var _0x4d16dd=function(_0x225199){return!_['includes']([_0x80c4('0x5d'),'IS\x20NOT\x20NULL',_0x80c4('0x5f'),_0x80c4('0x60')],_0x225199);};var _0x1f96bd=function(_0x188202){if(!_0x188202||!_0x188202[_0x80c4('0x62')][_0x80c4('0x38')]){return'';}for(var _0x3061de='(',_0x3540ff=0x0;_0x3540ff<_0x188202[_0x80c4('0x62')]['length'];_0x3540ff+=0x1){_0x3540ff>0x0&&(_0x3061de+='\x20'+_0x188202[_0x80c4('0x61')]+'\x20');_0x3061de+=_0x188202[_0x80c4('0x62')][_0x3540ff][_0x80c4('0x63')]?_0x1f96bd(_0x188202[_0x80c4('0x62')][_0x3540ff][_0x80c4('0x63')]):_0x188202[_0x80c4('0x62')][_0x3540ff][_0x80c4('0x64')]+'\x20'+_0x188202[_0x80c4('0x62')][_0x3540ff]['condition']+(_0x4d16dd(_0x188202[_0x80c4('0x62')][_0x3540ff][_0x80c4('0x65')])?'\x20'+_0x188202[_0x80c4('0x62')][_0x3540ff]['value']:'');}return _0x3061de+')';};var _0x55f78d={'where':{'id':_0x3976ee['params']['id']}},_0x8eb927,_0xb697f,_0x3e9370,_0x2646dd,_0x4b59e9;_0x55f78d=_[_0x80c4('0x40')]({},_0x55f78d,_0x3976ee[_0x80c4('0x41')]);return db[_0x80c4('0x2d')][_0x80c4('0x47')](_0x55f78d)[_0x80c4('0x25')](function(_0x4983c6){if(_0x4983c6){_0x8eb927=_0x4983c6;return _0x4983c6[_0x80c4('0x88')]();}return null;})['then'](function(_0x4d93ae){if(_0x4d93ae){if(!_0x4d93ae[_0x80c4('0x38')]){throw new db[(_0x80c4('0x67'))]['ValidationErrorItem'](_0x80c4('0x69'),0x193);}_0xb697f=_0x4d93ae;return db[_0x80c4('0x6a')][_0x80c4('0x6b')]({'raw':!![]});}return null;})[_0x80c4('0x25')](function(_0x2aa3cf){if(_0x2aa3cf){_0x3e9370=_[_0x80c4('0x6c')](_0x2aa3cf,'id');var _0x4542db;var _0x556a35=squel[_0x80c4('0x99')]();_0x556a35[_0x80c4('0x6d')](_0x8eb927[_0x80c4('0x7b')]);for(var _0x2e75fc=0x0;_0x2e75fc<_0xb697f[_0x80c4('0x38')];_0x2e75fc+=0x1){_0x4542db=_0xb697f[_0x2e75fc][_0x80c4('0x6e')]?_0x3e9370[_0xb697f[_0x2e75fc][_0x80c4('0x6e')]][_0x80c4('0xa0')]:_0xb697f[_0x2e75fc][_0x80c4('0x64')];_0x4542db=_0xb697f[_0x2e75fc][_0x80c4('0x70')]?_['replace'](_0x13f173[_0xb697f[_0x2e75fc][_0x80c4('0x70')]],'%s',_0x4542db):_0x4542db;_0x4542db=_0xb697f[_0x2e75fc][_0x80c4('0x71')]?_['replace'](_0x25e1c3[_0xb697f[_0x2e75fc][_0x80c4('0x71')]],'%s',_0x4542db):_0x4542db;if(_0xb697f[_0x2e75fc][_0x80c4('0x89')]){_0x556a35[_0x80c4('0x63')](_0x4542db);}_0xb697f[_0x2e75fc][_0x80c4('0x72')]&&_0x556a35['order'](_0x4542db,_0xb697f[_0x2e75fc][_0x80c4('0x72')]===_0x80c4('0x73')?![]:!![]);_0x556a35[_0x80c4('0x64')](_0x4542db,_0xb697f[_0x2e75fc]['alias']||_0x4542db);}if(_0x8eb927['joins']){_0x8eb927[_0x80c4('0x75')]=JSON[_0x80c4('0x76')](_0x8eb927[_0x80c4('0x75')]);for(var _0x1d7a2d=0x0;_0x1d7a2d<_0x8eb927['joins'][_0x80c4('0x38')];_0x1d7a2d+=0x1){if(_0x8eb927[_0x80c4('0x75')][_0x1d7a2d][_0x80c4('0x30')]&&_[_0x80c4('0x5c')](_0x139389,_0x8eb927[_0x80c4('0x75')][_0x1d7a2d][_0x80c4('0x30')])&&_0x8eb927[_0x80c4('0x75')][_0x1d7a2d]['parentKey']&&_0x8eb927['joins'][_0x1d7a2d][_0x80c4('0x78')]&&_0x8eb927[_0x80c4('0x75')][_0x1d7a2d][_0x80c4('0x79')]){_0x556a35[_0x8eb927['joins'][_0x1d7a2d][_0x80c4('0x30')]](_0x8eb927[_0x80c4('0x75')][_0x1d7a2d][_0x80c4('0x78')],null,util['format'](_0x80c4('0x7a'),_0x8eb927['table'],_0x8eb927[_0x80c4('0x75')][_0x1d7a2d][_0x80c4('0x77')],_0x8eb927[_0x80c4('0x75')][_0x1d7a2d][_0x80c4('0x78')],_0x8eb927[_0x80c4('0x75')][_0x1d7a2d][_0x80c4('0x79')]));}}}if(_0x8eb927[_0x80c4('0x7c')]){_0x8eb927[_0x80c4('0x7c')]=JSON[_0x80c4('0x76')](_0x8eb927[_0x80c4('0x7c')]);_0x556a35[_0x80c4('0x3e')](_0x1f96bd(_0x8eb927['conditions']['group']));}_0x4b59e9=_0x556a35['clone']();_0x556a35['limit'](_0x5e8b5e);_0x556a35[_0x80c4('0x1e')](0x0);logger['debug'](_0x80c4('0xa1'),_0x556a35[_0x80c4('0x7f')]());return dbH['sequelize']['query'](_0x556a35[_0x80c4('0x7f')](),{'type':dbH[_0x80c4('0x80')][_0x80c4('0x9c')][_0x80c4('0x81')]});}})[_0x80c4('0x25')](function(){return{'sql':_0x4b59e9['toString']()};})[_0x80c4('0x25')](respondWithResult(_0x2d4a17,null))[_0x80c4('0x45')](handleError(_0x2d4a17,null));};