93616208df5f444146ee624b321e3853a681ec52
[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 _0xabe1=['query','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','include','findAll','catch','show','model','keys','length','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','HOUR(%s)','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','field','condition','value','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','group','DESC','alias','joins','includes','parentKey','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','parse','clone','debug','Limited\x20Query:','toString','sequelize','SELECT','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','IS\x20NULL','operator','ValidationErrorItem','orderBy','output','web','fullPath','%s-%s.%s','generate','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','info','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','QueryTypes','run','runReport','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','dbH','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','then','destroy','get','CustomReports','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','filters','intersection','attributes','fields'];(function(_0x13d07a,_0x41efc3){var _0x5ee0ee=function(_0x4ca94a){while(--_0x4ca94a){_0x13d07a['push'](_0x13d07a['shift']());}};_0x5ee0ee(++_0x41efc3);}(_0xabe1,0x1c2));var _0x1abe=function(_0x4ddcec,_0x42870a){_0x4ddcec=_0x4ddcec-0x0;var _0x47fb0f=_0xabe1[_0x4ddcec];return _0x47fb0f;};'use strict';var emlformat=require(_0x1abe('0x0'));var rimraf=require(_0x1abe('0x1'));var zipdir=require(_0x1abe('0x2'));var jsonpatch=require(_0x1abe('0x3'));var rp=require(_0x1abe('0x4'));var moment=require(_0x1abe('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x1abe('0x6'));var sox=require(_0x1abe('0x7'));var csv=require(_0x1abe('0x8'));var ejs=require(_0x1abe('0x9'));var fs=require('fs');var fs_extra=require(_0x1abe('0xa'));var _=require(_0x1abe('0xb'));var squel=require(_0x1abe('0xc'));var crypto=require(_0x1abe('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x1abe('0xe'));var toCsv=require(_0x1abe('0x8'));var querystring=require('querystring');var Papa=require(_0x1abe('0xf'));var Redis=require(_0x1abe('0x10'));var authService=require(_0x1abe('0x11'));var qs=require(_0x1abe('0x12'));var as=require(_0x1abe('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1abe('0x14'))(_0x1abe('0x15'));var utils=require(_0x1abe('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x1abe('0x17'))['db'];var dbH=require('../../mysqldb')[_0x1abe('0x18')];function respondWithStatusCode(_0x37d53d,_0x19d66b){_0x19d66b=_0x19d66b||0xcc;return function(_0x4f3ad1){if(_0x4f3ad1){return _0x37d53d[_0x1abe('0x19')](_0x19d66b);}return _0x37d53d[_0x1abe('0x1a')](_0x19d66b)[_0x1abe('0x1b')]();};}function respondWithResult(_0x4b809f,_0x3829f2){_0x3829f2=_0x3829f2||0xc8;return function(_0x225314){if(_0x225314){return _0x4b809f[_0x1abe('0x1a')](_0x3829f2)['json'](_0x225314);}};}function respondWithFilteredResult(_0x477fcf,_0x1ce694){return function(_0x1d0bba){if(_0x1d0bba){var _0x33478b=typeof _0x1ce694[_0x1abe('0x1c')]==='undefined'&&typeof _0x1ce694[_0x1abe('0x1d')]===_0x1abe('0x1e');var _0x18b6e3=_0x1d0bba['count'];var _0x39f6fc=_0x33478b?0x0:_0x1ce694[_0x1abe('0x1c')];var _0x35e7ee=_0x33478b?_0x1d0bba[_0x1abe('0x1f')]:_0x1ce694[_0x1abe('0x1c')]+_0x1ce694[_0x1abe('0x1d')];var _0x1c4ff0;if(_0x35e7ee>=_0x18b6e3){_0x35e7ee=_0x18b6e3;_0x1c4ff0=0xc8;}else{_0x1c4ff0=0xce;}_0x477fcf[_0x1abe('0x1a')](_0x1c4ff0);return _0x477fcf[_0x1abe('0x20')](_0x1abe('0x21'),_0x39f6fc+'-'+_0x35e7ee+'/'+_0x18b6e3)[_0x1abe('0x22')](_0x1d0bba);}return null;};}function patchUpdates(_0x56f2f9){return function(_0x572a6f){try{jsonpatch[_0x1abe('0x23')](_0x572a6f,_0x56f2f9,!![]);}catch(_0x28dc76){return BPromise[_0x1abe('0x24')](_0x28dc76);}return _0x572a6f[_0x1abe('0x25')]();};}function saveUpdates(_0xedf367,_0x11eecc){return function(_0x272911){if(_0x272911){return _0x272911['update'](_0xedf367)[_0x1abe('0x26')](function(_0x262107){return _0x262107;});}return null;};}function removeEntity(_0x4b9c5d,_0x1bcaa6){return function(_0x373bb1){if(_0x373bb1){return _0x373bb1[_0x1abe('0x27')]()[_0x1abe('0x26')](function(){var _0x5db149=_0x373bb1[_0x1abe('0x28')]({'plain':!![]});var _0x57c938=_0x1abe('0x29');return db['UserProfileResource'][_0x1abe('0x27')]({'where':{'type':_0x57c938,'resourceId':_0x5db149['id']}})[_0x1abe('0x26')](function(){return _0x373bb1;});})['then'](function(){_0x4b9c5d[_0x1abe('0x1a')](0xcc)[_0x1abe('0x1b')]();});}};}function handleEntityNotFound(_0x301248,_0x949016){return function(_0x548840){if(!_0x548840){_0x301248[_0x1abe('0x19')](0x194);}return _0x548840;};}function handleError(_0x265050,_0x298911){_0x298911=_0x298911||0x1f4;return function(_0x22be9b){logger[_0x1abe('0x2a')](_0x22be9b[_0x1abe('0x2b')]);if(_0x22be9b[_0x1abe('0x2c')]){delete _0x22be9b[_0x1abe('0x2c')];}_0x265050['status'](_0x298911)[_0x1abe('0x2d')](_0x22be9b);};}exports[_0x1abe('0x2e')]=function(_0x2d1f78,_0x149bda){var _0x5289d0={},_0xa632d4={},_0x168f8b={'count':0x0,'rows':[]};var _0xa1b8e9=_[_0x1abe('0x2f')](db[_0x1abe('0x30')][_0x1abe('0x31')],function(_0xd4ba27){return{'name':_0xd4ba27[_0x1abe('0x32')],'type':_0xd4ba27[_0x1abe('0x33')][_0x1abe('0x34')]};});_0xa632d4['model']=_[_0x1abe('0x2f')](_0xa1b8e9,_0x1abe('0x2c'));_0xa632d4['query']=_['keys'](_0x2d1f78['query']);_0xa632d4[_0x1abe('0x35')]=_[_0x1abe('0x36')](_0xa632d4['model'],_0xa632d4['query']);_0x5289d0[_0x1abe('0x37')]=_[_0x1abe('0x36')](_0xa632d4['model'],qs[_0x1abe('0x38')](_0x2d1f78[_0x1abe('0x39')][_0x1abe('0x38')]));_0x5289d0[_0x1abe('0x37')]=_0x5289d0['attributes']['length']?_0x5289d0[_0x1abe('0x37')]:_0xa632d4['model'];if(!_0x2d1f78['query'][_0x1abe('0x3a')](_0x1abe('0x3b'))){_0x5289d0['limit']=qs['limit'](_0x2d1f78[_0x1abe('0x39')]['limit']);_0x5289d0['offset']=qs[_0x1abe('0x1c')](_0x2d1f78[_0x1abe('0x39')][_0x1abe('0x1c')]);}_0x5289d0[_0x1abe('0x3c')]=qs[_0x1abe('0x3d')](_0x2d1f78[_0x1abe('0x39')][_0x1abe('0x3d')]);_0x5289d0[_0x1abe('0x3e')]=qs[_0x1abe('0x35')](_[_0x1abe('0x3f')](_0x2d1f78[_0x1abe('0x39')],_0xa632d4[_0x1abe('0x35')]),_0xa1b8e9);if(_0x2d1f78[_0x1abe('0x39')][_0x1abe('0x40')]){_0x5289d0[_0x1abe('0x3e')]=_[_0x1abe('0x41')](_0x5289d0[_0x1abe('0x3e')],{'$or':_[_0x1abe('0x2f')](_0xa1b8e9,function(_0x58b5d8){if(_0x58b5d8[_0x1abe('0x33')]!=='VIRTUAL'){var _0x11cf84={};_0x11cf84[_0x58b5d8['name']]={'$like':'%'+_0x2d1f78[_0x1abe('0x39')][_0x1abe('0x40')]+'%'};return _0x11cf84;}})});}_0x5289d0=_[_0x1abe('0x41')]({},_0x5289d0,_0x2d1f78[_0x1abe('0x42')]);var _0x5046eb={'where':_0x5289d0[_0x1abe('0x3e')]};return db[_0x1abe('0x30')][_0x1abe('0x1f')](_0x5046eb)['then'](function(_0x27e788){_0x168f8b['count']=_0x27e788;if(_0x2d1f78[_0x1abe('0x39')]['includeAll']){_0x5289d0[_0x1abe('0x43')]=[{'all':!![]}];}return db[_0x1abe('0x30')][_0x1abe('0x44')](_0x5289d0);})[_0x1abe('0x26')](function(_0x515395){_0x168f8b['rows']=_0x515395;return _0x168f8b;})[_0x1abe('0x26')](respondWithFilteredResult(_0x149bda,_0x5289d0))[_0x1abe('0x45')](handleError(_0x149bda,null));};exports[_0x1abe('0x46')]=function(_0x3e1c8a,_0x28eda0){var _0xb0e576={'raw':![],'where':{'id':_0x3e1c8a['params']['id']}},_0x59a749={};_0x59a749[_0x1abe('0x47')]=_[_0x1abe('0x48')](db[_0x1abe('0x30')]['rawAttributes']);_0x59a749[_0x1abe('0x39')]=_[_0x1abe('0x48')](_0x3e1c8a[_0x1abe('0x39')]);_0x59a749[_0x1abe('0x35')]=_[_0x1abe('0x36')](_0x59a749[_0x1abe('0x47')],_0x59a749[_0x1abe('0x39')]);_0xb0e576[_0x1abe('0x37')]=_['intersection'](_0x59a749['model'],qs['fields'](_0x3e1c8a[_0x1abe('0x39')][_0x1abe('0x38')]));_0xb0e576[_0x1abe('0x37')]=_0xb0e576[_0x1abe('0x37')][_0x1abe('0x49')]?_0xb0e576[_0x1abe('0x37')]:_0x59a749[_0x1abe('0x47')];if(_0x3e1c8a[_0x1abe('0x39')][_0x1abe('0x4a')]){_0xb0e576[_0x1abe('0x43')]=[{'all':!![]}];}_0xb0e576=_[_0x1abe('0x41')]({},_0xb0e576,_0x3e1c8a[_0x1abe('0x42')]);return db['AnalyticCustomReport'][_0x1abe('0x4b')](_0xb0e576)[_0x1abe('0x26')](handleEntityNotFound(_0x28eda0,null))[_0x1abe('0x26')](respondWithResult(_0x28eda0,null))['catch'](handleError(_0x28eda0,null));};exports['create']=function(_0x3c5038,_0x1f75ee){return db[_0x1abe('0x30')][_0x1abe('0x4c')](_0x3c5038[_0x1abe('0x4d')],{})[_0x1abe('0x26')](function(_0x582997){var _0xac1ba8=_0x3c5038[_0x1abe('0x4e')][_0x1abe('0x28')]({'plain':!![]});if(!_0xac1ba8)throw new Error(_0x1abe('0x4f'));if(_0xac1ba8[_0x1abe('0x50')]===_0x1abe('0x4e')){var _0x5aed68=_0x582997[_0x1abe('0x28')]({'plain':!![]});var _0x3f9930='Reports';return db[_0x1abe('0x51')][_0x1abe('0x4b')]({'where':{'name':_0x3f9930,'userProfileId':_0xac1ba8[_0x1abe('0x52')]},'raw':!![]})[_0x1abe('0x26')](function(_0x58803a){if(_0x58803a&&_0x58803a[_0x1abe('0x53')]===0x0){return db[_0x1abe('0x54')][_0x1abe('0x4c')]({'name':_0x5aed68['name'],'resourceId':_0x5aed68['id'],'type':_0x1abe('0x29'),'sectionId':_0x58803a['id']},{})[_0x1abe('0x26')](function(){return _0x582997;});}else{return _0x582997;}})['catch'](function(_0xbebd93){logger[_0x1abe('0x2a')](_0x1abe('0x55'),_0xbebd93);throw _0xbebd93;});}return _0x582997;})[_0x1abe('0x26')](respondWithResult(_0x1f75ee,0xc9))[_0x1abe('0x45')](handleError(_0x1f75ee,null));};exports[_0x1abe('0x56')]=function(_0x2ec980,_0x2ea6de){if(_0x2ec980[_0x1abe('0x4d')]['id']){delete _0x2ec980[_0x1abe('0x4d')]['id'];}return db['AnalyticCustomReport'][_0x1abe('0x4b')]({'where':{'id':_0x2ec980[_0x1abe('0x57')]['id']}})[_0x1abe('0x26')](handleEntityNotFound(_0x2ea6de,null))['then'](saveUpdates(_0x2ec980[_0x1abe('0x4d')],null))['then'](respondWithResult(_0x2ea6de,null))[_0x1abe('0x45')](handleError(_0x2ea6de,null));};exports[_0x1abe('0x27')]=function(_0x18ca08,_0x51ead5){return db[_0x1abe('0x30')][_0x1abe('0x4b')]({'where':{'id':_0x18ca08[_0x1abe('0x57')]['id']}})[_0x1abe('0x26')](handleEntityNotFound(_0x51ead5,null))[_0x1abe('0x26')](removeEntity(_0x51ead5,null))[_0x1abe('0x45')](handleError(_0x51ead5,null));};exports[_0x1abe('0x58')]=function(_0xe8529f,_0x137204){var _0x2e9f94=0xa;var _0x1ce8e6=[_0x1abe('0x59'),_0x1abe('0x5a'),_0x1abe('0x5b'),_0x1abe('0x5c')];var _0x4b14c5={'SUM':_0x1abe('0x5d'),'COUNT':_0x1abe('0x5e'),'COUNT DISTINCT':_0x1abe('0x5f'),'MAX':_0x1abe('0x60'),'MIN':_0x1abe('0x61'),'AVG':_0x1abe('0x62'),'GROUP_CONCAT':_0x1abe('0x63'),'GROUP_CONCAT ASC':_0x1abe('0x64'),'GROUP_CONCAT DESC':_0x1abe('0x65')};var _0x43924a={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x1abe('0x66'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x1abe('0x67')};var _0x282743=function(_0x8615f){return!_['includes'](['IS\x20NULL',_0x1abe('0x68'),_0x1abe('0x69'),_0x1abe('0x6a')],_0x8615f);};var _0x5b7d01=function(_0x591f3a){if(!_0x591f3a||!_0x591f3a[_0x1abe('0x6b')][_0x1abe('0x49')]){return'';}for(var _0xd1cbc0='(',_0x5c9d36=0x0;_0x5c9d36<_0x591f3a[_0x1abe('0x6b')][_0x1abe('0x49')];_0x5c9d36+=0x1){_0x5c9d36>0x0&&(_0xd1cbc0+='\x20'+_0x591f3a['operator']+'\x20');_0xd1cbc0+=_0x591f3a[_0x1abe('0x6b')][_0x5c9d36]['group']?_0x5b7d01(_0x591f3a[_0x1abe('0x6b')][_0x5c9d36]['group']):_0x591f3a['rules'][_0x5c9d36][_0x1abe('0x6c')]+'\x20'+_0x591f3a[_0x1abe('0x6b')][_0x5c9d36][_0x1abe('0x6d')]+(_0x282743(_0x591f3a['rules'][_0x5c9d36]['condition'])?'\x20'+_0x591f3a[_0x1abe('0x6b')][_0x5c9d36][_0x1abe('0x6e')]:'');}return _0xd1cbc0+')';};var _0x4e12e6={'where':{'id':_0xe8529f[_0x1abe('0x57')]['id']}},_0x54b36c,_0x567424,_0x22404f,_0x285968,_0x33ab1b;_0x4e12e6=_[_0x1abe('0x41')]({},_0x4e12e6,_0xe8529f['options']);return db[_0x1abe('0x30')]['find'](_0x4e12e6)['then'](function(_0xb78939){if(_0xb78939){_0x54b36c=_0xb78939;return _0xb78939[_0x1abe('0x6f')]();}return null;})[_0x1abe('0x26')](function(_0x418093){if(_0x418093){if(!_0x418093['length']){throw new db[(_0x1abe('0x70'))]['ValidationErrorItem'](_0x1abe('0x71'),0x193);}_0x567424=_0x418093;return db[_0x1abe('0x72')][_0x1abe('0x44')]({'raw':!![]});}return null;})[_0x1abe('0x26')](function(_0x1c9648){if(_0x1c9648){_0x22404f=_[_0x1abe('0x73')](_0x1c9648,'id');var _0x13457;var _0x20308b=squel[_0x1abe('0x74')]();_0x20308b[_0x1abe('0x75')](_0x54b36c[_0x1abe('0x76')]);for(var _0x5fefd1=0x0;_0x5fefd1<_0x567424['length'];_0x5fefd1+=0x1){_0x13457=_0x567424[_0x5fefd1][_0x1abe('0x77')]?_0x22404f[_0x567424[_0x5fefd1][_0x1abe('0x77')]][_0x1abe('0x78')]:_0x567424[_0x5fefd1][_0x1abe('0x6c')];_0x13457=_0x567424[_0x5fefd1][_0x1abe('0x79')]?_[_0x1abe('0x7a')](_0x4b14c5[_0x567424[_0x5fefd1]['function']],'%s',_0x13457):_0x13457;_0x13457=_0x567424[_0x5fefd1][_0x1abe('0x7b')]?_['replace'](_0x43924a[_0x567424[_0x5fefd1][_0x1abe('0x7b')]],'%s',_0x13457):_0x13457;if(_0x567424[_0x5fefd1][_0x1abe('0x7c')]){_0x20308b[_0x1abe('0x7d')](_0x13457);}_0x567424[_0x5fefd1]['orderBy']&&_0x20308b['order'](_0x13457,_0x567424[_0x5fefd1]['orderBy']===_0x1abe('0x7e')?![]:!![]);_0x20308b[_0x1abe('0x6c')](_0x13457,_0x567424[_0x5fefd1][_0x1abe('0x7f')]||_0x13457);}if(_0x54b36c[_0x1abe('0x80')]){_0x54b36c['joins']=JSON['parse'](_0x54b36c[_0x1abe('0x80')]);for(var _0x559ebf=0x0;_0x559ebf<_0x54b36c[_0x1abe('0x80')][_0x1abe('0x49')];_0x559ebf+=0x1){if(_0x54b36c[_0x1abe('0x80')][_0x559ebf][_0x1abe('0x33')]&&_[_0x1abe('0x81')](_0x1ce8e6,_0x54b36c[_0x1abe('0x80')][_0x559ebf][_0x1abe('0x33')])&&_0x54b36c[_0x1abe('0x80')][_0x559ebf][_0x1abe('0x82')]&&_0x54b36c['joins'][_0x559ebf]['foreignTable']&&_0x54b36c[_0x1abe('0x80')][_0x559ebf][_0x1abe('0x83')]){_0x20308b[_0x54b36c[_0x1abe('0x80')][_0x559ebf][_0x1abe('0x33')]](_0x54b36c['joins'][_0x559ebf][_0x1abe('0x84')],null,util[_0x1abe('0x7b')](_0x1abe('0x85'),_0x54b36c[_0x1abe('0x76')],_0x54b36c['joins'][_0x559ebf]['parentKey'],_0x54b36c[_0x1abe('0x80')][_0x559ebf][_0x1abe('0x84')],_0x54b36c[_0x1abe('0x80')][_0x559ebf][_0x1abe('0x83')]));}}}if(_0x54b36c[_0x1abe('0x86')]){_0x54b36c[_0x1abe('0x86')]=JSON[_0x1abe('0x87')](_0x54b36c[_0x1abe('0x86')]);_0x20308b[_0x1abe('0x3e')](_0x5b7d01(_0x54b36c[_0x1abe('0x86')][_0x1abe('0x7d')]));}_0x33ab1b=_0x20308b[_0x1abe('0x88')]();_0x20308b[_0x1abe('0x1d')](_0x2e9f94);_0x20308b[_0x1abe('0x1c')](0x0);logger[_0x1abe('0x89')](_0x1abe('0x8a'),_0x20308b[_0x1abe('0x8b')]());return dbH[_0x1abe('0x8c')][_0x1abe('0x39')](_0x20308b[_0x1abe('0x8b')](),{'type':dbH['sequelize']['QueryTypes'][_0x1abe('0x8d')]});}})[_0x1abe('0x26')](respondWithResult(_0x137204,null))[_0x1abe('0x45')](handleError(_0x137204,null));};function runReport(_0x5f5b96,_0xcd81d3,_0x23fb87){var _0x200bbf=_0xcd81d3[_0x1abe('0x2c')];var _0x40c856=0xa;var _0x5a9d90=[_0x1abe('0x59'),_0x1abe('0x5a'),'right_join','cross_join'];var _0xfcc419={'SUM':_0x1abe('0x5d'),'COUNT':_0x1abe('0x5e'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x1abe('0x60'),'MIN':_0x1abe('0x61'),'AVG':_0x1abe('0x62'),'GROUP_CONCAT':_0x1abe('0x63'),'GROUP_CONCAT ASC':_0x1abe('0x64'),'GROUP_CONCAT DESC':_0x1abe('0x65')};var _0x3b1621={'SEC_TO_TIME':_0x1abe('0x8e'),'DATE':_0x1abe('0x8f'),'HOUR':_0x1abe('0x66'),'ROUND':_0x1abe('0x90'),'UNIX_TIMESTAMP':_0x1abe('0x67')};var _0x33a025=function(_0x1700c9){return!_['includes']([_0x1abe('0x91'),_0x1abe('0x68'),_0x1abe('0x69'),_0x1abe('0x6a')],_0x1700c9);};var _0xb6fd3f=function(_0x49836f){if(!_0x49836f||!_0x49836f[_0x1abe('0x6b')][_0x1abe('0x49')]){return'';}for(var _0x5a3652='(',_0x447f23=0x0;_0x447f23<_0x49836f['rules']['length'];_0x447f23+=0x1){_0x447f23>0x0&&(_0x5a3652+='\x20'+_0x49836f[_0x1abe('0x92')]+'\x20');_0x5a3652+=_0x49836f[_0x1abe('0x6b')][_0x447f23][_0x1abe('0x7d')]?_0xb6fd3f(_0x49836f[_0x1abe('0x6b')][_0x447f23][_0x1abe('0x7d')]):_0x49836f[_0x1abe('0x6b')][_0x447f23][_0x1abe('0x6c')]+'\x20'+_0x49836f['rules'][_0x447f23][_0x1abe('0x6d')]+(_0x33a025(_0x49836f['rules'][_0x447f23]['condition'])?'\x20'+_0x49836f[_0x1abe('0x6b')][_0x447f23]['value']:'');}return _0x5a3652+')';};var _0x43e1ad={'where':{'id':_0x5f5b96['id']}},_0x1673d2,_0x4d84b5,_0x2bb08d,_0x49bf0a,_0x344f78;_0x43e1ad=_[_0x1abe('0x41')]({},_0x43e1ad,_0x23fb87);return db[_0x1abe('0x30')]['find'](_0x43e1ad)[_0x1abe('0x26')](function(_0x2abe49){if(_0x2abe49){_0x1673d2=_0x2abe49;return _0x2abe49[_0x1abe('0x6f')]();}return null;})[_0x1abe('0x26')](function(_0xe6d4c5){if(_0xe6d4c5){if(!_0xe6d4c5[_0x1abe('0x49')]){throw new db['Sequelize'][(_0x1abe('0x93'))](_0x1abe('0x71'),0x193);}_0x4d84b5=_0xe6d4c5;return db[_0x1abe('0x72')][_0x1abe('0x44')]({'raw':!![]});}return null;})[_0x1abe('0x26')](function(_0x343dde){if(_0x343dde){_0x2bb08d=_[_0x1abe('0x73')](_0x343dde,'id');var _0x438024;var _0x24b360=squel['select']();_0x24b360['from'](_0x1673d2[_0x1abe('0x76')]);for(var _0x1a1a9d=0x0;_0x1a1a9d<_0x4d84b5[_0x1abe('0x49')];_0x1a1a9d+=0x1){_0x438024=_0x4d84b5[_0x1a1a9d]['MetricId']?_0x2bb08d[_0x4d84b5[_0x1a1a9d][_0x1abe('0x77')]][_0x1abe('0x78')]:_0x4d84b5[_0x1a1a9d][_0x1abe('0x6c')];_0x438024=_0x4d84b5[_0x1a1a9d][_0x1abe('0x79')]?_['replace'](_0xfcc419[_0x4d84b5[_0x1a1a9d][_0x1abe('0x79')]],'%s',_0x438024):_0x438024;_0x438024=_0x4d84b5[_0x1a1a9d][_0x1abe('0x7b')]?_['replace'](_0x3b1621[_0x4d84b5[_0x1a1a9d][_0x1abe('0x7b')]],'%s',_0x438024):_0x438024;if(_0x4d84b5[_0x1a1a9d][_0x1abe('0x7c')]){_0x24b360['group'](_0x438024);}_0x4d84b5[_0x1a1a9d][_0x1abe('0x94')]&&_0x24b360['order'](_0x438024,_0x4d84b5[_0x1a1a9d][_0x1abe('0x94')]===_0x1abe('0x7e')?![]:!![]);_0x24b360['field'](_0x438024,_0x4d84b5[_0x1a1a9d][_0x1abe('0x7f')]||_0x438024);}if(_0x1673d2[_0x1abe('0x80')]){_0x1673d2[_0x1abe('0x80')]=JSON['parse'](_0x1673d2['joins']);for(var _0x4197ee=0x0;_0x4197ee<_0x1673d2['joins'][_0x1abe('0x49')];_0x4197ee+=0x1){if(_0x1673d2[_0x1abe('0x80')][_0x4197ee][_0x1abe('0x33')]&&_[_0x1abe('0x81')](_0x5a9d90,_0x1673d2[_0x1abe('0x80')][_0x4197ee]['type'])&&_0x1673d2[_0x1abe('0x80')][_0x4197ee][_0x1abe('0x82')]&&_0x1673d2[_0x1abe('0x80')][_0x4197ee]['foreignTable']&&_0x1673d2[_0x1abe('0x80')][_0x4197ee][_0x1abe('0x83')]){_0x24b360[_0x1673d2[_0x1abe('0x80')][_0x4197ee][_0x1abe('0x33')]](_0x1673d2[_0x1abe('0x80')][_0x4197ee][_0x1abe('0x84')],null,util[_0x1abe('0x7b')](_0x1abe('0x85'),_0x1673d2[_0x1abe('0x76')],_0x1673d2[_0x1abe('0x80')][_0x4197ee][_0x1abe('0x82')],_0x1673d2[_0x1abe('0x80')][_0x4197ee][_0x1abe('0x84')],_0x1673d2[_0x1abe('0x80')][_0x4197ee][_0x1abe('0x83')]));}}}if(_0x1673d2[_0x1abe('0x86')]){_0x1673d2['conditions']=JSON['parse'](_0x1673d2['conditions']);_0x24b360[_0x1abe('0x3e')](_0xb6fd3f(_0x1673d2[_0x1abe('0x86')]['group']));}_0x344f78=_0x24b360['clone']();_0x24b360[_0x1abe('0x1d')](_0x40c856);_0x24b360['offset'](0x0);return;}})[_0x1abe('0x26')](function(){if(_0xcd81d3[_0x1abe('0x95')]===_0x1abe('0x96')){return null;}var _0x23432b=_[_0x1abe('0x41')](_0xcd81d3,{'name':_0xcd81d3[_0x1abe('0x97')]||_0xcd81d3[_0x1abe('0x2c')]||_0x1673d2[_0x1abe('0x2c')],'basename':_0x200bbf,'savename':util[_0x1abe('0x7b')](_0x1abe('0x98'),_0xcd81d3[_0x1abe('0x2c')]||_0x1673d2['name'],require('randomstring')[_0x1abe('0x99')](0x4),_0xcd81d3[_0x1abe('0x95')]||'csv'),'reportId':_0x1673d2['id'],'reportType':'custom'});return db[_0x1abe('0x9a')][_0x1abe('0x4c')](_0x23432b,{'raw':!![]});})['then'](function(_0xda1f04){if(_0x1673d2[_0x1abe('0x76')]===_0x1abe('0x9b')){_0x344f78[_0x1abe('0x3e')](_0x1673d2[_0x1abe('0x76')]+_0x1abe('0x9c'),_0xcd81d3[_0x1abe('0x9d')],_0xcd81d3['endDate']);}else{_0x344f78['where'](_0x1673d2[_0x1abe('0x76')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0xcd81d3[_0x1abe('0x9d')],_0xcd81d3[_0x1abe('0x9e')]);}if(_0xda1f04){logger[_0x1abe('0x9f')]('Run\x20Query:',_0x344f78['toString']());require('child_process')[_0x1abe('0xa0')](path['join'](__dirname,_0x1abe('0xa1'),_0xda1f04[_0x1abe('0x95')]),[_0xda1f04['id'],_0x344f78['toString'](),path['join'](__dirname,_0x1abe('0xa2'),_0xda1f04[_0x1abe('0xa3')]),_0x200bbf]);return _0xda1f04;}else{var _0x21760e=squel['select']();_0x21760e[_0x1abe('0x75')]('('+_0x344f78[_0x1abe('0x8b')]()+')',_0x1abe('0xa4'));_0x21760e['field'](_0x1abe('0xa5'),_0x1abe('0x1f'));_0x344f78['limit'](_0xcd81d3[_0x1abe('0x1d')]||_0x40c856);_0x344f78[_0x1abe('0x1c')](_0xcd81d3['offset']||0x0);return dbH[_0x1abe('0x8c')][_0x1abe('0x39')](_0x21760e[_0x1abe('0x8b')](),{'type':dbH['sequelize'][_0x1abe('0xa6')][_0x1abe('0x8d')]})[_0x1abe('0x26')](function(_0x4962bb){if(!_0x4962bb['length']){_0x49bf0a=0x0;}else{_0x49bf0a=_0x4962bb[0x0][_0x1abe('0x1f')]||0x0;}return dbH[_0x1abe('0x8c')][_0x1abe('0x39')](_0x344f78['toString'](),{'type':dbH[_0x1abe('0x8c')]['QueryTypes'][_0x1abe('0x8d')]});})[_0x1abe('0x26')](function(_0x3ca21a){return{'rows':_0x3ca21a||[],'count':_0x49bf0a};});}});}exports[_0x1abe('0xa7')]=function(_0x3421bd,_0x35b1db){return runReport(_0x3421bd[_0x1abe('0x57')],_0x3421bd['query'],_0x3421bd[_0x1abe('0x42')])[_0x1abe('0x26')](respondWithResult(_0x35b1db,null))[_0x1abe('0x45')](handleError(_0x35b1db,null));};exports[_0x1abe('0xa8')]=runReport;exports[_0x1abe('0x39')]=function(_0x3d5137,_0x225fa){var _0x37e76f=0xa;var _0x2ede05=[_0x1abe('0x59'),_0x1abe('0x5a'),'right_join',_0x1abe('0x5c')];var _0x13a5f1={'SUM':_0x1abe('0x5d'),'COUNT':_0x1abe('0x5e'),'COUNT DISTINCT':_0x1abe('0x5f'),'MAX':_0x1abe('0x60'),'MIN':_0x1abe('0x61'),'AVG':_0x1abe('0x62'),'GROUP_CONCAT':_0x1abe('0x63'),'GROUP_CONCAT ASC':_0x1abe('0x64'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0xa17df7={'SEC_TO_TIME':_0x1abe('0x8e'),'DATE':_0x1abe('0x8f'),'HOUR':_0x1abe('0x66'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x1abe('0x67')};var _0x2d2ed0=function(_0x3e305e){return!_[_0x1abe('0x81')]([_0x1abe('0x91'),_0x1abe('0x68'),_0x1abe('0x69'),_0x1abe('0x6a')],_0x3e305e);};var _0x9fcafd=function(_0x57d328){if(!_0x57d328||!_0x57d328[_0x1abe('0x6b')][_0x1abe('0x49')]){return'';}for(var _0x4e3eab='(',_0x4bb1d9=0x0;_0x4bb1d9<_0x57d328['rules']['length'];_0x4bb1d9+=0x1){_0x4bb1d9>0x0&&(_0x4e3eab+='\x20'+_0x57d328[_0x1abe('0x92')]+'\x20');_0x4e3eab+=_0x57d328['rules'][_0x4bb1d9]['group']?_0x9fcafd(_0x57d328[_0x1abe('0x6b')][_0x4bb1d9]['group']):_0x57d328[_0x1abe('0x6b')][_0x4bb1d9]['field']+'\x20'+_0x57d328['rules'][_0x4bb1d9]['condition']+(_0x2d2ed0(_0x57d328[_0x1abe('0x6b')][_0x4bb1d9][_0x1abe('0x6d')])?'\x20'+_0x57d328[_0x1abe('0x6b')][_0x4bb1d9][_0x1abe('0x6e')]:'');}return _0x4e3eab+')';};var _0xd013d4={'where':{'id':_0x3d5137['params']['id']}},_0xf2660,_0xb7ef29,_0x4036f7,_0x4d58da,_0x4884cd;_0xd013d4=_[_0x1abe('0x41')]({},_0xd013d4,_0x3d5137[_0x1abe('0x42')]);return db[_0x1abe('0x30')][_0x1abe('0x4b')](_0xd013d4)[_0x1abe('0x26')](function(_0x4ee4be){if(_0x4ee4be){_0xf2660=_0x4ee4be;return _0x4ee4be['getFields']();}return null;})[_0x1abe('0x26')](function(_0x24aa67){if(_0x24aa67){if(!_0x24aa67['length']){throw new db[(_0x1abe('0x70'))][(_0x1abe('0x93'))](_0x1abe('0x71'),0x193);}_0xb7ef29=_0x24aa67;return db[_0x1abe('0x72')][_0x1abe('0x44')]({'raw':!![]});}return null;})[_0x1abe('0x26')](function(_0x5a6039){if(_0x5a6039){_0x4036f7=_[_0x1abe('0x73')](_0x5a6039,'id');var _0x3c9d64;var _0x43321c=squel[_0x1abe('0x74')]();_0x43321c['from'](_0xf2660['table']);for(var _0x4a7788=0x0;_0x4a7788<_0xb7ef29[_0x1abe('0x49')];_0x4a7788+=0x1){_0x3c9d64=_0xb7ef29[_0x4a7788]['MetricId']?_0x4036f7[_0xb7ef29[_0x4a7788]['MetricId']][_0x1abe('0x78')]:_0xb7ef29[_0x4a7788][_0x1abe('0x6c')];_0x3c9d64=_0xb7ef29[_0x4a7788][_0x1abe('0x79')]?_['replace'](_0x13a5f1[_0xb7ef29[_0x4a7788][_0x1abe('0x79')]],'%s',_0x3c9d64):_0x3c9d64;_0x3c9d64=_0xb7ef29[_0x4a7788][_0x1abe('0x7b')]?_[_0x1abe('0x7a')](_0xa17df7[_0xb7ef29[_0x4a7788]['format']],'%s',_0x3c9d64):_0x3c9d64;if(_0xb7ef29[_0x4a7788]['groupBy']){_0x43321c[_0x1abe('0x7d')](_0x3c9d64);}_0xb7ef29[_0x4a7788][_0x1abe('0x94')]&&_0x43321c['order'](_0x3c9d64,_0xb7ef29[_0x4a7788][_0x1abe('0x94')]==='DESC'?![]:!![]);_0x43321c[_0x1abe('0x6c')](_0x3c9d64,_0xb7ef29[_0x4a7788][_0x1abe('0x7f')]||_0x3c9d64);}if(_0xf2660[_0x1abe('0x80')]){_0xf2660[_0x1abe('0x80')]=JSON[_0x1abe('0x87')](_0xf2660[_0x1abe('0x80')]);for(var _0xd2fc1=0x0;_0xd2fc1<_0xf2660[_0x1abe('0x80')]['length'];_0xd2fc1+=0x1){if(_0xf2660['joins'][_0xd2fc1][_0x1abe('0x33')]&&_['includes'](_0x2ede05,_0xf2660[_0x1abe('0x80')][_0xd2fc1]['type'])&&_0xf2660['joins'][_0xd2fc1]['parentKey']&&_0xf2660[_0x1abe('0x80')][_0xd2fc1][_0x1abe('0x84')]&&_0xf2660[_0x1abe('0x80')][_0xd2fc1]['foreignKey']){_0x43321c[_0xf2660['joins'][_0xd2fc1][_0x1abe('0x33')]](_0xf2660[_0x1abe('0x80')][_0xd2fc1][_0x1abe('0x84')],null,util[_0x1abe('0x7b')](_0x1abe('0x85'),_0xf2660[_0x1abe('0x76')],_0xf2660[_0x1abe('0x80')][_0xd2fc1][_0x1abe('0x82')],_0xf2660[_0x1abe('0x80')][_0xd2fc1][_0x1abe('0x84')],_0xf2660['joins'][_0xd2fc1][_0x1abe('0x83')]));}}}if(_0xf2660[_0x1abe('0x86')]){_0xf2660['conditions']=JSON[_0x1abe('0x87')](_0xf2660['conditions']);_0x43321c[_0x1abe('0x3e')](_0x9fcafd(_0xf2660[_0x1abe('0x86')][_0x1abe('0x7d')]));}_0x4884cd=_0x43321c['clone']();_0x43321c['limit'](_0x37e76f);_0x43321c[_0x1abe('0x1c')](0x0);logger[_0x1abe('0x89')](_0x1abe('0x8a'),_0x43321c[_0x1abe('0x8b')]());return dbH[_0x1abe('0x8c')][_0x1abe('0x39')](_0x43321c[_0x1abe('0x8b')](),{'type':dbH['sequelize'][_0x1abe('0xa6')][_0x1abe('0x8d')]});}})[_0x1abe('0x26')](function(){return{'sql':_0x4884cd[_0x1abe('0x8b')]()};})[_0x1abe('0x26')](respondWithResult(_0x225fa,null))['catch'](handleError(_0x225fa,null));};