Built motion from commit 616d3211.|2.6.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 _0x5717=['lodash','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','limit','undefined','count','offset','set','apply','save','update','then','destroy','get','CustomReports','UserProfileResource','end','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','model','query','intersection','fields','attributes','hasOwnProperty','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','show','params','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Reports','UserProfileSection','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','length','rules','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','order','DESC','alias','joins','parse','foreignTable','foreignKey','parentKey','conditions','clone','Limited\x20Query:','toString','sequelize','QueryTypes','join','SUM(%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','HOUR(%s)','includes','operator','%s.%s\x20=\x20%s.%s','output','web','fullPath','%s-%s.%s','generate','csv','custom','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','child_process','fork','../../components/export/','../../files/reports','countTable','COUNT(*)','SELECT','run','runReport','GROUP_CONCAT(%s)','debug','eml-format','rimraf','zip-dir','moment','bluebird','mustache','path','sox','ejs','fs-extra'];(function(_0x5cb044,_0x179ea2){var _0x3d2be9=function(_0xed6ba){while(--_0xed6ba){_0x5cb044['push'](_0x5cb044['shift']());}};_0x3d2be9(++_0x179ea2);}(_0x5717,0x140));var _0x7571=function(_0x1031b2,_0x1e434c){_0x1031b2=_0x1031b2-0x0;var _0x222ef9=_0x5717[_0x1031b2];return _0x222ef9;};'use strict';var emlformat=require(_0x7571('0x0'));var rimraf=require(_0x7571('0x1'));var zipdir=require(_0x7571('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x7571('0x3'));var BPromise=require(_0x7571('0x4'));var Mustache=require(_0x7571('0x5'));var util=require('util');var path=require(_0x7571('0x6'));var sox=require(_0x7571('0x7'));var csv=require('to-csv');var ejs=require(_0x7571('0x8'));var fs=require('fs');var fs_extra=require(_0x7571('0x9'));var _=require(_0x7571('0xa'));var squel=require('squel');var crypto=require(_0x7571('0xb'));var jsforce=require(_0x7571('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x7571('0xd'));var querystring=require(_0x7571('0xe'));var Papa=require(_0x7571('0xf'));var Redis=require(_0x7571('0x10'));var authService=require(_0x7571('0x11'));var qs=require(_0x7571('0x12'));var as=require(_0x7571('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x7571('0x14'));var utils=require(_0x7571('0x15'));var config=require(_0x7571('0x16'));var licenseUtil=require(_0x7571('0x17'));var db=require(_0x7571('0x18'))['db'];var dbH=require(_0x7571('0x18'))['dbH'];function respondWithStatusCode(_0x1e8221,_0x207082){_0x207082=_0x207082||0xcc;return function(_0x92aad1){if(_0x92aad1){return _0x1e8221[_0x7571('0x19')](_0x207082);}return _0x1e8221[_0x7571('0x1a')](_0x207082)['end']();};}function respondWithResult(_0x4b3638,_0x34aab8){_0x34aab8=_0x34aab8||0xc8;return function(_0x38d17f){if(_0x38d17f){return _0x4b3638[_0x7571('0x1a')](_0x34aab8)[_0x7571('0x1b')](_0x38d17f);}};}function respondWithFilteredResult(_0x5450a3,_0x5af813){return function(_0x215973){if(_0x215973){var _0x4fdd55=typeof _0x5af813['offset']==='undefined'&&typeof _0x5af813[_0x7571('0x1c')]===_0x7571('0x1d');var _0x56edd6=_0x215973[_0x7571('0x1e')];var _0x5ba166=_0x4fdd55?0x0:_0x5af813[_0x7571('0x1f')];var _0x57d184=_0x4fdd55?_0x215973[_0x7571('0x1e')]:_0x5af813[_0x7571('0x1f')]+_0x5af813[_0x7571('0x1c')];var _0x1385e0;if(_0x57d184>=_0x56edd6){_0x57d184=_0x56edd6;_0x1385e0=0xc8;}else{_0x1385e0=0xce;}_0x5450a3[_0x7571('0x1a')](_0x1385e0);return _0x5450a3[_0x7571('0x20')]('Content-Range',_0x5ba166+'-'+_0x57d184+'/'+_0x56edd6)[_0x7571('0x1b')](_0x215973);}return null;};}function patchUpdates(_0x3cb42b){return function(_0x106766){try{jsonpatch[_0x7571('0x21')](_0x106766,_0x3cb42b,!![]);}catch(_0x127e1f){return BPromise['reject'](_0x127e1f);}return _0x106766[_0x7571('0x22')]();};}function saveUpdates(_0x1cf4e2,_0x2b1085){return function(_0x140c29){if(_0x140c29){return _0x140c29[_0x7571('0x23')](_0x1cf4e2)[_0x7571('0x24')](function(_0x76cdef){return _0x76cdef;});}return null;};}function removeEntity(_0x27056d,_0x11a3ba){return function(_0xdbaecb){if(_0xdbaecb){return _0xdbaecb[_0x7571('0x25')]()[_0x7571('0x24')](function(){var _0xc26e88=_0xdbaecb[_0x7571('0x26')]({'plain':!![]});var _0x5caed8=_0x7571('0x27');return db[_0x7571('0x28')]['destroy']({'where':{'type':_0x5caed8,'resourceId':_0xc26e88['id']}})[_0x7571('0x24')](function(){return _0xdbaecb;});})[_0x7571('0x24')](function(){_0x27056d['status'](0xcc)[_0x7571('0x29')]();});}};}function handleEntityNotFound(_0x20562c,_0xc46c0a){return function(_0x1c5a4b){if(!_0x1c5a4b){_0x20562c[_0x7571('0x19')](0x194);}return _0x1c5a4b;};}function handleError(_0x134dba,_0x43c394){_0x43c394=_0x43c394||0x1f4;return function(_0x51e0ef){logger[_0x7571('0x2a')](_0x51e0ef[_0x7571('0x2b')]);if(_0x51e0ef[_0x7571('0x2c')]){delete _0x51e0ef['name'];}_0x134dba[_0x7571('0x1a')](_0x43c394)[_0x7571('0x2d')](_0x51e0ef);};}exports[_0x7571('0x2e')]=function(_0x1a0c4d,_0x4eb1b4){var _0x4ff1e8={},_0x51ec87={},_0x248e01={'count':0x0,'rows':[]};var _0x5dbe7b=_[_0x7571('0x2f')](db[_0x7571('0x30')][_0x7571('0x31')],function(_0x2762fd){return{'name':_0x2762fd[_0x7571('0x32')],'type':_0x2762fd['type']['key']};});_0x51ec87[_0x7571('0x33')]=_[_0x7571('0x2f')](_0x5dbe7b,'name');_0x51ec87['query']=_['keys'](_0x1a0c4d[_0x7571('0x34')]);_0x51ec87['filters']=_[_0x7571('0x35')](_0x51ec87[_0x7571('0x33')],_0x51ec87[_0x7571('0x34')]);_0x4ff1e8['attributes']=_['intersection'](_0x51ec87[_0x7571('0x33')],qs[_0x7571('0x36')](_0x1a0c4d[_0x7571('0x34')]['fields']));_0x4ff1e8[_0x7571('0x37')]=_0x4ff1e8[_0x7571('0x37')]['length']?_0x4ff1e8['attributes']:_0x51ec87[_0x7571('0x33')];if(!_0x1a0c4d[_0x7571('0x34')][_0x7571('0x38')]('nolimit')){_0x4ff1e8[_0x7571('0x1c')]=qs[_0x7571('0x1c')](_0x1a0c4d['query'][_0x7571('0x1c')]);_0x4ff1e8['offset']=qs[_0x7571('0x1f')](_0x1a0c4d[_0x7571('0x34')][_0x7571('0x1f')]);}_0x4ff1e8['order']=qs[_0x7571('0x39')](_0x1a0c4d[_0x7571('0x34')][_0x7571('0x39')]);_0x4ff1e8[_0x7571('0x3a')]=qs[_0x7571('0x3b')](_[_0x7571('0x3c')](_0x1a0c4d[_0x7571('0x34')],_0x51ec87[_0x7571('0x3b')]),_0x5dbe7b);if(_0x1a0c4d[_0x7571('0x34')][_0x7571('0x3d')]){_0x4ff1e8[_0x7571('0x3a')]=_[_0x7571('0x3e')](_0x4ff1e8[_0x7571('0x3a')],{'$or':_[_0x7571('0x2f')](_0x5dbe7b,function(_0x2234d9){if(_0x2234d9[_0x7571('0x3f')]!==_0x7571('0x40')){var _0x554a11={};_0x554a11[_0x2234d9['name']]={'$like':'%'+_0x1a0c4d[_0x7571('0x34')]['filter']+'%'};return _0x554a11;}})});}_0x4ff1e8=_['merge']({},_0x4ff1e8,_0x1a0c4d[_0x7571('0x41')]);var _0x1852bc={'where':_0x4ff1e8[_0x7571('0x3a')]};return db['AnalyticCustomReport'][_0x7571('0x1e')](_0x1852bc)[_0x7571('0x24')](function(_0x37d086){_0x248e01[_0x7571('0x1e')]=_0x37d086;if(_0x1a0c4d[_0x7571('0x34')][_0x7571('0x42')]){_0x4ff1e8[_0x7571('0x43')]=[{'all':!![]}];}return db['AnalyticCustomReport'][_0x7571('0x44')](_0x4ff1e8);})['then'](function(_0x43a5f4){_0x248e01[_0x7571('0x45')]=_0x43a5f4;return _0x248e01;})[_0x7571('0x24')](respondWithFilteredResult(_0x4eb1b4,_0x4ff1e8))['catch'](handleError(_0x4eb1b4,null));};exports[_0x7571('0x46')]=function(_0xc5a3ee,_0x1f4c07){var _0x9a580={'raw':![],'where':{'id':_0xc5a3ee[_0x7571('0x47')]['id']}},_0x15149d={};_0x15149d['model']=_['keys'](db['AnalyticCustomReport'][_0x7571('0x31')]);_0x15149d[_0x7571('0x34')]=_['keys'](_0xc5a3ee[_0x7571('0x34')]);_0x15149d[_0x7571('0x3b')]=_[_0x7571('0x35')](_0x15149d[_0x7571('0x33')],_0x15149d[_0x7571('0x34')]);_0x9a580[_0x7571('0x37')]=_[_0x7571('0x35')](_0x15149d[_0x7571('0x33')],qs[_0x7571('0x36')](_0xc5a3ee[_0x7571('0x34')][_0x7571('0x36')]));_0x9a580[_0x7571('0x37')]=_0x9a580[_0x7571('0x37')]['length']?_0x9a580[_0x7571('0x37')]:_0x15149d[_0x7571('0x33')];if(_0xc5a3ee[_0x7571('0x34')][_0x7571('0x42')]){_0x9a580['include']=[{'all':!![]}];}_0x9a580=_['merge']({},_0x9a580,_0xc5a3ee['options']);return db[_0x7571('0x30')]['find'](_0x9a580)[_0x7571('0x24')](handleEntityNotFound(_0x1f4c07,null))[_0x7571('0x24')](respondWithResult(_0x1f4c07,null))[_0x7571('0x48')](handleError(_0x1f4c07,null));};exports[_0x7571('0x49')]=function(_0x5090fd,_0xbea9a3){return db[_0x7571('0x30')][_0x7571('0x49')](_0x5090fd[_0x7571('0x4a')],{})[_0x7571('0x24')](function(_0x4c03a6){var _0x3a2333=_0x5090fd['user']['get']({'plain':!![]});if(!_0x3a2333)throw new Error(_0x7571('0x4b'));if(_0x3a2333['role']===_0x7571('0x4c')){var _0x6e7bae=_0x4c03a6['get']({'plain':!![]});var _0x4d0268=_0x7571('0x4d');return db[_0x7571('0x4e')][_0x7571('0x4f')]({'where':{'name':_0x4d0268,'userProfileId':_0x3a2333[_0x7571('0x50')]},'raw':!![]})[_0x7571('0x24')](function(_0x1268a3){if(_0x1268a3&&_0x1268a3['autoAssociation']===0x0){return db[_0x7571('0x28')][_0x7571('0x49')]({'name':_0x6e7bae[_0x7571('0x2c')],'resourceId':_0x6e7bae['id'],'type':'CustomReports','sectionId':_0x1268a3['id']},{})[_0x7571('0x24')](function(){return _0x4c03a6;});}else{return _0x4c03a6;}})['catch'](function(_0x2cc1c0){logger[_0x7571('0x2a')](_0x7571('0x51'),_0x2cc1c0);throw _0x2cc1c0;});}return _0x4c03a6;})[_0x7571('0x24')](respondWithResult(_0xbea9a3,0xc9))['catch'](handleError(_0xbea9a3,null));};exports[_0x7571('0x23')]=function(_0xab2b59,_0x3a67dc){if(_0xab2b59[_0x7571('0x4a')]['id']){delete _0xab2b59['body']['id'];}return db[_0x7571('0x30')][_0x7571('0x4f')]({'where':{'id':_0xab2b59['params']['id']}})[_0x7571('0x24')](handleEntityNotFound(_0x3a67dc,null))[_0x7571('0x24')](saveUpdates(_0xab2b59[_0x7571('0x4a')],null))[_0x7571('0x24')](respondWithResult(_0x3a67dc,null))['catch'](handleError(_0x3a67dc,null));};exports[_0x7571('0x25')]=function(_0x516047,_0x1b4e47){return db[_0x7571('0x30')][_0x7571('0x4f')]({'where':{'id':_0x516047[_0x7571('0x47')]['id']}})[_0x7571('0x24')](handleEntityNotFound(_0x1b4e47,null))[_0x7571('0x24')](removeEntity(_0x1b4e47,null))[_0x7571('0x48')](handleError(_0x1b4e47,null));};exports[_0x7571('0x52')]=function(_0x17840d,_0x463294){var _0x5b0db0=0xa;var _0x85939b=['join',_0x7571('0x53'),_0x7571('0x54'),_0x7571('0x55')];var _0x1aa748={'SUM':'SUM(%s)','COUNT':_0x7571('0x56'),'COUNT DISTINCT':_0x7571('0x57'),'MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x7571('0x58')};var _0x1b5cb2={'SEC_TO_TIME':_0x7571('0x59'),'DATE':_0x7571('0x5a'),'HOUR':'HOUR(%s)','ROUND':_0x7571('0x5b'),'UNIX_TIMESTAMP':_0x7571('0x5c')};var _0x382ca2=function(_0x14dcc1){return!_['includes']([_0x7571('0x5d'),_0x7571('0x5e'),_0x7571('0x5f'),_0x7571('0x60')],_0x14dcc1);};var _0x18901b=function(_0x13a0cb){if(!_0x13a0cb||!_0x13a0cb['rules'][_0x7571('0x61')]){return'';}for(var _0x223c13='(',_0x501a29=0x0;_0x501a29<_0x13a0cb[_0x7571('0x62')][_0x7571('0x61')];_0x501a29+=0x1){_0x501a29>0x0&&(_0x223c13+='\x20'+_0x13a0cb['operator']+'\x20');_0x223c13+=_0x13a0cb['rules'][_0x501a29][_0x7571('0x63')]?_0x18901b(_0x13a0cb[_0x7571('0x62')][_0x501a29][_0x7571('0x63')]):_0x13a0cb[_0x7571('0x62')][_0x501a29][_0x7571('0x64')]+'\x20'+_0x13a0cb[_0x7571('0x62')][_0x501a29][_0x7571('0x65')]+(_0x382ca2(_0x13a0cb[_0x7571('0x62')][_0x501a29][_0x7571('0x65')])?'\x20'+_0x13a0cb['rules'][_0x501a29][_0x7571('0x66')]:'');}return _0x223c13+')';};var _0xb2d472={'where':{'id':_0x17840d[_0x7571('0x47')]['id']}},_0x10fb17,_0x434491,_0x12ccbb,_0x183686,_0x2bc227;_0xb2d472=_[_0x7571('0x3e')]({},_0xb2d472,_0x17840d[_0x7571('0x41')]);return db['AnalyticCustomReport'][_0x7571('0x4f')](_0xb2d472)[_0x7571('0x24')](function(_0x1e2a8e){if(_0x1e2a8e){_0x10fb17=_0x1e2a8e;return _0x1e2a8e[_0x7571('0x67')]();}return null;})[_0x7571('0x24')](function(_0x33790a){if(_0x33790a){if(!_0x33790a[_0x7571('0x61')]){throw new db[(_0x7571('0x68'))][(_0x7571('0x69'))](_0x7571('0x6a'),0x193);}_0x434491=_0x33790a;return db[_0x7571('0x6b')][_0x7571('0x44')]({'raw':!![]});}return null;})[_0x7571('0x24')](function(_0x10863a){if(_0x10863a){_0x12ccbb=_[_0x7571('0x6c')](_0x10863a,'id');var _0x118087;var _0x1b4f2a=squel[_0x7571('0x6d')]();_0x1b4f2a[_0x7571('0x6e')](_0x10fb17[_0x7571('0x6f')]);for(var _0x4c7b1e=0x0;_0x4c7b1e<_0x434491[_0x7571('0x61')];_0x4c7b1e+=0x1){_0x118087=_0x434491[_0x4c7b1e]['MetricId']?_0x12ccbb[_0x434491[_0x4c7b1e][_0x7571('0x70')]][_0x7571('0x71')]:_0x434491[_0x4c7b1e][_0x7571('0x64')];_0x118087=_0x434491[_0x4c7b1e][_0x7571('0x72')]?_[_0x7571('0x73')](_0x1aa748[_0x434491[_0x4c7b1e][_0x7571('0x72')]],'%s',_0x118087):_0x118087;_0x118087=_0x434491[_0x4c7b1e][_0x7571('0x74')]?_['replace'](_0x1b5cb2[_0x434491[_0x4c7b1e]['format']],'%s',_0x118087):_0x118087;if(_0x434491[_0x4c7b1e][_0x7571('0x75')]){_0x1b4f2a['group'](_0x118087);}_0x434491[_0x4c7b1e][_0x7571('0x76')]&&_0x1b4f2a[_0x7571('0x77')](_0x118087,_0x434491[_0x4c7b1e]['orderBy']===_0x7571('0x78')?![]:!![]);_0x1b4f2a[_0x7571('0x64')](_0x118087,_0x434491[_0x4c7b1e][_0x7571('0x79')]||_0x118087);}if(_0x10fb17[_0x7571('0x7a')]){_0x10fb17[_0x7571('0x7a')]=JSON[_0x7571('0x7b')](_0x10fb17[_0x7571('0x7a')]);for(var _0x4af7e2=0x0;_0x4af7e2<_0x10fb17[_0x7571('0x7a')][_0x7571('0x61')];_0x4af7e2+=0x1){if(_0x10fb17[_0x7571('0x7a')][_0x4af7e2]['type']&&_['includes'](_0x85939b,_0x10fb17[_0x7571('0x7a')][_0x4af7e2][_0x7571('0x3f')])&&_0x10fb17[_0x7571('0x7a')][_0x4af7e2]['parentKey']&&_0x10fb17[_0x7571('0x7a')][_0x4af7e2][_0x7571('0x7c')]&&_0x10fb17[_0x7571('0x7a')][_0x4af7e2][_0x7571('0x7d')]){_0x1b4f2a[_0x10fb17[_0x7571('0x7a')][_0x4af7e2][_0x7571('0x3f')]](_0x10fb17['joins'][_0x4af7e2][_0x7571('0x7c')],null,util[_0x7571('0x74')]('%s.%s\x20=\x20%s.%s',_0x10fb17[_0x7571('0x6f')],_0x10fb17[_0x7571('0x7a')][_0x4af7e2][_0x7571('0x7e')],_0x10fb17[_0x7571('0x7a')][_0x4af7e2][_0x7571('0x7c')],_0x10fb17['joins'][_0x4af7e2][_0x7571('0x7d')]));}}}if(_0x10fb17['conditions']){_0x10fb17[_0x7571('0x7f')]=JSON[_0x7571('0x7b')](_0x10fb17[_0x7571('0x7f')]);_0x1b4f2a[_0x7571('0x3a')](_0x18901b(_0x10fb17[_0x7571('0x7f')][_0x7571('0x63')]));}_0x2bc227=_0x1b4f2a[_0x7571('0x80')]();_0x1b4f2a['limit'](_0x5b0db0);_0x1b4f2a[_0x7571('0x1f')](0x0);logger['debug'](_0x7571('0x81'),_0x1b4f2a[_0x7571('0x82')]());return dbH['sequelize'][_0x7571('0x34')](_0x1b4f2a[_0x7571('0x82')](),{'type':dbH[_0x7571('0x83')][_0x7571('0x84')]['SELECT']});}})[_0x7571('0x24')](respondWithResult(_0x463294,null))['catch'](handleError(_0x463294,null));};function runReport(_0x52624f,_0x2f4f6a,_0x5b0bcf){var _0x32ce97=_0x2f4f6a['name'];var _0x1b46f7=0xa;var _0x5804ed=[_0x7571('0x85'),'left_join',_0x7571('0x54'),_0x7571('0x55')];var _0x376b89={'SUM':_0x7571('0x86'),'COUNT':_0x7571('0x56'),'COUNT DISTINCT':_0x7571('0x57'),'MAX':_0x7571('0x87'),'MIN':_0x7571('0x88'),'AVG':_0x7571('0x89'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x7571('0x8a'),'GROUP_CONCAT DESC':_0x7571('0x58')};var _0x413f82={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x7571('0x5a'),'HOUR':_0x7571('0x8b'),'ROUND':_0x7571('0x5b'),'UNIX_TIMESTAMP':_0x7571('0x5c')};var _0x18fc4b=function(_0x398e61){return!_[_0x7571('0x8c')]([_0x7571('0x5d'),_0x7571('0x5e'),_0x7571('0x5f'),_0x7571('0x60')],_0x398e61);};var _0x1f286c=function(_0x5d8922){if(!_0x5d8922||!_0x5d8922[_0x7571('0x62')][_0x7571('0x61')]){return'';}for(var _0x413095='(',_0x48d027=0x0;_0x48d027<_0x5d8922['rules'][_0x7571('0x61')];_0x48d027+=0x1){_0x48d027>0x0&&(_0x413095+='\x20'+_0x5d8922[_0x7571('0x8d')]+'\x20');_0x413095+=_0x5d8922[_0x7571('0x62')][_0x48d027]['group']?_0x1f286c(_0x5d8922['rules'][_0x48d027][_0x7571('0x63')]):_0x5d8922[_0x7571('0x62')][_0x48d027][_0x7571('0x64')]+'\x20'+_0x5d8922[_0x7571('0x62')][_0x48d027][_0x7571('0x65')]+(_0x18fc4b(_0x5d8922[_0x7571('0x62')][_0x48d027][_0x7571('0x65')])?'\x20'+_0x5d8922['rules'][_0x48d027]['value']:'');}return _0x413095+')';};var _0x9ee47a={'where':{'id':_0x52624f['id']}},_0x3de1b2,_0x38fe2b,_0x12861d,_0x433da9,_0x5ad73b;_0x9ee47a=_[_0x7571('0x3e')]({},_0x9ee47a,_0x5b0bcf);return db[_0x7571('0x30')][_0x7571('0x4f')](_0x9ee47a)[_0x7571('0x24')](function(_0x426225){if(_0x426225){_0x3de1b2=_0x426225;return _0x426225[_0x7571('0x67')]();}return null;})[_0x7571('0x24')](function(_0x5d6776){if(_0x5d6776){if(!_0x5d6776[_0x7571('0x61')]){throw new db[(_0x7571('0x68'))][(_0x7571('0x69'))](_0x7571('0x6a'),0x193);}_0x38fe2b=_0x5d6776;return db[_0x7571('0x6b')][_0x7571('0x44')]({'raw':!![]});}return null;})[_0x7571('0x24')](function(_0x3475de){if(_0x3475de){_0x12861d=_[_0x7571('0x6c')](_0x3475de,'id');var _0x4c5bad;var _0x1e5627=squel[_0x7571('0x6d')]();_0x1e5627[_0x7571('0x6e')](_0x3de1b2[_0x7571('0x6f')]);for(var _0x3dd47e=0x0;_0x3dd47e<_0x38fe2b['length'];_0x3dd47e+=0x1){_0x4c5bad=_0x38fe2b[_0x3dd47e]['MetricId']?_0x12861d[_0x38fe2b[_0x3dd47e][_0x7571('0x70')]][_0x7571('0x71')]:_0x38fe2b[_0x3dd47e][_0x7571('0x64')];_0x4c5bad=_0x38fe2b[_0x3dd47e]['function']?_[_0x7571('0x73')](_0x376b89[_0x38fe2b[_0x3dd47e][_0x7571('0x72')]],'%s',_0x4c5bad):_0x4c5bad;_0x4c5bad=_0x38fe2b[_0x3dd47e][_0x7571('0x74')]?_['replace'](_0x413f82[_0x38fe2b[_0x3dd47e][_0x7571('0x74')]],'%s',_0x4c5bad):_0x4c5bad;if(_0x38fe2b[_0x3dd47e]['groupBy']){_0x1e5627[_0x7571('0x63')](_0x4c5bad);}_0x38fe2b[_0x3dd47e][_0x7571('0x76')]&&_0x1e5627[_0x7571('0x77')](_0x4c5bad,_0x38fe2b[_0x3dd47e]['orderBy']===_0x7571('0x78')?![]:!![]);_0x1e5627[_0x7571('0x64')](_0x4c5bad,_0x38fe2b[_0x3dd47e][_0x7571('0x79')]||_0x4c5bad);}if(_0x3de1b2[_0x7571('0x7a')]){_0x3de1b2[_0x7571('0x7a')]=JSON['parse'](_0x3de1b2[_0x7571('0x7a')]);for(var _0x5f5386=0x0;_0x5f5386<_0x3de1b2[_0x7571('0x7a')]['length'];_0x5f5386+=0x1){if(_0x3de1b2[_0x7571('0x7a')][_0x5f5386]['type']&&_['includes'](_0x5804ed,_0x3de1b2[_0x7571('0x7a')][_0x5f5386]['type'])&&_0x3de1b2['joins'][_0x5f5386][_0x7571('0x7e')]&&_0x3de1b2[_0x7571('0x7a')][_0x5f5386]['foreignTable']&&_0x3de1b2[_0x7571('0x7a')][_0x5f5386][_0x7571('0x7d')]){_0x1e5627[_0x3de1b2[_0x7571('0x7a')][_0x5f5386][_0x7571('0x3f')]](_0x3de1b2[_0x7571('0x7a')][_0x5f5386]['foreignTable'],null,util[_0x7571('0x74')](_0x7571('0x8e'),_0x3de1b2[_0x7571('0x6f')],_0x3de1b2['joins'][_0x5f5386][_0x7571('0x7e')],_0x3de1b2[_0x7571('0x7a')][_0x5f5386][_0x7571('0x7c')],_0x3de1b2[_0x7571('0x7a')][_0x5f5386][_0x7571('0x7d')]));}}}if(_0x3de1b2['conditions']){_0x3de1b2[_0x7571('0x7f')]=JSON['parse'](_0x3de1b2[_0x7571('0x7f')]);_0x1e5627['where'](_0x1f286c(_0x3de1b2['conditions']['group']));}_0x5ad73b=_0x1e5627['clone']();_0x1e5627[_0x7571('0x1c')](_0x1b46f7);_0x1e5627['offset'](0x0);return;}})['then'](function(){if(_0x2f4f6a[_0x7571('0x8f')]===_0x7571('0x90')){return null;}var _0x57b586=_['merge'](_0x2f4f6a,{'name':_0x2f4f6a[_0x7571('0x91')]||_0x2f4f6a[_0x7571('0x2c')]||_0x3de1b2['name'],'basename':_0x32ce97,'savename':util['format'](_0x7571('0x92'),_0x2f4f6a[_0x7571('0x2c')]||_0x3de1b2[_0x7571('0x2c')],require('randomstring')[_0x7571('0x93')](0x4),_0x2f4f6a[_0x7571('0x8f')]||_0x7571('0x94')),'reportId':_0x3de1b2['id'],'reportType':_0x7571('0x95')});return db['AnalyticExtractedReport'][_0x7571('0x49')](_0x57b586,{'raw':!![]});})[_0x7571('0x24')](function(_0x1563af){if(_0x3de1b2[_0x7571('0x6f')]===_0x7571('0x96')){_0x5ad73b['where'](_0x3de1b2['table']+_0x7571('0x97'),_0x2f4f6a[_0x7571('0x98')],_0x2f4f6a[_0x7571('0x99')]);}else{_0x5ad73b['where'](_0x3de1b2[_0x7571('0x6f')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2f4f6a[_0x7571('0x98')],_0x2f4f6a[_0x7571('0x99')]);}if(_0x1563af){logger['info']('Run\x20Query:',_0x5ad73b[_0x7571('0x82')]());require(_0x7571('0x9a'))[_0x7571('0x9b')](path['join'](__dirname,_0x7571('0x9c'),_0x1563af[_0x7571('0x8f')]),[_0x1563af['id'],_0x5ad73b['toString'](),path[_0x7571('0x85')](__dirname,_0x7571('0x9d'),_0x1563af['savename']),_0x32ce97]);return _0x1563af;}else{var _0x277d51=squel[_0x7571('0x6d')]();_0x277d51[_0x7571('0x6e')]('('+_0x5ad73b[_0x7571('0x82')]()+')',_0x7571('0x9e'));_0x277d51[_0x7571('0x64')](_0x7571('0x9f'),_0x7571('0x1e'));_0x5ad73b[_0x7571('0x1c')](_0x2f4f6a['limit']||_0x1b46f7);_0x5ad73b[_0x7571('0x1f')](_0x2f4f6a[_0x7571('0x1f')]||0x0);return dbH[_0x7571('0x83')][_0x7571('0x34')](_0x277d51[_0x7571('0x82')](),{'type':dbH['sequelize'][_0x7571('0x84')][_0x7571('0xa0')]})[_0x7571('0x24')](function(_0xaac37a){if(!_0xaac37a[_0x7571('0x61')]){_0x433da9=0x0;}else{_0x433da9=_0xaac37a[0x0][_0x7571('0x1e')]||0x0;}return dbH[_0x7571('0x83')][_0x7571('0x34')](_0x5ad73b[_0x7571('0x82')](),{'type':dbH[_0x7571('0x83')]['QueryTypes'][_0x7571('0xa0')]});})[_0x7571('0x24')](function(_0x12cacc){return{'rows':_0x12cacc||[],'count':_0x433da9};});}});}exports[_0x7571('0xa1')]=function(_0x39fd0a,_0x38d316){return runReport(_0x39fd0a[_0x7571('0x47')],_0x39fd0a[_0x7571('0x34')],_0x39fd0a['options'])[_0x7571('0x24')](respondWithResult(_0x38d316,null))['catch'](handleError(_0x38d316,null));};exports[_0x7571('0xa2')]=runReport;exports[_0x7571('0x34')]=function(_0x1973a1,_0x24ac3a){var _0x383560=0xa;var _0x34518b=[_0x7571('0x85'),'left_join',_0x7571('0x54'),_0x7571('0x55')];var _0x16b380={'SUM':_0x7571('0x86'),'COUNT':_0x7571('0x56'),'COUNT DISTINCT':_0x7571('0x57'),'MAX':'MAX(%s)','MIN':_0x7571('0x88'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x7571('0xa3'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x7571('0x58')};var _0x5c73b2={'SEC_TO_TIME':_0x7571('0x59'),'DATE':_0x7571('0x5a'),'HOUR':_0x7571('0x8b'),'ROUND':_0x7571('0x5b'),'UNIX_TIMESTAMP':_0x7571('0x5c')};var _0x385370=function(_0xe2db78){return!_[_0x7571('0x8c')]([_0x7571('0x5d'),_0x7571('0x5e'),_0x7571('0x5f'),_0x7571('0x60')],_0xe2db78);};var _0x522e1d=function(_0x1e41b1){if(!_0x1e41b1||!_0x1e41b1[_0x7571('0x62')]['length']){return'';}for(var _0x2c154d='(',_0x1ab7ef=0x0;_0x1ab7ef<_0x1e41b1[_0x7571('0x62')]['length'];_0x1ab7ef+=0x1){_0x1ab7ef>0x0&&(_0x2c154d+='\x20'+_0x1e41b1['operator']+'\x20');_0x2c154d+=_0x1e41b1[_0x7571('0x62')][_0x1ab7ef]['group']?_0x522e1d(_0x1e41b1[_0x7571('0x62')][_0x1ab7ef][_0x7571('0x63')]):_0x1e41b1[_0x7571('0x62')][_0x1ab7ef][_0x7571('0x64')]+'\x20'+_0x1e41b1[_0x7571('0x62')][_0x1ab7ef][_0x7571('0x65')]+(_0x385370(_0x1e41b1[_0x7571('0x62')][_0x1ab7ef][_0x7571('0x65')])?'\x20'+_0x1e41b1[_0x7571('0x62')][_0x1ab7ef][_0x7571('0x66')]:'');}return _0x2c154d+')';};var _0x4850a5={'where':{'id':_0x1973a1[_0x7571('0x47')]['id']}},_0xbd77f,_0x4e0f72,_0x5452f0,_0x37188c,_0x469964;_0x4850a5=_[_0x7571('0x3e')]({},_0x4850a5,_0x1973a1[_0x7571('0x41')]);return db[_0x7571('0x30')][_0x7571('0x4f')](_0x4850a5)[_0x7571('0x24')](function(_0x1872c3){if(_0x1872c3){_0xbd77f=_0x1872c3;return _0x1872c3[_0x7571('0x67')]();}return null;})[_0x7571('0x24')](function(_0x53cd24){if(_0x53cd24){if(!_0x53cd24[_0x7571('0x61')]){throw new db['Sequelize'][(_0x7571('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4e0f72=_0x53cd24;return db[_0x7571('0x6b')][_0x7571('0x44')]({'raw':!![]});}return null;})[_0x7571('0x24')](function(_0x48d4c0){if(_0x48d4c0){_0x5452f0=_[_0x7571('0x6c')](_0x48d4c0,'id');var _0x576ac1;var _0x32f572=squel[_0x7571('0x6d')]();_0x32f572[_0x7571('0x6e')](_0xbd77f[_0x7571('0x6f')]);for(var _0x141fb3=0x0;_0x141fb3<_0x4e0f72[_0x7571('0x61')];_0x141fb3+=0x1){_0x576ac1=_0x4e0f72[_0x141fb3]['MetricId']?_0x5452f0[_0x4e0f72[_0x141fb3][_0x7571('0x70')]][_0x7571('0x71')]:_0x4e0f72[_0x141fb3][_0x7571('0x64')];_0x576ac1=_0x4e0f72[_0x141fb3][_0x7571('0x72')]?_[_0x7571('0x73')](_0x16b380[_0x4e0f72[_0x141fb3]['function']],'%s',_0x576ac1):_0x576ac1;_0x576ac1=_0x4e0f72[_0x141fb3][_0x7571('0x74')]?_['replace'](_0x5c73b2[_0x4e0f72[_0x141fb3][_0x7571('0x74')]],'%s',_0x576ac1):_0x576ac1;if(_0x4e0f72[_0x141fb3][_0x7571('0x75')]){_0x32f572['group'](_0x576ac1);}_0x4e0f72[_0x141fb3][_0x7571('0x76')]&&_0x32f572[_0x7571('0x77')](_0x576ac1,_0x4e0f72[_0x141fb3][_0x7571('0x76')]===_0x7571('0x78')?![]:!![]);_0x32f572[_0x7571('0x64')](_0x576ac1,_0x4e0f72[_0x141fb3][_0x7571('0x79')]||_0x576ac1);}if(_0xbd77f['joins']){_0xbd77f[_0x7571('0x7a')]=JSON[_0x7571('0x7b')](_0xbd77f[_0x7571('0x7a')]);for(var _0x3e55dd=0x0;_0x3e55dd<_0xbd77f[_0x7571('0x7a')][_0x7571('0x61')];_0x3e55dd+=0x1){if(_0xbd77f['joins'][_0x3e55dd]['type']&&_['includes'](_0x34518b,_0xbd77f[_0x7571('0x7a')][_0x3e55dd][_0x7571('0x3f')])&&_0xbd77f[_0x7571('0x7a')][_0x3e55dd][_0x7571('0x7e')]&&_0xbd77f[_0x7571('0x7a')][_0x3e55dd]['foreignTable']&&_0xbd77f[_0x7571('0x7a')][_0x3e55dd][_0x7571('0x7d')]){_0x32f572[_0xbd77f['joins'][_0x3e55dd][_0x7571('0x3f')]](_0xbd77f[_0x7571('0x7a')][_0x3e55dd][_0x7571('0x7c')],null,util[_0x7571('0x74')]('%s.%s\x20=\x20%s.%s',_0xbd77f[_0x7571('0x6f')],_0xbd77f['joins'][_0x3e55dd]['parentKey'],_0xbd77f['joins'][_0x3e55dd]['foreignTable'],_0xbd77f[_0x7571('0x7a')][_0x3e55dd][_0x7571('0x7d')]));}}}if(_0xbd77f[_0x7571('0x7f')]){_0xbd77f[_0x7571('0x7f')]=JSON['parse'](_0xbd77f[_0x7571('0x7f')]);_0x32f572[_0x7571('0x3a')](_0x522e1d(_0xbd77f[_0x7571('0x7f')]['group']));}_0x469964=_0x32f572['clone']();_0x32f572['limit'](_0x383560);_0x32f572[_0x7571('0x1f')](0x0);logger[_0x7571('0xa4')](_0x7571('0x81'),_0x32f572['toString']());return dbH[_0x7571('0x83')][_0x7571('0x34')](_0x32f572[_0x7571('0x82')](),{'type':dbH['sequelize'][_0x7571('0x84')][_0x7571('0xa0')]});}})['then'](function(){return{'sql':_0x469964['toString']()};})[_0x7571('0x24')](respondWithResult(_0x24ac3a,null))[_0x7571('0x48')](handleError(_0x24ac3a,null));};