Built motion from commit 497d3d92.|2.5.43
[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 _0xe05d=['GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','orderBy','order','DESC','alias','joins','parse','parentKey','foreignTable','format','foreignKey','conditions','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','join','right_join','MAX(%s)','HOUR(%s)','ROUND(%s)','IS\x20EMPTY','Sequelize','groupBy','%s.%s\x20=\x20%s.%s','clone','output','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','info','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','AVG(%s)','eml-format','fast-json-patch','request-promise','moment','bluebird','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','save','update','then','get','CustomReports','UserProfileResource','destroy','error','stack','name','send','index','map','AnalyticCustomReport','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','catch','show','rawAttributes','length','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Reports','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','preview','left_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)'];(function(_0x1230d4,_0x2f8048){var _0x3ab0f1=function(_0x3ad488){while(--_0x3ad488){_0x1230d4['push'](_0x1230d4['shift']());}};_0x3ab0f1(++_0x2f8048);}(_0xe05d,0xf1));var _0xde05=function(_0xaf2a1c,_0x4bab9d){_0xaf2a1c=_0xaf2a1c-0x0;var _0x3ef486=_0xe05d[_0xaf2a1c];return _0x3ef486;};'use strict';var emlformat=require(_0xde05('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xde05('0x1'));var rp=require(_0xde05('0x2'));var moment=require(_0xde05('0x3'));var BPromise=require(_0xde05('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xde05('0x5'));var csv=require(_0xde05('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xde05('0x7'));var _=require(_0xde05('0x8'));var squel=require(_0xde05('0x9'));var crypto=require(_0xde05('0xa'));var jsforce=require(_0xde05('0xb'));var deskjs=require(_0xde05('0xc'));var toCsv=require(_0xde05('0x6'));var querystring=require(_0xde05('0xd'));var Papa=require(_0xde05('0xe'));var Redis=require(_0xde05('0xf'));var authService=require(_0xde05('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xde05('0x11'));var hardwareService=require(_0xde05('0x12'));var logger=require(_0xde05('0x13'))(_0xde05('0x14'));var utils=require(_0xde05('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xde05('0x16'));var db=require(_0xde05('0x17'))['db'];var dbH=require(_0xde05('0x17'))[_0xde05('0x18')];function respondWithStatusCode(_0x641b29,_0x221cb5){_0x221cb5=_0x221cb5||0xcc;return function(_0x5a8bb1){if(_0x5a8bb1){return _0x641b29[_0xde05('0x19')](_0x221cb5);}return _0x641b29[_0xde05('0x1a')](_0x221cb5)[_0xde05('0x1b')]();};}function respondWithResult(_0x362536,_0x156b6e){_0x156b6e=_0x156b6e||0xc8;return function(_0x52c87d){if(_0x52c87d){return _0x362536['status'](_0x156b6e)[_0xde05('0x1c')](_0x52c87d);}};}function respondWithFilteredResult(_0x368fff,_0x165fac){return function(_0x21f3c){if(_0x21f3c){var _0x5b2378=typeof _0x165fac['offset']==='undefined'&&typeof _0x165fac['limit']===_0xde05('0x1d');var _0x3f432c=_0x21f3c[_0xde05('0x1e')];var _0x4dfbe5=_0x5b2378?0x0:_0x165fac['offset'];var _0x1ac86f=_0x5b2378?_0x21f3c[_0xde05('0x1e')]:_0x165fac[_0xde05('0x1f')]+_0x165fac[_0xde05('0x20')];var _0x4fd611;if(_0x1ac86f>=_0x3f432c){_0x1ac86f=_0x3f432c;_0x4fd611=0xc8;}else{_0x4fd611=0xce;}_0x368fff[_0xde05('0x1a')](_0x4fd611);return _0x368fff[_0xde05('0x21')](_0xde05('0x22'),_0x4dfbe5+'-'+_0x1ac86f+'/'+_0x3f432c)['json'](_0x21f3c);}return null;};}function patchUpdates(_0x32afda){return function(_0x4a68ad){try{jsonpatch[_0xde05('0x23')](_0x4a68ad,_0x32afda,!![]);}catch(_0x3531c1){return BPromise['reject'](_0x3531c1);}return _0x4a68ad[_0xde05('0x24')]();};}function saveUpdates(_0xaf3e10,_0x22645f){return function(_0x2e0f58){if(_0x2e0f58){return _0x2e0f58[_0xde05('0x25')](_0xaf3e10)[_0xde05('0x26')](function(_0x26601d){return _0x26601d;});}return null;};}function removeEntity(_0x1d0165,_0x1ed7df){return function(_0x5c50c2){if(_0x5c50c2){return _0x5c50c2['destroy']()[_0xde05('0x26')](function(){var _0xc2cabf=_0x5c50c2[_0xde05('0x27')]({'plain':!![]});var _0xc8fe25=_0xde05('0x28');return db[_0xde05('0x29')][_0xde05('0x2a')]({'where':{'type':_0xc8fe25,'resourceId':_0xc2cabf['id']}})[_0xde05('0x26')](function(){return _0x5c50c2;});})[_0xde05('0x26')](function(){_0x1d0165[_0xde05('0x1a')](0xcc)[_0xde05('0x1b')]();});}};}function handleEntityNotFound(_0x32fd71,_0x2626ca){return function(_0x45345d){if(!_0x45345d){_0x32fd71['sendStatus'](0x194);}return _0x45345d;};}function handleError(_0x2581e0,_0xdd5dcf){_0xdd5dcf=_0xdd5dcf||0x1f4;return function(_0x5bcc05){logger[_0xde05('0x2b')](_0x5bcc05[_0xde05('0x2c')]);if(_0x5bcc05[_0xde05('0x2d')]){delete _0x5bcc05[_0xde05('0x2d')];}_0x2581e0[_0xde05('0x1a')](_0xdd5dcf)[_0xde05('0x2e')](_0x5bcc05);};}exports[_0xde05('0x2f')]=function(_0x43e96c,_0x15494f){var _0x41831f={},_0xfbfc70={},_0x59d4f6={'count':0x0,'rows':[]};var _0x2d1438=_[_0xde05('0x30')](db[_0xde05('0x31')]['rawAttributes'],function(_0x3078fa){return{'name':_0x3078fa[_0xde05('0x32')],'type':_0x3078fa[_0xde05('0x33')][_0xde05('0x34')]};});_0xfbfc70[_0xde05('0x35')]=_[_0xde05('0x30')](_0x2d1438,'name');_0xfbfc70['query']=_[_0xde05('0x36')](_0x43e96c[_0xde05('0x37')]);_0xfbfc70[_0xde05('0x38')]=_[_0xde05('0x39')](_0xfbfc70[_0xde05('0x35')],_0xfbfc70[_0xde05('0x37')]);_0x41831f['attributes']=_['intersection'](_0xfbfc70[_0xde05('0x35')],qs[_0xde05('0x3a')](_0x43e96c['query'][_0xde05('0x3a')]));_0x41831f[_0xde05('0x3b')]=_0x41831f['attributes']['length']?_0x41831f[_0xde05('0x3b')]:_0xfbfc70[_0xde05('0x35')];if(!_0x43e96c['query']['hasOwnProperty'](_0xde05('0x3c'))){_0x41831f[_0xde05('0x20')]=qs[_0xde05('0x20')](_0x43e96c['query'][_0xde05('0x20')]);_0x41831f['offset']=qs['offset'](_0x43e96c[_0xde05('0x37')][_0xde05('0x1f')]);}_0x41831f['order']=qs[_0xde05('0x3d')](_0x43e96c[_0xde05('0x37')][_0xde05('0x3d')]);_0x41831f[_0xde05('0x3e')]=qs[_0xde05('0x38')](_[_0xde05('0x3f')](_0x43e96c[_0xde05('0x37')],_0xfbfc70[_0xde05('0x38')]),_0x2d1438);if(_0x43e96c['query'][_0xde05('0x40')]){_0x41831f[_0xde05('0x3e')]=_[_0xde05('0x41')](_0x41831f[_0xde05('0x3e')],{'$or':_['map'](_0x2d1438,function(_0x107dd5){if(_0x107dd5['type']!==_0xde05('0x42')){var _0x2bac48={};_0x2bac48[_0x107dd5[_0xde05('0x2d')]]={'$like':'%'+_0x43e96c[_0xde05('0x37')][_0xde05('0x40')]+'%'};return _0x2bac48;}})});}_0x41831f=_[_0xde05('0x41')]({},_0x41831f,_0x43e96c[_0xde05('0x43')]);var _0x32e6df={'where':_0x41831f['where']};return db[_0xde05('0x31')]['count'](_0x32e6df)[_0xde05('0x26')](function(_0x3ab61c){_0x59d4f6[_0xde05('0x1e')]=_0x3ab61c;if(_0x43e96c[_0xde05('0x37')]['includeAll']){_0x41831f['include']=[{'all':!![]}];}return db[_0xde05('0x31')][_0xde05('0x44')](_0x41831f);})[_0xde05('0x26')](function(_0x1ac73c){_0x59d4f6[_0xde05('0x45')]=_0x1ac73c;return _0x59d4f6;})[_0xde05('0x26')](respondWithFilteredResult(_0x15494f,_0x41831f))[_0xde05('0x46')](handleError(_0x15494f,null));};exports[_0xde05('0x47')]=function(_0x405f82,_0x5af29f){var _0x144daf={'raw':![],'where':{'id':_0x405f82['params']['id']}},_0x5e731a={};_0x5e731a[_0xde05('0x35')]=_[_0xde05('0x36')](db['AnalyticCustomReport'][_0xde05('0x48')]);_0x5e731a['query']=_[_0xde05('0x36')](_0x405f82[_0xde05('0x37')]);_0x5e731a[_0xde05('0x38')]=_['intersection'](_0x5e731a[_0xde05('0x35')],_0x5e731a['query']);_0x144daf[_0xde05('0x3b')]=_['intersection'](_0x5e731a['model'],qs['fields'](_0x405f82[_0xde05('0x37')][_0xde05('0x3a')]));_0x144daf[_0xde05('0x3b')]=_0x144daf[_0xde05('0x3b')][_0xde05('0x49')]?_0x144daf[_0xde05('0x3b')]:_0x5e731a[_0xde05('0x35')];if(_0x405f82[_0xde05('0x37')][_0xde05('0x4a')]){_0x144daf['include']=[{'all':!![]}];}_0x144daf=_[_0xde05('0x41')]({},_0x144daf,_0x405f82[_0xde05('0x43')]);return db[_0xde05('0x31')][_0xde05('0x4b')](_0x144daf)[_0xde05('0x26')](handleEntityNotFound(_0x5af29f,null))[_0xde05('0x26')](respondWithResult(_0x5af29f,null))[_0xde05('0x46')](handleError(_0x5af29f,null));};exports[_0xde05('0x4c')]=function(_0x147185,_0xd7fb5e){return db[_0xde05('0x31')][_0xde05('0x4c')](_0x147185[_0xde05('0x4d')],{})[_0xde05('0x26')](function(_0x2a8a8a){var _0x20e47c=_0x147185['user'][_0xde05('0x27')]({'plain':!![]});if(!_0x20e47c)throw new Error(_0xde05('0x4e'));if(_0x20e47c[_0xde05('0x4f')]===_0xde05('0x50')){var _0x17327e=_0x2a8a8a[_0xde05('0x27')]({'plain':!![]});var _0x1a651e=_0xde05('0x51');return db[_0xde05('0x52')][_0xde05('0x4b')]({'where':{'name':_0x1a651e,'userProfileId':_0x20e47c['userProfileId']},'raw':!![]})['then'](function(_0x385812){if(_0x385812&&_0x385812[_0xde05('0x53')]===0x0){return db[_0xde05('0x29')][_0xde05('0x4c')]({'name':_0x17327e[_0xde05('0x2d')],'resourceId':_0x17327e['id'],'type':_0xde05('0x28'),'sectionId':_0x385812['id']},{})[_0xde05('0x26')](function(){return _0x2a8a8a;});}else{return _0x2a8a8a;}})[_0xde05('0x46')](function(_0x4b2bb0){logger[_0xde05('0x2b')](_0xde05('0x54'),_0x4b2bb0);throw _0x4b2bb0;});}return _0x2a8a8a;})[_0xde05('0x26')](respondWithResult(_0xd7fb5e,0xc9))[_0xde05('0x46')](handleError(_0xd7fb5e,null));};exports['update']=function(_0x166a98,_0x1cdd47){if(_0x166a98[_0xde05('0x4d')]['id']){delete _0x166a98['body']['id'];}return db[_0xde05('0x31')][_0xde05('0x4b')]({'where':{'id':_0x166a98[_0xde05('0x55')]['id']}})['then'](handleEntityNotFound(_0x1cdd47,null))['then'](saveUpdates(_0x166a98[_0xde05('0x4d')],null))[_0xde05('0x26')](respondWithResult(_0x1cdd47,null))[_0xde05('0x46')](handleError(_0x1cdd47,null));};exports[_0xde05('0x2a')]=function(_0x8390da,_0x2d5ebb){return db[_0xde05('0x31')][_0xde05('0x4b')]({'where':{'id':_0x8390da[_0xde05('0x55')]['id']}})[_0xde05('0x26')](handleEntityNotFound(_0x2d5ebb,null))[_0xde05('0x26')](removeEntity(_0x2d5ebb,null))['catch'](handleError(_0x2d5ebb,null));};exports[_0xde05('0x56')]=function(_0x343d03,_0x4b133e){var _0x3e4b45=0xa;var _0x4aa506=['join',_0xde05('0x57'),'right_join',_0xde05('0x58')];var _0x335d2f={'SUM':_0xde05('0x59'),'COUNT':_0xde05('0x5a'),'COUNT DISTINCT':_0xde05('0x5b'),'MAX':'MAX(%s)','MIN':_0xde05('0x5c'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xde05('0x5d'),'GROUP_CONCAT ASC':_0xde05('0x5e'),'GROUP_CONCAT DESC':_0xde05('0x5f')};var _0x4003d7={'SEC_TO_TIME':_0xde05('0x60'),'DATE':_0xde05('0x61'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xde05('0x62')};var _0x515112=function(_0x488e19){return!_[_0xde05('0x63')]([_0xde05('0x64'),_0xde05('0x65'),'IS\x20EMPTY',_0xde05('0x66')],_0x488e19);};var _0x510b62=function(_0xbc1348){if(!_0xbc1348||!_0xbc1348[_0xde05('0x67')]['length']){return'';}for(var _0x2ac2c0='(',_0x269e11=0x0;_0x269e11<_0xbc1348['rules'][_0xde05('0x49')];_0x269e11+=0x1){_0x269e11>0x0&&(_0x2ac2c0+='\x20'+_0xbc1348[_0xde05('0x68')]+'\x20');_0x2ac2c0+=_0xbc1348[_0xde05('0x67')][_0x269e11][_0xde05('0x69')]?_0x510b62(_0xbc1348['rules'][_0x269e11][_0xde05('0x69')]):_0xbc1348[_0xde05('0x67')][_0x269e11][_0xde05('0x6a')]+'\x20'+_0xbc1348[_0xde05('0x67')][_0x269e11][_0xde05('0x6b')]+(_0x515112(_0xbc1348[_0xde05('0x67')][_0x269e11][_0xde05('0x6b')])?'\x20'+_0xbc1348['rules'][_0x269e11][_0xde05('0x6c')]:'');}return _0x2ac2c0+')';};var _0x5d892d={'where':{'id':_0x343d03[_0xde05('0x55')]['id']}},_0x2e99fb,_0x22fb45,_0x263a0a,_0xd4e84d,_0x35364b;_0x5d892d=_[_0xde05('0x41')]({},_0x5d892d,_0x343d03['options']);return db[_0xde05('0x31')][_0xde05('0x4b')](_0x5d892d)[_0xde05('0x26')](function(_0x345b6b){if(_0x345b6b){_0x2e99fb=_0x345b6b;return _0x345b6b[_0xde05('0x6d')]();}return null;})[_0xde05('0x26')](function(_0x177510){if(_0x177510){if(!_0x177510[_0xde05('0x49')]){throw new db['Sequelize'][(_0xde05('0x6e'))](_0xde05('0x6f'),0x193);}_0x22fb45=_0x177510;return db[_0xde05('0x70')][_0xde05('0x44')]({'raw':!![]});}return null;})[_0xde05('0x26')](function(_0x17dd01){if(_0x17dd01){_0x263a0a=_[_0xde05('0x71')](_0x17dd01,'id');var _0x32c4cb;var _0x47aff5=squel[_0xde05('0x72')]();_0x47aff5[_0xde05('0x73')](_0x2e99fb[_0xde05('0x74')]);for(var _0x3ae5cd=0x0;_0x3ae5cd<_0x22fb45['length'];_0x3ae5cd+=0x1){_0x32c4cb=_0x22fb45[_0x3ae5cd][_0xde05('0x75')]?_0x263a0a[_0x22fb45[_0x3ae5cd][_0xde05('0x75')]][_0xde05('0x76')]:_0x22fb45[_0x3ae5cd][_0xde05('0x6a')];_0x32c4cb=_0x22fb45[_0x3ae5cd]['function']?_['replace'](_0x335d2f[_0x22fb45[_0x3ae5cd][_0xde05('0x77')]],'%s',_0x32c4cb):_0x32c4cb;_0x32c4cb=_0x22fb45[_0x3ae5cd]['format']?_[_0xde05('0x78')](_0x4003d7[_0x22fb45[_0x3ae5cd]['format']],'%s',_0x32c4cb):_0x32c4cb;if(_0x22fb45[_0x3ae5cd]['groupBy']){_0x47aff5[_0xde05('0x69')](_0x32c4cb);}_0x22fb45[_0x3ae5cd][_0xde05('0x79')]&&_0x47aff5[_0xde05('0x7a')](_0x32c4cb,_0x22fb45[_0x3ae5cd][_0xde05('0x79')]===_0xde05('0x7b')?![]:!![]);_0x47aff5[_0xde05('0x6a')](_0x32c4cb,_0x22fb45[_0x3ae5cd][_0xde05('0x7c')]||_0x32c4cb);}if(_0x2e99fb[_0xde05('0x7d')]){_0x2e99fb[_0xde05('0x7d')]=JSON[_0xde05('0x7e')](_0x2e99fb['joins']);for(var _0xb98f8c=0x0;_0xb98f8c<_0x2e99fb['joins'][_0xde05('0x49')];_0xb98f8c+=0x1){if(_0x2e99fb['joins'][_0xb98f8c]['type']&&_['includes'](_0x4aa506,_0x2e99fb['joins'][_0xb98f8c][_0xde05('0x33')])&&_0x2e99fb[_0xde05('0x7d')][_0xb98f8c][_0xde05('0x7f')]&&_0x2e99fb[_0xde05('0x7d')][_0xb98f8c][_0xde05('0x80')]&&_0x2e99fb[_0xde05('0x7d')][_0xb98f8c]['foreignKey']){_0x47aff5[_0x2e99fb[_0xde05('0x7d')][_0xb98f8c][_0xde05('0x33')]](_0x2e99fb[_0xde05('0x7d')][_0xb98f8c][_0xde05('0x80')],null,util[_0xde05('0x81')]('%s.%s\x20=\x20%s.%s',_0x2e99fb[_0xde05('0x74')],_0x2e99fb[_0xde05('0x7d')][_0xb98f8c]['parentKey'],_0x2e99fb[_0xde05('0x7d')][_0xb98f8c][_0xde05('0x80')],_0x2e99fb[_0xde05('0x7d')][_0xb98f8c][_0xde05('0x82')]));}}}if(_0x2e99fb[_0xde05('0x83')]){_0x2e99fb['conditions']=JSON[_0xde05('0x7e')](_0x2e99fb[_0xde05('0x83')]);_0x47aff5[_0xde05('0x3e')](_0x510b62(_0x2e99fb['conditions'][_0xde05('0x69')]));}_0x35364b=_0x47aff5['clone']();_0x47aff5[_0xde05('0x20')](_0x3e4b45);_0x47aff5['offset'](0x0);logger[_0xde05('0x84')](_0xde05('0x85'),_0x47aff5[_0xde05('0x86')]());return dbH['sequelize'][_0xde05('0x37')](_0x47aff5['toString'](),{'type':dbH[_0xde05('0x87')][_0xde05('0x88')][_0xde05('0x89')]});}})['then'](respondWithResult(_0x4b133e,null))[_0xde05('0x46')](handleError(_0x4b133e,null));};function runReport(_0x52ac62,_0x2dddb1,_0x41182d){var _0x48e7a4=_0x2dddb1['name'];var _0x31b2e1=0xa;var _0x1a920a=[_0xde05('0x8a'),'left_join',_0xde05('0x8b'),_0xde05('0x58')];var _0xefb35={'SUM':_0xde05('0x59'),'COUNT':_0xde05('0x5a'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xde05('0x8c'),'MIN':_0xde05('0x5c'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xde05('0x5e'),'GROUP_CONCAT DESC':_0xde05('0x5f')};var _0x3bb761={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xde05('0x61'),'HOUR':_0xde05('0x8d'),'ROUND':_0xde05('0x8e'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x58ab4e=function(_0x3bbb88){return!_[_0xde05('0x63')]([_0xde05('0x64'),_0xde05('0x65'),_0xde05('0x8f'),_0xde05('0x66')],_0x3bbb88);};var _0xdd3f60=function(_0x3dafdf){if(!_0x3dafdf||!_0x3dafdf[_0xde05('0x67')][_0xde05('0x49')]){return'';}for(var _0x2042d1='(',_0x77004b=0x0;_0x77004b<_0x3dafdf['rules']['length'];_0x77004b+=0x1){_0x77004b>0x0&&(_0x2042d1+='\x20'+_0x3dafdf[_0xde05('0x68')]+'\x20');_0x2042d1+=_0x3dafdf[_0xde05('0x67')][_0x77004b][_0xde05('0x69')]?_0xdd3f60(_0x3dafdf['rules'][_0x77004b][_0xde05('0x69')]):_0x3dafdf['rules'][_0x77004b][_0xde05('0x6a')]+'\x20'+_0x3dafdf[_0xde05('0x67')][_0x77004b][_0xde05('0x6b')]+(_0x58ab4e(_0x3dafdf[_0xde05('0x67')][_0x77004b][_0xde05('0x6b')])?'\x20'+_0x3dafdf[_0xde05('0x67')][_0x77004b][_0xde05('0x6c')]:'');}return _0x2042d1+')';};var _0x58ec8f={'where':{'id':_0x52ac62['id']}},_0x2881ca,_0x592767,_0xc1f2dc,_0x159360,_0x129a16;_0x58ec8f=_[_0xde05('0x41')]({},_0x58ec8f,_0x41182d);return db['AnalyticCustomReport'][_0xde05('0x4b')](_0x58ec8f)['then'](function(_0x40ecd8){if(_0x40ecd8){_0x2881ca=_0x40ecd8;return _0x40ecd8[_0xde05('0x6d')]();}return null;})[_0xde05('0x26')](function(_0x4b2066){if(_0x4b2066){if(!_0x4b2066[_0xde05('0x49')]){throw new db[(_0xde05('0x90'))]['ValidationErrorItem'](_0xde05('0x6f'),0x193);}_0x592767=_0x4b2066;return db[_0xde05('0x70')][_0xde05('0x44')]({'raw':!![]});}return null;})['then'](function(_0x2aa101){if(_0x2aa101){_0xc1f2dc=_[_0xde05('0x71')](_0x2aa101,'id');var _0x108bc1;var _0x4ae64a=squel['select']();_0x4ae64a[_0xde05('0x73')](_0x2881ca[_0xde05('0x74')]);for(var _0x46850d=0x0;_0x46850d<_0x592767['length'];_0x46850d+=0x1){_0x108bc1=_0x592767[_0x46850d][_0xde05('0x75')]?_0xc1f2dc[_0x592767[_0x46850d][_0xde05('0x75')]][_0xde05('0x76')]:_0x592767[_0x46850d][_0xde05('0x6a')];_0x108bc1=_0x592767[_0x46850d][_0xde05('0x77')]?_[_0xde05('0x78')](_0xefb35[_0x592767[_0x46850d][_0xde05('0x77')]],'%s',_0x108bc1):_0x108bc1;_0x108bc1=_0x592767[_0x46850d]['format']?_['replace'](_0x3bb761[_0x592767[_0x46850d]['format']],'%s',_0x108bc1):_0x108bc1;if(_0x592767[_0x46850d][_0xde05('0x91')]){_0x4ae64a['group'](_0x108bc1);}_0x592767[_0x46850d]['orderBy']&&_0x4ae64a[_0xde05('0x7a')](_0x108bc1,_0x592767[_0x46850d][_0xde05('0x79')]===_0xde05('0x7b')?![]:!![]);_0x4ae64a[_0xde05('0x6a')](_0x108bc1,_0x592767[_0x46850d][_0xde05('0x7c')]||_0x108bc1);}if(_0x2881ca[_0xde05('0x7d')]){_0x2881ca['joins']=JSON[_0xde05('0x7e')](_0x2881ca[_0xde05('0x7d')]);for(var _0x56ebf1=0x0;_0x56ebf1<_0x2881ca[_0xde05('0x7d')][_0xde05('0x49')];_0x56ebf1+=0x1){if(_0x2881ca[_0xde05('0x7d')][_0x56ebf1]['type']&&_[_0xde05('0x63')](_0x1a920a,_0x2881ca[_0xde05('0x7d')][_0x56ebf1][_0xde05('0x33')])&&_0x2881ca[_0xde05('0x7d')][_0x56ebf1][_0xde05('0x7f')]&&_0x2881ca[_0xde05('0x7d')][_0x56ebf1][_0xde05('0x80')]&&_0x2881ca[_0xde05('0x7d')][_0x56ebf1][_0xde05('0x82')]){_0x4ae64a[_0x2881ca[_0xde05('0x7d')][_0x56ebf1][_0xde05('0x33')]](_0x2881ca[_0xde05('0x7d')][_0x56ebf1][_0xde05('0x80')],null,util['format'](_0xde05('0x92'),_0x2881ca['table'],_0x2881ca['joins'][_0x56ebf1][_0xde05('0x7f')],_0x2881ca['joins'][_0x56ebf1]['foreignTable'],_0x2881ca['joins'][_0x56ebf1][_0xde05('0x82')]));}}}if(_0x2881ca[_0xde05('0x83')]){_0x2881ca[_0xde05('0x83')]=JSON[_0xde05('0x7e')](_0x2881ca['conditions']);_0x4ae64a[_0xde05('0x3e')](_0xdd3f60(_0x2881ca[_0xde05('0x83')][_0xde05('0x69')]));}_0x129a16=_0x4ae64a[_0xde05('0x93')]();_0x4ae64a[_0xde05('0x20')](_0x31b2e1);_0x4ae64a['offset'](0x0);return;}})['then'](function(){if(_0x2dddb1[_0xde05('0x94')]==='web'){return null;}var _0x16f172=_[_0xde05('0x41')](_0x2dddb1,{'name':_0x2dddb1['fullPath']||_0x2dddb1[_0xde05('0x2d')]||_0x2881ca[_0xde05('0x2d')],'basename':_0x48e7a4,'savename':util[_0xde05('0x81')](_0xde05('0x95'),_0x2dddb1[_0xde05('0x2d')]||_0x2881ca['name'],require(_0xde05('0x96'))[_0xde05('0x97')](0x4),_0x2dddb1['output']||_0xde05('0x98')),'reportId':_0x2881ca['id'],'reportType':_0xde05('0x99')});return db[_0xde05('0x9a')]['create'](_0x16f172,{'raw':!![]});})[_0xde05('0x26')](function(_0x3066a9){if(_0x2881ca['table']===_0xde05('0x9b')){_0x129a16[_0xde05('0x3e')](_0x2881ca[_0xde05('0x74')]+_0xde05('0x9c'),_0x2dddb1['startDate'],_0x2dddb1[_0xde05('0x9d')]);}else{_0x129a16[_0xde05('0x3e')](_0x2881ca[_0xde05('0x74')]+_0xde05('0x9e'),_0x2dddb1[_0xde05('0x9f')],_0x2dddb1[_0xde05('0x9d')]);}if(_0x3066a9){logger[_0xde05('0xa0')]('Run\x20Query:',_0x129a16[_0xde05('0x86')]());require('child_process')['fork'](path[_0xde05('0x8a')](__dirname,_0xde05('0xa1'),_0x3066a9['output']),[_0x3066a9['id'],_0x129a16['toString'](),path[_0xde05('0x8a')](__dirname,_0xde05('0xa2'),_0x3066a9[_0xde05('0xa3')]),_0x48e7a4]);return _0x3066a9;}else{var _0x2b15e4=squel[_0xde05('0x72')]();_0x2b15e4[_0xde05('0x73')]('('+_0x129a16[_0xde05('0x86')]()+')',_0xde05('0xa4'));_0x2b15e4[_0xde05('0x6a')](_0xde05('0xa5'),_0xde05('0x1e'));_0x129a16[_0xde05('0x20')](_0x2dddb1[_0xde05('0x20')]||_0x31b2e1);_0x129a16[_0xde05('0x1f')](_0x2dddb1[_0xde05('0x1f')]||0x0);return dbH[_0xde05('0x87')][_0xde05('0x37')](_0x2b15e4[_0xde05('0x86')](),{'type':dbH[_0xde05('0x87')][_0xde05('0x88')]['SELECT']})['then'](function(_0x11321a){if(!_0x11321a[_0xde05('0x49')]){_0x159360=0x0;}else{_0x159360=_0x11321a[0x0][_0xde05('0x1e')]||0x0;}return dbH[_0xde05('0x87')]['query'](_0x129a16[_0xde05('0x86')](),{'type':dbH[_0xde05('0x87')][_0xde05('0x88')][_0xde05('0x89')]});})['then'](function(_0x32c0b3){return{'rows':_0x32c0b3||[],'count':_0x159360};});}});}exports[_0xde05('0xa6')]=function(_0x382aa2,_0xfa2e31){return runReport(_0x382aa2[_0xde05('0x55')],_0x382aa2[_0xde05('0x37')],_0x382aa2[_0xde05('0x43')])[_0xde05('0x26')](respondWithResult(_0xfa2e31,null))[_0xde05('0x46')](handleError(_0xfa2e31,null));};exports['runReport']=runReport;exports['query']=function(_0x35b5d6,_0x364f9e){var _0xc43a9b=0xa;var _0x1eb5fe=[_0xde05('0x8a'),'left_join',_0xde05('0x8b'),_0xde05('0x58')];var _0x241fce={'SUM':_0xde05('0x59'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0xde05('0x5b'),'MAX':'MAX(%s)','MIN':_0xde05('0x5c'),'AVG':_0xde05('0xa7'),'GROUP_CONCAT':_0xde05('0x5d'),'GROUP_CONCAT ASC':_0xde05('0x5e'),'GROUP_CONCAT DESC':_0xde05('0x5f')};var _0x13263b={'SEC_TO_TIME':_0xde05('0x60'),'DATE':_0xde05('0x61'),'HOUR':'HOUR(%s)','ROUND':_0xde05('0x8e'),'UNIX_TIMESTAMP':_0xde05('0x62')};var _0x315905=function(_0xdd3a77){return!_[_0xde05('0x63')]([_0xde05('0x64'),_0xde05('0x65'),_0xde05('0x8f'),_0xde05('0x66')],_0xdd3a77);};var _0x31d0ec=function(_0x21aa5a){if(!_0x21aa5a||!_0x21aa5a[_0xde05('0x67')][_0xde05('0x49')]){return'';}for(var _0x46e57c='(',_0x58f38d=0x0;_0x58f38d<_0x21aa5a[_0xde05('0x67')][_0xde05('0x49')];_0x58f38d+=0x1){_0x58f38d>0x0&&(_0x46e57c+='\x20'+_0x21aa5a[_0xde05('0x68')]+'\x20');_0x46e57c+=_0x21aa5a[_0xde05('0x67')][_0x58f38d][_0xde05('0x69')]?_0x31d0ec(_0x21aa5a['rules'][_0x58f38d][_0xde05('0x69')]):_0x21aa5a[_0xde05('0x67')][_0x58f38d]['field']+'\x20'+_0x21aa5a[_0xde05('0x67')][_0x58f38d][_0xde05('0x6b')]+(_0x315905(_0x21aa5a['rules'][_0x58f38d][_0xde05('0x6b')])?'\x20'+_0x21aa5a[_0xde05('0x67')][_0x58f38d][_0xde05('0x6c')]:'');}return _0x46e57c+')';};var _0x3bd36f={'where':{'id':_0x35b5d6['params']['id']}},_0xc42188,_0x34745c,_0x51a655,_0x33c7af,_0x17efd2;_0x3bd36f=_[_0xde05('0x41')]({},_0x3bd36f,_0x35b5d6['options']);return db[_0xde05('0x31')][_0xde05('0x4b')](_0x3bd36f)[_0xde05('0x26')](function(_0x18cd62){if(_0x18cd62){_0xc42188=_0x18cd62;return _0x18cd62[_0xde05('0x6d')]();}return null;})[_0xde05('0x26')](function(_0x3a8284){if(_0x3a8284){if(!_0x3a8284[_0xde05('0x49')]){throw new db[(_0xde05('0x90'))][(_0xde05('0x6e'))](_0xde05('0x6f'),0x193);}_0x34745c=_0x3a8284;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0xde05('0x26')](function(_0x456346){if(_0x456346){_0x51a655=_[_0xde05('0x71')](_0x456346,'id');var _0x511725;var _0x5f3dab=squel[_0xde05('0x72')]();_0x5f3dab[_0xde05('0x73')](_0xc42188[_0xde05('0x74')]);for(var _0x120863=0x0;_0x120863<_0x34745c[_0xde05('0x49')];_0x120863+=0x1){_0x511725=_0x34745c[_0x120863]['MetricId']?_0x51a655[_0x34745c[_0x120863][_0xde05('0x75')]][_0xde05('0x76')]:_0x34745c[_0x120863]['field'];_0x511725=_0x34745c[_0x120863][_0xde05('0x77')]?_[_0xde05('0x78')](_0x241fce[_0x34745c[_0x120863][_0xde05('0x77')]],'%s',_0x511725):_0x511725;_0x511725=_0x34745c[_0x120863]['format']?_[_0xde05('0x78')](_0x13263b[_0x34745c[_0x120863][_0xde05('0x81')]],'%s',_0x511725):_0x511725;if(_0x34745c[_0x120863][_0xde05('0x91')]){_0x5f3dab['group'](_0x511725);}_0x34745c[_0x120863][_0xde05('0x79')]&&_0x5f3dab[_0xde05('0x7a')](_0x511725,_0x34745c[_0x120863][_0xde05('0x79')]===_0xde05('0x7b')?![]:!![]);_0x5f3dab[_0xde05('0x6a')](_0x511725,_0x34745c[_0x120863]['alias']||_0x511725);}if(_0xc42188[_0xde05('0x7d')]){_0xc42188['joins']=JSON[_0xde05('0x7e')](_0xc42188[_0xde05('0x7d')]);for(var _0x1210dd=0x0;_0x1210dd<_0xc42188[_0xde05('0x7d')][_0xde05('0x49')];_0x1210dd+=0x1){if(_0xc42188[_0xde05('0x7d')][_0x1210dd][_0xde05('0x33')]&&_['includes'](_0x1eb5fe,_0xc42188[_0xde05('0x7d')][_0x1210dd][_0xde05('0x33')])&&_0xc42188[_0xde05('0x7d')][_0x1210dd][_0xde05('0x7f')]&&_0xc42188['joins'][_0x1210dd]['foreignTable']&&_0xc42188[_0xde05('0x7d')][_0x1210dd]['foreignKey']){_0x5f3dab[_0xc42188[_0xde05('0x7d')][_0x1210dd][_0xde05('0x33')]](_0xc42188['joins'][_0x1210dd][_0xde05('0x80')],null,util[_0xde05('0x81')]('%s.%s\x20=\x20%s.%s',_0xc42188['table'],_0xc42188[_0xde05('0x7d')][_0x1210dd][_0xde05('0x7f')],_0xc42188[_0xde05('0x7d')][_0x1210dd][_0xde05('0x80')],_0xc42188['joins'][_0x1210dd][_0xde05('0x82')]));}}}if(_0xc42188[_0xde05('0x83')]){_0xc42188[_0xde05('0x83')]=JSON[_0xde05('0x7e')](_0xc42188['conditions']);_0x5f3dab[_0xde05('0x3e')](_0x31d0ec(_0xc42188[_0xde05('0x83')][_0xde05('0x69')]));}_0x17efd2=_0x5f3dab['clone']();_0x5f3dab['limit'](_0xc43a9b);_0x5f3dab[_0xde05('0x1f')](0x0);logger[_0xde05('0x84')]('Limited\x20Query:',_0x5f3dab[_0xde05('0x86')]());return dbH[_0xde05('0x87')][_0xde05('0x37')](_0x5f3dab[_0xde05('0x86')](),{'type':dbH[_0xde05('0x87')][_0xde05('0x88')][_0xde05('0x89')]});}})[_0xde05('0x26')](function(){return{'sql':_0x17efd2[_0xde05('0x86')]()};})[_0xde05('0x26')](respondWithResult(_0x364f9e,null))[_0xde05('0x46')](handleError(_0x364f9e,null));};