Built motion from commit (unavailable).|2.3.1
[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 _0xf2a6=['util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','../../components/auth/service','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','status','count','offset','limit','Content-Range','json','apply','reject','save','then','destroy','get','CustomReports','UserProfileResource','error','name','send','index','AnalyticCustomReport','rawAttributes','keys','filters','intersection','model','attributes','fields','query','nolimit','sort','where','pick','filter','merge','map','type','key','VIRTUAL','includeAll','include','rows','catch','show','params','length','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Reports','UserProfileSection','find','userProfileId','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','join','left_join','right_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)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','condition','options','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','field','function','replace','groupBy','order','orderBy','DESC','alias','joins','parse','foreignTable','format','%s.%s\x20=\x20%s.%s','parentKey','foreignKey','conditions','clone','debug','Limited\x20Query:','sequelize','toString','QueryTypes','HOUR(%s)','value','Sequelize','SELECT','No\x20available\x20data','output','fullPath','%s-%s.%s','randomstring','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','child_process','fork','../../files/reports','savename','countTable','runReport','cross_join','html-pdf','fast-json-patch','moment','bluebird','mustache'];(function(_0xc4001c,_0x1bf8f0){var _0x49f7bc=function(_0x1059b8){while(--_0x1059b8){_0xc4001c['push'](_0xc4001c['shift']());}};_0x49f7bc(++_0x1bf8f0);}(_0xf2a6,0x13d));var _0x6f2a=function(_0x376a86,_0x587869){_0x376a86=_0x376a86-0x0;var _0x5cda73=_0xf2a6[_0x376a86];return _0x5cda73;};'use strict';var pdf=require(_0x6f2a('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6f2a('0x1'));var rp=require('request-promise');var moment=require(_0x6f2a('0x2'));var BPromise=require(_0x6f2a('0x3'));var Mustache=require(_0x6f2a('0x4'));var util=require(_0x6f2a('0x5'));var path=require(_0x6f2a('0x6'));var sox=require(_0x6f2a('0x7'));var csv=require(_0x6f2a('0x8'));var ejs=require(_0x6f2a('0x9'));var fs=require('fs');var _=require(_0x6f2a('0xa'));var squel=require(_0x6f2a('0xb'));var crypto=require('crypto');var jsforce=require(_0x6f2a('0xc'));var deskjs=require(_0x6f2a('0xd'));var toCsv=require(_0x6f2a('0x8'));var querystring=require(_0x6f2a('0xe'));var Papa=require('papaparse');var authService=require(_0x6f2a('0xf'));var hardwareService=require('../../config/license/hardware');var Redis=require(_0x6f2a('0x10'));var qs=require(_0x6f2a('0x11'));var logger=require(_0x6f2a('0x12'))('api');var utils=require(_0x6f2a('0x13'));var config=require('../../config/environment');var db=require(_0x6f2a('0x14'))['db'];function respondWithStatusCode(_0x398822,_0x1c2665){_0x1c2665=_0x1c2665||0xcc;return function(_0x59df4e){if(_0x59df4e){return _0x398822[_0x6f2a('0x15')](_0x1c2665);}return _0x398822['status'](_0x1c2665)[_0x6f2a('0x16')]();};}function respondWithResult(_0x45eab9,_0x37bed1){_0x37bed1=_0x37bed1||0xc8;return function(_0x421e15){if(_0x421e15){return _0x45eab9[_0x6f2a('0x17')](_0x37bed1)['json'](_0x421e15);}};}function respondWithFilteredResult(_0x18fa0a,_0x414498){return function(_0x27ca04){if(_0x27ca04){var _0x44b317=_0x27ca04[_0x6f2a('0x18')],_0x1057f2=_0x414498[_0x6f2a('0x19')],_0x3dfc44=_0x414498[_0x6f2a('0x19')]+_0x414498[_0x6f2a('0x1a')],_0x276e38;if(_0x3dfc44>=_0x44b317){_0x3dfc44=_0x44b317;_0x276e38=0xc8;}else{_0x276e38=0xce;}_0x18fa0a[_0x6f2a('0x17')](_0x276e38);return _0x18fa0a['set'](_0x6f2a('0x1b'),_0x1057f2+'-'+_0x3dfc44+'/'+_0x44b317)[_0x6f2a('0x1c')](_0x27ca04);}return null;};}function patchUpdates(_0x55d117){return function(_0x1ff155){try{jsonpatch[_0x6f2a('0x1d')](_0x1ff155,_0x55d117,!![]);}catch(_0x43602b){return BPromise[_0x6f2a('0x1e')](_0x43602b);}return _0x1ff155[_0x6f2a('0x1f')]();};}function saveUpdates(_0x152052,_0x3e996b){return function(_0x33554f){if(_0x33554f){return _0x33554f['update'](_0x152052)[_0x6f2a('0x20')](function(_0x20e7ff){return _0x20e7ff;});}return null;};}function removeEntity(_0x1bb113,_0x27f139){return function(_0x1da29f){if(_0x1da29f){return _0x1da29f[_0x6f2a('0x21')]()[_0x6f2a('0x20')](function(){var _0x5278b8=_0x1da29f[_0x6f2a('0x22')]({'plain':!![]});var _0x590c40=_0x6f2a('0x23');return db[_0x6f2a('0x24')][_0x6f2a('0x21')]({'where':{'type':_0x590c40,'resourceId':_0x5278b8['id']}})['then'](function(){return _0x1da29f;});})[_0x6f2a('0x20')](function(){_0x1bb113[_0x6f2a('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x55c1bc,_0x1dabde){return function(_0x36c0b7){if(!_0x36c0b7){_0x55c1bc[_0x6f2a('0x15')](0x194);}return _0x36c0b7;};}function handleError(_0xf5105e,_0x6b781b){_0x6b781b=_0x6b781b||0x1f4;return function(_0x5efdda){logger[_0x6f2a('0x25')](_0x5efdda['stack']);if(_0x5efdda[_0x6f2a('0x26')]){delete _0x5efdda[_0x6f2a('0x26')];}_0xf5105e['status'](_0x6b781b)[_0x6f2a('0x27')](_0x5efdda);};}exports[_0x6f2a('0x28')]=function(_0x498d7e,_0x4035d8){var _0x1ca729={},_0x28d546={},_0x39a911={'count':0x0,'rows':[]};var _0x347767=db[_0x6f2a('0x29')][_0x6f2a('0x2a')];_0x28d546['model']=_[_0x6f2a('0x2b')](_0x347767);_0x28d546['query']=_[_0x6f2a('0x2b')](_0x498d7e['query']);_0x28d546[_0x6f2a('0x2c')]=_[_0x6f2a('0x2d')](_0x28d546[_0x6f2a('0x2e')],_0x28d546['query']);_0x1ca729[_0x6f2a('0x2f')]=_['intersection'](_0x28d546[_0x6f2a('0x2e')],qs[_0x6f2a('0x30')](_0x498d7e['query'][_0x6f2a('0x30')]));_0x1ca729[_0x6f2a('0x2f')]=_0x1ca729[_0x6f2a('0x2f')]['length']?_0x1ca729['attributes']:_0x28d546['model'];if(!_0x498d7e[_0x6f2a('0x31')]['hasOwnProperty'](_0x6f2a('0x32'))){_0x1ca729[_0x6f2a('0x1a')]=qs['limit'](_0x498d7e[_0x6f2a('0x31')][_0x6f2a('0x1a')]);_0x1ca729[_0x6f2a('0x19')]=qs[_0x6f2a('0x19')](_0x498d7e['query'][_0x6f2a('0x19')]);}_0x1ca729['order']=qs[_0x6f2a('0x33')](_0x498d7e[_0x6f2a('0x31')][_0x6f2a('0x33')]);_0x1ca729[_0x6f2a('0x34')]=qs[_0x6f2a('0x2c')](_[_0x6f2a('0x35')](_0x498d7e[_0x6f2a('0x31')],_0x28d546['filters']));if(_0x498d7e[_0x6f2a('0x31')][_0x6f2a('0x36')]){_0x1ca729[_0x6f2a('0x34')]=_[_0x6f2a('0x37')](_0x1ca729[_0x6f2a('0x34')],{'$or':_[_0x6f2a('0x38')](_0x347767,function(_0x9506ae){if(_0x9506ae[_0x6f2a('0x39')][_0x6f2a('0x3a')]!==_0x6f2a('0x3b')){var _0x33b33b={};_0x33b33b[_0x9506ae['field']]={'$like':'%'+_0x498d7e[_0x6f2a('0x31')][_0x6f2a('0x36')]+'%'};return _0x33b33b;}})});}_0x1ca729=_[_0x6f2a('0x37')]({},_0x1ca729,_0x498d7e['options']);var _0x38b19c={'where':_0x1ca729[_0x6f2a('0x34')]};return db[_0x6f2a('0x29')][_0x6f2a('0x18')](_0x38b19c)[_0x6f2a('0x20')](function(_0x35ce69){_0x39a911[_0x6f2a('0x18')]=_0x35ce69;if(_0x498d7e[_0x6f2a('0x31')][_0x6f2a('0x3c')]){_0x1ca729[_0x6f2a('0x3d')]=[{'all':!![]}];}return db[_0x6f2a('0x29')]['findAll'](_0x1ca729);})[_0x6f2a('0x20')](function(_0xccc1c){_0x39a911[_0x6f2a('0x3e')]=_0xccc1c;return _0x39a911;})['then'](respondWithFilteredResult(_0x4035d8,_0x1ca729))[_0x6f2a('0x3f')](handleError(_0x4035d8,null));};exports[_0x6f2a('0x40')]=function(_0x14f869,_0x26e1ea){var _0x1ef96d={'raw':![],'where':{'id':_0x14f869[_0x6f2a('0x41')]['id']}},_0x2c5fbb={};_0x2c5fbb[_0x6f2a('0x2e')]=_['keys'](db[_0x6f2a('0x29')]['rawAttributes']);_0x2c5fbb['query']=_[_0x6f2a('0x2b')](_0x14f869[_0x6f2a('0x31')]);_0x2c5fbb[_0x6f2a('0x2c')]=_[_0x6f2a('0x2d')](_0x2c5fbb['model'],_0x2c5fbb[_0x6f2a('0x31')]);_0x1ef96d[_0x6f2a('0x2f')]=_[_0x6f2a('0x2d')](_0x2c5fbb[_0x6f2a('0x2e')],qs[_0x6f2a('0x30')](_0x14f869[_0x6f2a('0x31')]['fields']));_0x1ef96d[_0x6f2a('0x2f')]=_0x1ef96d[_0x6f2a('0x2f')][_0x6f2a('0x42')]?_0x1ef96d[_0x6f2a('0x2f')]:_0x2c5fbb[_0x6f2a('0x2e')];if(_0x14f869[_0x6f2a('0x31')]['includeAll']){_0x1ef96d['include']=[{'all':!![]}];}_0x1ef96d=_[_0x6f2a('0x37')]({},_0x1ef96d,_0x14f869['options']);return db[_0x6f2a('0x29')]['find'](_0x1ef96d)[_0x6f2a('0x20')](handleEntityNotFound(_0x26e1ea,null))[_0x6f2a('0x20')](respondWithResult(_0x26e1ea,null))['catch'](handleError(_0x26e1ea,null));};exports['create']=function(_0x552b85,_0x2265af){return db['AnalyticCustomReport']['create'](_0x552b85[_0x6f2a('0x43')],{})[_0x6f2a('0x20')](function(_0x348ed1){var _0x1fc47b=_0x552b85['user'][_0x6f2a('0x22')]({'plain':!![]});if(!_0x1fc47b)throw new Error(_0x6f2a('0x44'));if(_0x1fc47b[_0x6f2a('0x45')]===_0x6f2a('0x46')){var _0x3d8f60=_0x348ed1[_0x6f2a('0x22')]({'plain':!![]});var _0x57a8e7=_0x6f2a('0x47');return db[_0x6f2a('0x48')][_0x6f2a('0x49')]({'where':{'name':_0x57a8e7,'userProfileId':_0x1fc47b[_0x6f2a('0x4a')]},'raw':!![]})[_0x6f2a('0x20')](function(_0x18734e){if(_0x18734e&&_0x18734e['autoAssociation']===0x0){return db[_0x6f2a('0x24')][_0x6f2a('0x4b')]({'name':_0x3d8f60[_0x6f2a('0x26')],'resourceId':_0x3d8f60['id'],'type':'CustomReports','sectionId':_0x18734e['id']},{})['then'](function(){return _0x348ed1;});}else{return _0x348ed1;}})[_0x6f2a('0x3f')](function(_0x2ab63c){logger[_0x6f2a('0x25')](_0x6f2a('0x4c'),_0x2ab63c);throw _0x2ab63c;});}return _0x348ed1;})[_0x6f2a('0x20')](respondWithResult(_0x2265af,0xc9))[_0x6f2a('0x3f')](handleError(_0x2265af,null));};exports[_0x6f2a('0x4d')]=function(_0x68d57c,_0x39f0c4){if(_0x68d57c[_0x6f2a('0x43')]['id']){delete _0x68d57c[_0x6f2a('0x43')]['id'];}return db[_0x6f2a('0x29')][_0x6f2a('0x49')]({'where':{'id':_0x68d57c['params']['id']}})[_0x6f2a('0x20')](handleEntityNotFound(_0x39f0c4,null))['then'](saveUpdates(_0x68d57c[_0x6f2a('0x43')],null))['then'](respondWithResult(_0x39f0c4,null))[_0x6f2a('0x3f')](handleError(_0x39f0c4,null));};exports['destroy']=function(_0x13d759,_0x1c1ad9){return db[_0x6f2a('0x29')]['find']({'where':{'id':_0x13d759[_0x6f2a('0x41')]['id']}})['then'](handleEntityNotFound(_0x1c1ad9,null))[_0x6f2a('0x20')](removeEntity(_0x1c1ad9,null))['catch'](handleError(_0x1c1ad9,null));};exports['preview']=function(_0x2e0078,_0x3a213c){var _0x1a5afb=0xa;var _0x33468e=[_0x6f2a('0x4e'),_0x6f2a('0x4f'),_0x6f2a('0x50'),'cross_join'];var _0x23312c={'SUM':_0x6f2a('0x51'),'COUNT':_0x6f2a('0x52'),'COUNT DISTINCT':_0x6f2a('0x53'),'MAX':_0x6f2a('0x54'),'MIN':_0x6f2a('0x55'),'AVG':_0x6f2a('0x56'),'GROUP_CONCAT':_0x6f2a('0x57'),'GROUP_CONCAT ASC':_0x6f2a('0x58'),'GROUP_CONCAT DESC':_0x6f2a('0x59')};var _0x2c9133={'SEC_TO_TIME':_0x6f2a('0x5a'),'DATE':_0x6f2a('0x5b'),'HOUR':'HOUR(%s)','ROUND':_0x6f2a('0x5c'),'UNIX_TIMESTAMP':_0x6f2a('0x5d')};var _0x19da53=function(_0x172e25){return!_[_0x6f2a('0x5e')]([_0x6f2a('0x5f'),_0x6f2a('0x60'),_0x6f2a('0x61'),_0x6f2a('0x62')],_0x172e25);};var _0x566477=function(_0x1ae081){if(!_0x1ae081||!_0x1ae081[_0x6f2a('0x63')][_0x6f2a('0x42')]){return'';}for(var _0x46099e='(',_0x384778=0x0;_0x384778<_0x1ae081[_0x6f2a('0x63')][_0x6f2a('0x42')];_0x384778+=0x1){_0x384778>0x0&&(_0x46099e+='\x20'+_0x1ae081[_0x6f2a('0x64')]+'\x20');_0x46099e+=_0x1ae081[_0x6f2a('0x63')][_0x384778][_0x6f2a('0x65')]?_0x566477(_0x1ae081['rules'][_0x384778][_0x6f2a('0x65')]):_0x1ae081[_0x6f2a('0x63')][_0x384778]['field']+'\x20'+_0x1ae081[_0x6f2a('0x63')][_0x384778][_0x6f2a('0x66')]+(_0x19da53(_0x1ae081[_0x6f2a('0x63')][_0x384778][_0x6f2a('0x66')])?'\x20'+_0x1ae081['rules'][_0x384778]['value']:'');}return _0x46099e+')';};var _0x3097e8={'where':{'id':_0x2e0078[_0x6f2a('0x41')]['id']}},_0x174cc,_0x4eb5ab,_0x3518de,_0x190f60,_0x1d370f;_0x3097e8=_['merge']({},_0x3097e8,_0x2e0078[_0x6f2a('0x67')]);return db[_0x6f2a('0x29')][_0x6f2a('0x49')](_0x3097e8)[_0x6f2a('0x20')](function(_0x24881b){if(_0x24881b){_0x174cc=_0x24881b;return _0x24881b[_0x6f2a('0x68')]();}return null;})[_0x6f2a('0x20')](function(_0x1e8063){if(_0x1e8063){if(!_0x1e8063[_0x6f2a('0x42')]){throw new db['Sequelize'][(_0x6f2a('0x69'))](_0x6f2a('0x6a'),0x193);}_0x4eb5ab=_0x1e8063;return db[_0x6f2a('0x6b')][_0x6f2a('0x6c')]({'raw':!![]});}return null;})[_0x6f2a('0x20')](function(_0x3bde9d){if(_0x3bde9d){_0x3518de=_[_0x6f2a('0x6d')](_0x3bde9d,'id');var _0x2a8d40;var _0x3fe6e3=squel[_0x6f2a('0x6e')]();_0x3fe6e3[_0x6f2a('0x6f')](_0x174cc[_0x6f2a('0x70')]);for(var _0x1f7cd0=0x0;_0x1f7cd0<_0x4eb5ab[_0x6f2a('0x42')];_0x1f7cd0+=0x1){_0x2a8d40=_0x4eb5ab[_0x1f7cd0][_0x6f2a('0x71')]?_0x3518de[_0x4eb5ab[_0x1f7cd0][_0x6f2a('0x71')]][_0x6f2a('0x72')]:_0x4eb5ab[_0x1f7cd0][_0x6f2a('0x73')];_0x2a8d40=_0x4eb5ab[_0x1f7cd0][_0x6f2a('0x74')]?_[_0x6f2a('0x75')](_0x23312c[_0x4eb5ab[_0x1f7cd0][_0x6f2a('0x74')]],'%s',_0x2a8d40):_0x2a8d40;_0x2a8d40=_0x4eb5ab[_0x1f7cd0]['format']?_[_0x6f2a('0x75')](_0x2c9133[_0x4eb5ab[_0x1f7cd0]['format']],'%s',_0x2a8d40):_0x2a8d40;if(_0x4eb5ab[_0x1f7cd0][_0x6f2a('0x76')]){_0x3fe6e3[_0x6f2a('0x65')](_0x2a8d40);}_0x4eb5ab[_0x1f7cd0]['orderBy']&&_0x3fe6e3[_0x6f2a('0x77')](_0x2a8d40,_0x4eb5ab[_0x1f7cd0][_0x6f2a('0x78')]===_0x6f2a('0x79')?![]:!![]);_0x3fe6e3[_0x6f2a('0x73')](_0x2a8d40,_0x4eb5ab[_0x1f7cd0][_0x6f2a('0x7a')]||_0x2a8d40);}if(_0x174cc['joins']){_0x174cc[_0x6f2a('0x7b')]=JSON[_0x6f2a('0x7c')](_0x174cc['joins']);for(var _0x2ec209=0x0;_0x2ec209<_0x174cc['joins'][_0x6f2a('0x42')];_0x2ec209+=0x1){if(_0x174cc[_0x6f2a('0x7b')][_0x2ec209]['type']&&_[_0x6f2a('0x5e')](_0x33468e,_0x174cc[_0x6f2a('0x7b')][_0x2ec209]['type'])&&_0x174cc['joins'][_0x2ec209]['parentKey']&&_0x174cc['joins'][_0x2ec209]['foreignTable']&&_0x174cc[_0x6f2a('0x7b')][_0x2ec209]['foreignKey']){_0x3fe6e3[_0x174cc[_0x6f2a('0x7b')][_0x2ec209][_0x6f2a('0x39')]](_0x174cc['joins'][_0x2ec209][_0x6f2a('0x7d')],null,util[_0x6f2a('0x7e')](_0x6f2a('0x7f'),_0x174cc[_0x6f2a('0x70')],_0x174cc['joins'][_0x2ec209][_0x6f2a('0x80')],_0x174cc[_0x6f2a('0x7b')][_0x2ec209][_0x6f2a('0x7d')],_0x174cc[_0x6f2a('0x7b')][_0x2ec209][_0x6f2a('0x81')]));}}}if(_0x174cc[_0x6f2a('0x82')]){_0x174cc['conditions']=JSON[_0x6f2a('0x7c')](_0x174cc[_0x6f2a('0x82')]);_0x3fe6e3[_0x6f2a('0x34')](_0x566477(_0x174cc['conditions']['group']));}_0x1d370f=_0x3fe6e3[_0x6f2a('0x83')]();_0x3fe6e3[_0x6f2a('0x1a')](_0x1a5afb);_0x3fe6e3[_0x6f2a('0x19')](0x0);logger[_0x6f2a('0x84')](_0x6f2a('0x85'),_0x3fe6e3['toString']());return db[_0x6f2a('0x86')]['query'](_0x3fe6e3[_0x6f2a('0x87')](),{'type':db[_0x6f2a('0x86')][_0x6f2a('0x88')]['SELECT']});}})['then'](respondWithResult(_0x3a213c,null))[_0x6f2a('0x3f')](handleError(_0x3a213c,null));};function runReport(_0x4aac3f,_0x56f910,_0x19bb11){var _0x16adb6=_0x56f910[_0x6f2a('0x26')];var _0x302cc8=0xa;var _0x25c235=[_0x6f2a('0x4e'),_0x6f2a('0x4f'),_0x6f2a('0x50'),'cross_join'];var _0x99e053={'SUM':_0x6f2a('0x51'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x6f2a('0x53'),'MAX':'MAX(%s)','MIN':_0x6f2a('0x55'),'AVG':_0x6f2a('0x56'),'GROUP_CONCAT':_0x6f2a('0x57'),'GROUP_CONCAT ASC':_0x6f2a('0x58'),'GROUP_CONCAT DESC':_0x6f2a('0x59')};var _0x5cbbe3={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x6f2a('0x5b'),'HOUR':_0x6f2a('0x89'),'ROUND':_0x6f2a('0x5c'),'UNIX_TIMESTAMP':_0x6f2a('0x5d')};var _0x1f4fd8=function(_0x564670){return!_['includes']([_0x6f2a('0x5f'),_0x6f2a('0x60'),_0x6f2a('0x61'),_0x6f2a('0x62')],_0x564670);};var _0x1cf15c=function(_0x25731b){if(!_0x25731b||!_0x25731b[_0x6f2a('0x63')][_0x6f2a('0x42')]){return'';}for(var _0x4e054c='(',_0x3777eb=0x0;_0x3777eb<_0x25731b[_0x6f2a('0x63')][_0x6f2a('0x42')];_0x3777eb+=0x1){_0x3777eb>0x0&&(_0x4e054c+='\x20'+_0x25731b[_0x6f2a('0x64')]+'\x20');_0x4e054c+=_0x25731b[_0x6f2a('0x63')][_0x3777eb][_0x6f2a('0x65')]?_0x1cf15c(_0x25731b[_0x6f2a('0x63')][_0x3777eb][_0x6f2a('0x65')]):_0x25731b['rules'][_0x3777eb]['field']+'\x20'+_0x25731b[_0x6f2a('0x63')][_0x3777eb][_0x6f2a('0x66')]+(_0x1f4fd8(_0x25731b[_0x6f2a('0x63')][_0x3777eb][_0x6f2a('0x66')])?'\x20'+_0x25731b[_0x6f2a('0x63')][_0x3777eb][_0x6f2a('0x8a')]:'');}return _0x4e054c+')';};var _0x4e31bd={'where':{'id':_0x4aac3f['id']}},_0x2550e0,_0x47390b,_0x510bd0,_0x372680,_0x295b8a;_0x4e31bd=_[_0x6f2a('0x37')]({},_0x4e31bd,_0x19bb11);return db['AnalyticCustomReport'][_0x6f2a('0x49')](_0x4e31bd)[_0x6f2a('0x20')](function(_0x49f478){if(_0x49f478){_0x2550e0=_0x49f478;return _0x49f478[_0x6f2a('0x68')]();}return null;})[_0x6f2a('0x20')](function(_0x3d2e9f){if(_0x3d2e9f){if(!_0x3d2e9f[_0x6f2a('0x42')]){throw new db[(_0x6f2a('0x8b'))][(_0x6f2a('0x69'))](_0x6f2a('0x6a'),0x193);}_0x47390b=_0x3d2e9f;return db[_0x6f2a('0x6b')][_0x6f2a('0x6c')]({'raw':!![]});}return null;})['then'](function(_0x198038){if(_0x198038){_0x510bd0=_[_0x6f2a('0x6d')](_0x198038,'id');var _0x3ee180;var _0x53b9c=squel[_0x6f2a('0x6e')]();_0x53b9c['from'](_0x2550e0['table']);for(var _0x41bdb0=0x0;_0x41bdb0<_0x47390b[_0x6f2a('0x42')];_0x41bdb0+=0x1){_0x3ee180=_0x47390b[_0x41bdb0][_0x6f2a('0x71')]?_0x510bd0[_0x47390b[_0x41bdb0]['MetricId']]['metric']:_0x47390b[_0x41bdb0][_0x6f2a('0x73')];_0x3ee180=_0x47390b[_0x41bdb0][_0x6f2a('0x74')]?_[_0x6f2a('0x75')](_0x99e053[_0x47390b[_0x41bdb0][_0x6f2a('0x74')]],'%s',_0x3ee180):_0x3ee180;_0x3ee180=_0x47390b[_0x41bdb0][_0x6f2a('0x7e')]?_[_0x6f2a('0x75')](_0x5cbbe3[_0x47390b[_0x41bdb0]['format']],'%s',_0x3ee180):_0x3ee180;if(_0x47390b[_0x41bdb0][_0x6f2a('0x76')]){_0x53b9c[_0x6f2a('0x65')](_0x3ee180);}_0x47390b[_0x41bdb0]['orderBy']&&_0x53b9c['order'](_0x3ee180,_0x47390b[_0x41bdb0][_0x6f2a('0x78')]===_0x6f2a('0x79')?![]:!![]);_0x53b9c[_0x6f2a('0x73')](_0x3ee180,_0x47390b[_0x41bdb0][_0x6f2a('0x7a')]||_0x3ee180);}if(_0x2550e0['joins']){_0x2550e0[_0x6f2a('0x7b')]=JSON['parse'](_0x2550e0[_0x6f2a('0x7b')]);for(var _0x311bc1=0x0;_0x311bc1<_0x2550e0[_0x6f2a('0x7b')]['length'];_0x311bc1+=0x1){if(_0x2550e0[_0x6f2a('0x7b')][_0x311bc1][_0x6f2a('0x39')]&&_['includes'](_0x25c235,_0x2550e0[_0x6f2a('0x7b')][_0x311bc1][_0x6f2a('0x39')])&&_0x2550e0[_0x6f2a('0x7b')][_0x311bc1][_0x6f2a('0x80')]&&_0x2550e0[_0x6f2a('0x7b')][_0x311bc1][_0x6f2a('0x7d')]&&_0x2550e0['joins'][_0x311bc1][_0x6f2a('0x81')]){_0x53b9c[_0x2550e0[_0x6f2a('0x7b')][_0x311bc1][_0x6f2a('0x39')]](_0x2550e0[_0x6f2a('0x7b')][_0x311bc1][_0x6f2a('0x7d')],null,util[_0x6f2a('0x7e')](_0x6f2a('0x7f'),_0x2550e0[_0x6f2a('0x70')],_0x2550e0[_0x6f2a('0x7b')][_0x311bc1][_0x6f2a('0x80')],_0x2550e0['joins'][_0x311bc1][_0x6f2a('0x7d')],_0x2550e0[_0x6f2a('0x7b')][_0x311bc1][_0x6f2a('0x81')]));}}}if(_0x2550e0[_0x6f2a('0x82')]){_0x2550e0[_0x6f2a('0x82')]=JSON[_0x6f2a('0x7c')](_0x2550e0['conditions']);_0x53b9c[_0x6f2a('0x34')](_0x1cf15c(_0x2550e0['conditions'][_0x6f2a('0x65')]));}_0x295b8a=_0x53b9c[_0x6f2a('0x83')]();_0x53b9c[_0x6f2a('0x1a')](_0x302cc8);_0x53b9c[_0x6f2a('0x19')](0x0);logger['debug'](_0x6f2a('0x85'),_0x53b9c[_0x6f2a('0x87')]());return db['sequelize'][_0x6f2a('0x31')](_0x53b9c[_0x6f2a('0x87')](),{'type':db[_0x6f2a('0x86')]['QueryTypes'][_0x6f2a('0x8c')]});}})[_0x6f2a('0x20')](function(_0xec62e){if(!_0xec62e[_0x6f2a('0x42')]){throw new db[(_0x6f2a('0x8b'))][(_0x6f2a('0x69'))](_0x6f2a('0x8d'),0xcc);}if(_0x56f910[_0x6f2a('0x8e')]==='web'){return null;}var _0x3119b5=_[_0x6f2a('0x37')](_0x56f910,{'name':_0x56f910[_0x6f2a('0x8f')]||_0x56f910[_0x6f2a('0x26')]||_0x2550e0[_0x6f2a('0x26')],'basename':_0x16adb6,'savename':util[_0x6f2a('0x7e')](_0x6f2a('0x90'),_0x56f910[_0x6f2a('0x26')]||_0x2550e0[_0x6f2a('0x26')],require(_0x6f2a('0x91'))['generate'](0x4),_0x56f910[_0x6f2a('0x8e')]||'csv'),'reportId':_0x2550e0['id'],'reportType':_0x6f2a('0x92')});return db[_0x6f2a('0x93')]['create'](_0x3119b5,{'raw':!![]});})[_0x6f2a('0x20')](function(_0x488eba){if(_0x2550e0[_0x6f2a('0x70')]===_0x6f2a('0x94')){_0x295b8a[_0x6f2a('0x34')](_0x2550e0[_0x6f2a('0x70')]+_0x6f2a('0x95'),_0x56f910[_0x6f2a('0x96')],_0x56f910[_0x6f2a('0x97')]);}else{_0x295b8a['where'](_0x2550e0[_0x6f2a('0x70')]+_0x6f2a('0x98'),_0x56f910[_0x6f2a('0x96')],_0x56f910[_0x6f2a('0x97')]);}if(_0x488eba){logger['info'](_0x6f2a('0x99'),_0x295b8a[_0x6f2a('0x87')]());require(_0x6f2a('0x9a'))[_0x6f2a('0x9b')](path[_0x6f2a('0x4e')](__dirname,'../../components/export/',_0x488eba['output']),[_0x488eba['id'],_0x295b8a['toString'](),path[_0x6f2a('0x4e')](__dirname,_0x6f2a('0x9c'),_0x488eba[_0x6f2a('0x9d')]),_0x16adb6]);return _0x488eba;}else{var _0x5862de=squel[_0x6f2a('0x6e')]();_0x5862de['from']('('+_0x295b8a[_0x6f2a('0x87')]()+')',_0x6f2a('0x9e'));_0x5862de[_0x6f2a('0x73')]('COUNT(*)',_0x6f2a('0x18'));_0x295b8a[_0x6f2a('0x1a')](_0x56f910[_0x6f2a('0x1a')]||_0x302cc8);_0x295b8a[_0x6f2a('0x19')](_0x56f910[_0x6f2a('0x19')]||0x0);return db[_0x6f2a('0x86')]['query'](_0x5862de[_0x6f2a('0x87')](),{'type':db[_0x6f2a('0x86')][_0x6f2a('0x88')]['SELECT']})[_0x6f2a('0x20')](function(_0x7e6409){if(!_0x7e6409['length']){_0x372680=0x0;}else{_0x372680=_0x7e6409[0x0][_0x6f2a('0x18')]||0x0;}return db[_0x6f2a('0x86')][_0x6f2a('0x31')](_0x295b8a[_0x6f2a('0x87')](),{'type':db[_0x6f2a('0x86')][_0x6f2a('0x88')][_0x6f2a('0x8c')]});})['then'](function(_0x43bfeb){return{'rows':_0x43bfeb||[],'count':_0x372680};});}});}exports['run']=function(_0x5bb13a,_0x5c4b04){return runReport(_0x5bb13a['params'],_0x5bb13a[_0x6f2a('0x31')],_0x5bb13a[_0x6f2a('0x67')])['then'](respondWithResult(_0x5c4b04,null))['catch'](handleError(_0x5c4b04,null));};exports[_0x6f2a('0x9f')]=runReport;exports[_0x6f2a('0x31')]=function(_0x1879e3,_0x38f7a6){var _0x3c954e=0xa;var _0xac64ab=[_0x6f2a('0x4e'),_0x6f2a('0x4f'),'right_join',_0x6f2a('0xa0')];var _0x360554={'SUM':_0x6f2a('0x51'),'COUNT':_0x6f2a('0x52'),'COUNT DISTINCT':_0x6f2a('0x53'),'MAX':_0x6f2a('0x54'),'MIN':_0x6f2a('0x55'),'AVG':_0x6f2a('0x56'),'GROUP_CONCAT':_0x6f2a('0x57'),'GROUP_CONCAT ASC':_0x6f2a('0x58'),'GROUP_CONCAT DESC':_0x6f2a('0x59')};var _0x23e522={'SEC_TO_TIME':_0x6f2a('0x5a'),'DATE':_0x6f2a('0x5b'),'HOUR':'HOUR(%s)','ROUND':_0x6f2a('0x5c'),'UNIX_TIMESTAMP':_0x6f2a('0x5d')};var _0x5d417e=function(_0x1fad8a){return!_[_0x6f2a('0x5e')](['IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY'],_0x1fad8a);};var _0x410407=function(_0x24124d){if(!_0x24124d||!_0x24124d[_0x6f2a('0x63')][_0x6f2a('0x42')]){return'';}for(var _0x2cce2a='(',_0x45765a=0x0;_0x45765a<_0x24124d[_0x6f2a('0x63')][_0x6f2a('0x42')];_0x45765a+=0x1){_0x45765a>0x0&&(_0x2cce2a+='\x20'+_0x24124d[_0x6f2a('0x64')]+'\x20');_0x2cce2a+=_0x24124d[_0x6f2a('0x63')][_0x45765a]['group']?_0x410407(_0x24124d['rules'][_0x45765a][_0x6f2a('0x65')]):_0x24124d[_0x6f2a('0x63')][_0x45765a]['field']+'\x20'+_0x24124d[_0x6f2a('0x63')][_0x45765a]['condition']+(_0x5d417e(_0x24124d[_0x6f2a('0x63')][_0x45765a][_0x6f2a('0x66')])?'\x20'+_0x24124d[_0x6f2a('0x63')][_0x45765a][_0x6f2a('0x8a')]:'');}return _0x2cce2a+')';};var _0x4b8480={'where':{'id':_0x1879e3[_0x6f2a('0x41')]['id']}},_0x24ae61,_0x8f7e2d,_0x399ed2,_0x2349eb,_0x78296;_0x4b8480=_[_0x6f2a('0x37')]({},_0x4b8480,_0x1879e3[_0x6f2a('0x67')]);return db[_0x6f2a('0x29')]['find'](_0x4b8480)[_0x6f2a('0x20')](function(_0x4a12b5){if(_0x4a12b5){_0x24ae61=_0x4a12b5;return _0x4a12b5[_0x6f2a('0x68')]();}return null;})['then'](function(_0x10afc3){if(_0x10afc3){if(!_0x10afc3['length']){throw new db[(_0x6f2a('0x8b'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x8f7e2d=_0x10afc3;return db[_0x6f2a('0x6b')][_0x6f2a('0x6c')]({'raw':!![]});}return null;})[_0x6f2a('0x20')](function(_0x536e04){if(_0x536e04){_0x399ed2=_['keyBy'](_0x536e04,'id');var _0x52917a;var _0x3d5a53=squel['select']();_0x3d5a53['from'](_0x24ae61[_0x6f2a('0x70')]);for(var _0x11e13a=0x0;_0x11e13a<_0x8f7e2d[_0x6f2a('0x42')];_0x11e13a+=0x1){_0x52917a=_0x8f7e2d[_0x11e13a][_0x6f2a('0x71')]?_0x399ed2[_0x8f7e2d[_0x11e13a][_0x6f2a('0x71')]][_0x6f2a('0x72')]:_0x8f7e2d[_0x11e13a][_0x6f2a('0x73')];_0x52917a=_0x8f7e2d[_0x11e13a][_0x6f2a('0x74')]?_['replace'](_0x360554[_0x8f7e2d[_0x11e13a][_0x6f2a('0x74')]],'%s',_0x52917a):_0x52917a;_0x52917a=_0x8f7e2d[_0x11e13a][_0x6f2a('0x7e')]?_[_0x6f2a('0x75')](_0x23e522[_0x8f7e2d[_0x11e13a][_0x6f2a('0x7e')]],'%s',_0x52917a):_0x52917a;if(_0x8f7e2d[_0x11e13a][_0x6f2a('0x76')]){_0x3d5a53[_0x6f2a('0x65')](_0x52917a);}_0x8f7e2d[_0x11e13a]['orderBy']&&_0x3d5a53['order'](_0x52917a,_0x8f7e2d[_0x11e13a][_0x6f2a('0x78')]===_0x6f2a('0x79')?![]:!![]);_0x3d5a53[_0x6f2a('0x73')](_0x52917a,_0x8f7e2d[_0x11e13a][_0x6f2a('0x7a')]||_0x52917a);}if(_0x24ae61['joins']){_0x24ae61['joins']=JSON[_0x6f2a('0x7c')](_0x24ae61[_0x6f2a('0x7b')]);for(var _0x1da35b=0x0;_0x1da35b<_0x24ae61[_0x6f2a('0x7b')][_0x6f2a('0x42')];_0x1da35b+=0x1){if(_0x24ae61[_0x6f2a('0x7b')][_0x1da35b]['type']&&_[_0x6f2a('0x5e')](_0xac64ab,_0x24ae61[_0x6f2a('0x7b')][_0x1da35b][_0x6f2a('0x39')])&&_0x24ae61[_0x6f2a('0x7b')][_0x1da35b][_0x6f2a('0x80')]&&_0x24ae61[_0x6f2a('0x7b')][_0x1da35b][_0x6f2a('0x7d')]&&_0x24ae61[_0x6f2a('0x7b')][_0x1da35b][_0x6f2a('0x81')]){_0x3d5a53[_0x24ae61[_0x6f2a('0x7b')][_0x1da35b][_0x6f2a('0x39')]](_0x24ae61[_0x6f2a('0x7b')][_0x1da35b]['foreignTable'],null,util[_0x6f2a('0x7e')](_0x6f2a('0x7f'),_0x24ae61[_0x6f2a('0x70')],_0x24ae61['joins'][_0x1da35b][_0x6f2a('0x80')],_0x24ae61[_0x6f2a('0x7b')][_0x1da35b]['foreignTable'],_0x24ae61[_0x6f2a('0x7b')][_0x1da35b]['foreignKey']));}}}if(_0x24ae61[_0x6f2a('0x82')]){_0x24ae61[_0x6f2a('0x82')]=JSON[_0x6f2a('0x7c')](_0x24ae61['conditions']);_0x3d5a53[_0x6f2a('0x34')](_0x410407(_0x24ae61['conditions'][_0x6f2a('0x65')]));}_0x78296=_0x3d5a53[_0x6f2a('0x83')]();_0x3d5a53['limit'](_0x3c954e);_0x3d5a53[_0x6f2a('0x19')](0x0);logger[_0x6f2a('0x84')](_0x6f2a('0x85'),_0x3d5a53['toString']());return db[_0x6f2a('0x86')][_0x6f2a('0x31')](_0x3d5a53[_0x6f2a('0x87')](),{'type':db['sequelize'][_0x6f2a('0x88')][_0x6f2a('0x8c')]});}})['then'](function(){return{'sql':_0x78296[_0x6f2a('0x87')]()};})[_0x6f2a('0x20')](respondWithResult(_0x38f7a6,null))['catch'](handleError(_0x38f7a6,null));};