0f3de5ef633537655c8da7a6b7371485d4861288
[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 _0x1cc7=['generate','custom','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','from','countTable','COUNT(*)','QueryTypes','run','runReport','getFields','html-pdf','eml-format','rimraf','moment','bluebird','mustache','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../mysqldb','dbH','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy','then','get','UserProfileResource','error','stack','name','send','index','AnalyticCustomReport','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','includeAll','findAll','rows','catch','show','params','length','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','CustomReports','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','condition','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','MetricId','metric','replace','function','format','groupBy','DESC','field','alias','joins','parse','foreignTable','foreignKey','parentKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','SELECT','join','left_join','right_join','SUM(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','IS\x20NULL','IS\x20NOT\x20NULL','operator','orderBy','%s.%s\x20=\x20%s.%s','table','output','web','fullPath','randomstring'];(function(_0x5c1045,_0x44abc5){var _0x4fa8ad=function(_0x344f6a){while(--_0x344f6a){_0x5c1045['push'](_0x5c1045['shift']());}};_0x4fa8ad(++_0x44abc5);}(_0x1cc7,0x15a));var _0x71cc=function(_0x16e1d5,_0x3d44d9){_0x16e1d5=_0x16e1d5-0x0;var _0x1e2ae5=_0x1cc7[_0x16e1d5];return _0x1e2ae5;};'use strict';var pdf=require(_0x71cc('0x0'));var emlformat=require(_0x71cc('0x1'));var rimraf=require(_0x71cc('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x71cc('0x3'));var BPromise=require(_0x71cc('0x4'));var Mustache=require(_0x71cc('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x71cc('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x71cc('0x7'));var squel=require(_0x71cc('0x8'));var crypto=require(_0x71cc('0x9'));var jsforce=require(_0x71cc('0xa'));var deskjs=require(_0x71cc('0xb'));var toCsv=require('to-csv');var querystring=require(_0x71cc('0xc'));var Papa=require(_0x71cc('0xd'));var Redis=require(_0x71cc('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x71cc('0xf'))(_0x71cc('0x10'));var utils=require(_0x71cc('0x11'));var config=require('../../config/environment');var db=require(_0x71cc('0x12'))['db'];var dbH=require('../../mysqldb')[_0x71cc('0x13')];function respondWithStatusCode(_0x4f9c5c,_0x1a7c58){_0x1a7c58=_0x1a7c58||0xcc;return function(_0x5afe4f){if(_0x5afe4f){return _0x4f9c5c[_0x71cc('0x14')](_0x1a7c58);}return _0x4f9c5c[_0x71cc('0x15')](_0x1a7c58)[_0x71cc('0x16')]();};}function respondWithResult(_0xd16032,_0x33070e){_0x33070e=_0x33070e||0xc8;return function(_0x540200){if(_0x540200){return _0xd16032[_0x71cc('0x15')](_0x33070e)[_0x71cc('0x17')](_0x540200);}};}function respondWithFilteredResult(_0x3b26d1,_0x14d5ab){return function(_0x3875b8){if(_0x3875b8){var _0x14087c=_0x3875b8[_0x71cc('0x18')],_0x1e359d=_0x14d5ab[_0x71cc('0x19')],_0x5eae5b=_0x14d5ab[_0x71cc('0x19')]+_0x14d5ab[_0x71cc('0x1a')],_0xf3c790;if(_0x5eae5b>=_0x14087c){_0x5eae5b=_0x14087c;_0xf3c790=0xc8;}else{_0xf3c790=0xce;}_0x3b26d1[_0x71cc('0x15')](_0xf3c790);return _0x3b26d1['set'](_0x71cc('0x1b'),_0x1e359d+'-'+_0x5eae5b+'/'+_0x14087c)[_0x71cc('0x17')](_0x3875b8);}return null;};}function patchUpdates(_0x4fc0a9){return function(_0x550ce7){try{jsonpatch[_0x71cc('0x1c')](_0x550ce7,_0x4fc0a9,!![]);}catch(_0x32e10c){return BPromise[_0x71cc('0x1d')](_0x32e10c);}return _0x550ce7[_0x71cc('0x1e')]();};}function saveUpdates(_0x258d30,_0xccbfb){return function(_0x363ecb){if(_0x363ecb){return _0x363ecb[_0x71cc('0x1f')](_0x258d30)['then'](function(_0x1442ef){return _0x1442ef;});}return null;};}function removeEntity(_0x109239,_0x587a0b){return function(_0x2bee90){if(_0x2bee90){return _0x2bee90[_0x71cc('0x20')]()[_0x71cc('0x21')](function(){var _0x1a9b4f=_0x2bee90[_0x71cc('0x22')]({'plain':!![]});var _0x887399='CustomReports';return db[_0x71cc('0x23')][_0x71cc('0x20')]({'where':{'type':_0x887399,'resourceId':_0x1a9b4f['id']}})[_0x71cc('0x21')](function(){return _0x2bee90;});})[_0x71cc('0x21')](function(){_0x109239[_0x71cc('0x15')](0xcc)[_0x71cc('0x16')]();});}};}function handleEntityNotFound(_0x27b933,_0x42e6ec){return function(_0xbce208){if(!_0xbce208){_0x27b933['sendStatus'](0x194);}return _0xbce208;};}function handleError(_0x26065a,_0x43c155){_0x43c155=_0x43c155||0x1f4;return function(_0x28e095){logger[_0x71cc('0x24')](_0x28e095[_0x71cc('0x25')]);if(_0x28e095[_0x71cc('0x26')]){delete _0x28e095[_0x71cc('0x26')];}_0x26065a[_0x71cc('0x15')](_0x43c155)[_0x71cc('0x27')](_0x28e095);};}exports[_0x71cc('0x28')]=function(_0x30f94d,_0x35f723){var _0x1d5805={},_0x2db9c9={},_0x40d0cb={'count':0x0,'rows':[]};var _0x5fa0e0=_['map'](db[_0x71cc('0x29')][_0x71cc('0x2a')],function(_0x34c6bc){return{'name':_0x34c6bc[_0x71cc('0x2b')],'type':_0x34c6bc[_0x71cc('0x2c')][_0x71cc('0x2d')]};});_0x2db9c9['model']=_[_0x71cc('0x2e')](_0x5fa0e0,_0x71cc('0x26'));_0x2db9c9[_0x71cc('0x2f')]=_[_0x71cc('0x30')](_0x30f94d[_0x71cc('0x2f')]);_0x2db9c9[_0x71cc('0x31')]=_[_0x71cc('0x32')](_0x2db9c9['model'],_0x2db9c9[_0x71cc('0x2f')]);_0x1d5805['attributes']=_['intersection'](_0x2db9c9[_0x71cc('0x33')],qs['fields'](_0x30f94d['query'][_0x71cc('0x34')]));_0x1d5805['attributes']=_0x1d5805[_0x71cc('0x35')]['length']?_0x1d5805[_0x71cc('0x35')]:_0x2db9c9[_0x71cc('0x33')];if(!_0x30f94d['query'][_0x71cc('0x36')](_0x71cc('0x37'))){_0x1d5805[_0x71cc('0x1a')]=qs[_0x71cc('0x1a')](_0x30f94d[_0x71cc('0x2f')][_0x71cc('0x1a')]);_0x1d5805[_0x71cc('0x19')]=qs[_0x71cc('0x19')](_0x30f94d[_0x71cc('0x2f')][_0x71cc('0x19')]);}_0x1d5805['order']=qs[_0x71cc('0x38')](_0x30f94d['query'][_0x71cc('0x38')]);_0x1d5805[_0x71cc('0x39')]=qs[_0x71cc('0x31')](_[_0x71cc('0x3a')](_0x30f94d[_0x71cc('0x2f')],_0x2db9c9[_0x71cc('0x31')]),_0x5fa0e0);if(_0x30f94d['query'][_0x71cc('0x3b')]){_0x1d5805['where']=_[_0x71cc('0x3c')](_0x1d5805[_0x71cc('0x39')],{'$or':_[_0x71cc('0x2e')](_0x5fa0e0,function(_0x487e13){if(_0x487e13[_0x71cc('0x2c')]!=='VIRTUAL'){var _0x1746b9={};_0x1746b9[_0x487e13[_0x71cc('0x26')]]={'$like':'%'+_0x30f94d[_0x71cc('0x2f')][_0x71cc('0x3b')]+'%'};return _0x1746b9;}})});}_0x1d5805=_[_0x71cc('0x3c')]({},_0x1d5805,_0x30f94d[_0x71cc('0x3d')]);var _0x104aee={'where':_0x1d5805[_0x71cc('0x39')]};return db[_0x71cc('0x29')][_0x71cc('0x18')](_0x104aee)[_0x71cc('0x21')](function(_0x12bf49){_0x40d0cb['count']=_0x12bf49;if(_0x30f94d[_0x71cc('0x2f')][_0x71cc('0x3e')]){_0x1d5805['include']=[{'all':!![]}];}return db['AnalyticCustomReport'][_0x71cc('0x3f')](_0x1d5805);})[_0x71cc('0x21')](function(_0x490b46){_0x40d0cb[_0x71cc('0x40')]=_0x490b46;return _0x40d0cb;})[_0x71cc('0x21')](respondWithFilteredResult(_0x35f723,_0x1d5805))[_0x71cc('0x41')](handleError(_0x35f723,null));};exports[_0x71cc('0x42')]=function(_0x21ef21,_0x5b3a38){var _0x4791bd={'raw':![],'where':{'id':_0x21ef21[_0x71cc('0x43')]['id']}},_0x4e220c={};_0x4e220c['model']=_[_0x71cc('0x30')](db[_0x71cc('0x29')][_0x71cc('0x2a')]);_0x4e220c[_0x71cc('0x2f')]=_[_0x71cc('0x30')](_0x21ef21[_0x71cc('0x2f')]);_0x4e220c[_0x71cc('0x31')]=_[_0x71cc('0x32')](_0x4e220c[_0x71cc('0x33')],_0x4e220c[_0x71cc('0x2f')]);_0x4791bd[_0x71cc('0x35')]=_[_0x71cc('0x32')](_0x4e220c[_0x71cc('0x33')],qs['fields'](_0x21ef21[_0x71cc('0x2f')][_0x71cc('0x34')]));_0x4791bd[_0x71cc('0x35')]=_0x4791bd['attributes'][_0x71cc('0x44')]?_0x4791bd[_0x71cc('0x35')]:_0x4e220c[_0x71cc('0x33')];if(_0x21ef21[_0x71cc('0x2f')][_0x71cc('0x3e')]){_0x4791bd[_0x71cc('0x45')]=[{'all':!![]}];}_0x4791bd=_[_0x71cc('0x3c')]({},_0x4791bd,_0x21ef21[_0x71cc('0x3d')]);return db[_0x71cc('0x29')][_0x71cc('0x46')](_0x4791bd)[_0x71cc('0x21')](handleEntityNotFound(_0x5b3a38,null))[_0x71cc('0x21')](respondWithResult(_0x5b3a38,null))['catch'](handleError(_0x5b3a38,null));};exports[_0x71cc('0x47')]=function(_0x3b9751,_0x3050c6){return db[_0x71cc('0x29')][_0x71cc('0x47')](_0x3b9751[_0x71cc('0x48')],{})[_0x71cc('0x21')](function(_0x51cd49){var _0x108e3f=_0x3b9751[_0x71cc('0x49')]['get']({'plain':!![]});if(!_0x108e3f)throw new Error(_0x71cc('0x4a'));if(_0x108e3f[_0x71cc('0x4b')]===_0x71cc('0x49')){var _0xe6b3db=_0x51cd49[_0x71cc('0x22')]({'plain':!![]});var _0x1ef6ae=_0x71cc('0x4c');return db[_0x71cc('0x4d')][_0x71cc('0x46')]({'where':{'name':_0x1ef6ae,'userProfileId':_0x108e3f[_0x71cc('0x4e')]},'raw':!![]})[_0x71cc('0x21')](function(_0x580c21){if(_0x580c21&&_0x580c21[_0x71cc('0x4f')]===0x0){return db['UserProfileResource'][_0x71cc('0x47')]({'name':_0xe6b3db['name'],'resourceId':_0xe6b3db['id'],'type':_0x71cc('0x50'),'sectionId':_0x580c21['id']},{})[_0x71cc('0x21')](function(){return _0x51cd49;});}else{return _0x51cd49;}})['catch'](function(_0x2cac03){logger[_0x71cc('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2cac03);throw _0x2cac03;});}return _0x51cd49;})[_0x71cc('0x21')](respondWithResult(_0x3050c6,0xc9))[_0x71cc('0x41')](handleError(_0x3050c6,null));};exports[_0x71cc('0x1f')]=function(_0x1f0673,_0x3ac021){if(_0x1f0673[_0x71cc('0x48')]['id']){delete _0x1f0673[_0x71cc('0x48')]['id'];}return db['AnalyticCustomReport'][_0x71cc('0x46')]({'where':{'id':_0x1f0673[_0x71cc('0x43')]['id']}})['then'](handleEntityNotFound(_0x3ac021,null))['then'](saveUpdates(_0x1f0673[_0x71cc('0x48')],null))[_0x71cc('0x21')](respondWithResult(_0x3ac021,null))['catch'](handleError(_0x3ac021,null));};exports[_0x71cc('0x20')]=function(_0x1dcf54,_0x3a2a0a){return db[_0x71cc('0x29')][_0x71cc('0x46')]({'where':{'id':_0x1dcf54[_0x71cc('0x43')]['id']}})['then'](handleEntityNotFound(_0x3a2a0a,null))['then'](removeEntity(_0x3a2a0a,null))[_0x71cc('0x41')](handleError(_0x3a2a0a,null));};exports['preview']=function(_0x479aa3,_0xbc57f9){var _0x501d6d=0xa;var _0x47de7b=['join','left_join','right_join',_0x71cc('0x51')];var _0x4b5587={'SUM':'SUM(%s)','COUNT':_0x71cc('0x52'),'COUNT DISTINCT':_0x71cc('0x53'),'MAX':_0x71cc('0x54'),'MIN':_0x71cc('0x55'),'AVG':_0x71cc('0x56'),'GROUP_CONCAT':_0x71cc('0x57'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x4c1141={'SEC_TO_TIME':_0x71cc('0x58'),'DATE':_0x71cc('0x59'),'HOUR':_0x71cc('0x5a'),'ROUND':_0x71cc('0x5b'),'UNIX_TIMESTAMP':_0x71cc('0x5c')};var _0x5b1560=function(_0xcd78b5){return!_[_0x71cc('0x5d')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x71cc('0x5e'),_0x71cc('0x5f')],_0xcd78b5);};var _0x513614=function(_0x5484c9){if(!_0x5484c9||!_0x5484c9[_0x71cc('0x60')]['length']){return'';}for(var _0x48735b='(',_0x2dc9d9=0x0;_0x2dc9d9<_0x5484c9[_0x71cc('0x60')][_0x71cc('0x44')];_0x2dc9d9+=0x1){_0x2dc9d9>0x0&&(_0x48735b+='\x20'+_0x5484c9['operator']+'\x20');_0x48735b+=_0x5484c9[_0x71cc('0x60')][_0x2dc9d9][_0x71cc('0x61')]?_0x513614(_0x5484c9[_0x71cc('0x60')][_0x2dc9d9]['group']):_0x5484c9['rules'][_0x2dc9d9]['field']+'\x20'+_0x5484c9[_0x71cc('0x60')][_0x2dc9d9][_0x71cc('0x62')]+(_0x5b1560(_0x5484c9[_0x71cc('0x60')][_0x2dc9d9][_0x71cc('0x62')])?'\x20'+_0x5484c9[_0x71cc('0x60')][_0x2dc9d9][_0x71cc('0x63')]:'');}return _0x48735b+')';};var _0x515d18={'where':{'id':_0x479aa3[_0x71cc('0x43')]['id']}},_0x48b10c,_0x3cf283,_0x36062b,_0x375500,_0x1c60f0;_0x515d18=_[_0x71cc('0x3c')]({},_0x515d18,_0x479aa3[_0x71cc('0x3d')]);return db[_0x71cc('0x29')][_0x71cc('0x46')](_0x515d18)[_0x71cc('0x21')](function(_0x54e7f8){if(_0x54e7f8){_0x48b10c=_0x54e7f8;return _0x54e7f8['getFields']();}return null;})[_0x71cc('0x21')](function(_0x3a86a0){if(_0x3a86a0){if(!_0x3a86a0[_0x71cc('0x44')]){throw new db[(_0x71cc('0x64'))][(_0x71cc('0x65'))](_0x71cc('0x66'),0x193);}_0x3cf283=_0x3a86a0;return db[_0x71cc('0x67')][_0x71cc('0x3f')]({'raw':!![]});}return null;})[_0x71cc('0x21')](function(_0x56c90e){if(_0x56c90e){_0x36062b=_[_0x71cc('0x68')](_0x56c90e,'id');var _0x375f1a;var _0x37adae=squel[_0x71cc('0x69')]();_0x37adae['from'](_0x48b10c['table']);for(var _0x392823=0x0;_0x392823<_0x3cf283[_0x71cc('0x44')];_0x392823+=0x1){_0x375f1a=_0x3cf283[_0x392823][_0x71cc('0x6a')]?_0x36062b[_0x3cf283[_0x392823][_0x71cc('0x6a')]][_0x71cc('0x6b')]:_0x3cf283[_0x392823]['field'];_0x375f1a=_0x3cf283[_0x392823]['function']?_[_0x71cc('0x6c')](_0x4b5587[_0x3cf283[_0x392823][_0x71cc('0x6d')]],'%s',_0x375f1a):_0x375f1a;_0x375f1a=_0x3cf283[_0x392823]['format']?_[_0x71cc('0x6c')](_0x4c1141[_0x3cf283[_0x392823][_0x71cc('0x6e')]],'%s',_0x375f1a):_0x375f1a;if(_0x3cf283[_0x392823][_0x71cc('0x6f')]){_0x37adae[_0x71cc('0x61')](_0x375f1a);}_0x3cf283[_0x392823]['orderBy']&&_0x37adae['order'](_0x375f1a,_0x3cf283[_0x392823]['orderBy']===_0x71cc('0x70')?![]:!![]);_0x37adae[_0x71cc('0x71')](_0x375f1a,_0x3cf283[_0x392823][_0x71cc('0x72')]||_0x375f1a);}if(_0x48b10c[_0x71cc('0x73')]){_0x48b10c[_0x71cc('0x73')]=JSON[_0x71cc('0x74')](_0x48b10c[_0x71cc('0x73')]);for(var _0x13e712=0x0;_0x13e712<_0x48b10c[_0x71cc('0x73')][_0x71cc('0x44')];_0x13e712+=0x1){if(_0x48b10c['joins'][_0x13e712][_0x71cc('0x2c')]&&_[_0x71cc('0x5d')](_0x47de7b,_0x48b10c[_0x71cc('0x73')][_0x13e712][_0x71cc('0x2c')])&&_0x48b10c['joins'][_0x13e712]['parentKey']&&_0x48b10c[_0x71cc('0x73')][_0x13e712][_0x71cc('0x75')]&&_0x48b10c[_0x71cc('0x73')][_0x13e712][_0x71cc('0x76')]){_0x37adae[_0x48b10c[_0x71cc('0x73')][_0x13e712][_0x71cc('0x2c')]](_0x48b10c['joins'][_0x13e712][_0x71cc('0x75')],null,util[_0x71cc('0x6e')]('%s.%s\x20=\x20%s.%s',_0x48b10c['table'],_0x48b10c[_0x71cc('0x73')][_0x13e712][_0x71cc('0x77')],_0x48b10c[_0x71cc('0x73')][_0x13e712][_0x71cc('0x75')],_0x48b10c['joins'][_0x13e712]['foreignKey']));}}}if(_0x48b10c['conditions']){_0x48b10c[_0x71cc('0x78')]=JSON['parse'](_0x48b10c[_0x71cc('0x78')]);_0x37adae[_0x71cc('0x39')](_0x513614(_0x48b10c['conditions']['group']));}_0x1c60f0=_0x37adae[_0x71cc('0x79')]();_0x37adae[_0x71cc('0x1a')](_0x501d6d);_0x37adae[_0x71cc('0x19')](0x0);logger[_0x71cc('0x7a')](_0x71cc('0x7b'),_0x37adae[_0x71cc('0x7c')]());return db[_0x71cc('0x7d')][_0x71cc('0x2f')](_0x37adae[_0x71cc('0x7c')](),{'type':db['sequelize']['QueryTypes'][_0x71cc('0x7e')]});}})[_0x71cc('0x21')](respondWithResult(_0xbc57f9,null))[_0x71cc('0x41')](handleError(_0xbc57f9,null));};function runReport(_0xbfbd9d,_0xd38a9,_0x5181fb){var _0x118979=_0xd38a9[_0x71cc('0x26')];var _0x5c41ee=0xa;var _0x502154=[_0x71cc('0x7f'),_0x71cc('0x80'),_0x71cc('0x81'),'cross_join'];var _0xf625ef={'SUM':_0x71cc('0x82'),'COUNT':_0x71cc('0x52'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x71cc('0x54'),'MIN':_0x71cc('0x55'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x71cc('0x57'),'GROUP_CONCAT ASC':_0x71cc('0x83'),'GROUP_CONCAT DESC':_0x71cc('0x84')};var _0x7667b5={'SEC_TO_TIME':_0x71cc('0x58'),'DATE':_0x71cc('0x59'),'HOUR':_0x71cc('0x5a'),'ROUND':_0x71cc('0x5b'),'UNIX_TIMESTAMP':_0x71cc('0x5c')};var _0x50c11b=function(_0x288a77){return!_[_0x71cc('0x5d')]([_0x71cc('0x85'),_0x71cc('0x86'),_0x71cc('0x5e'),_0x71cc('0x5f')],_0x288a77);};var _0x3af378=function(_0x5a6fc7){if(!_0x5a6fc7||!_0x5a6fc7[_0x71cc('0x60')][_0x71cc('0x44')]){return'';}for(var _0x26cd15='(',_0x34a2ef=0x0;_0x34a2ef<_0x5a6fc7['rules'][_0x71cc('0x44')];_0x34a2ef+=0x1){_0x34a2ef>0x0&&(_0x26cd15+='\x20'+_0x5a6fc7[_0x71cc('0x87')]+'\x20');_0x26cd15+=_0x5a6fc7['rules'][_0x34a2ef][_0x71cc('0x61')]?_0x3af378(_0x5a6fc7[_0x71cc('0x60')][_0x34a2ef][_0x71cc('0x61')]):_0x5a6fc7[_0x71cc('0x60')][_0x34a2ef][_0x71cc('0x71')]+'\x20'+_0x5a6fc7[_0x71cc('0x60')][_0x34a2ef][_0x71cc('0x62')]+(_0x50c11b(_0x5a6fc7[_0x71cc('0x60')][_0x34a2ef]['condition'])?'\x20'+_0x5a6fc7['rules'][_0x34a2ef][_0x71cc('0x63')]:'');}return _0x26cd15+')';};var _0x54f14d={'where':{'id':_0xbfbd9d['id']}},_0x12a85f,_0x28e1d4,_0x1080a0,_0x27a575,_0x1d454b;_0x54f14d=_['merge']({},_0x54f14d,_0x5181fb);return db[_0x71cc('0x29')]['find'](_0x54f14d)[_0x71cc('0x21')](function(_0x563dd6){if(_0x563dd6){_0x12a85f=_0x563dd6;return _0x563dd6['getFields']();}return null;})['then'](function(_0x57c14b){if(_0x57c14b){if(!_0x57c14b[_0x71cc('0x44')]){throw new db[(_0x71cc('0x64'))]['ValidationErrorItem'](_0x71cc('0x66'),0x193);}_0x28e1d4=_0x57c14b;return db[_0x71cc('0x67')][_0x71cc('0x3f')]({'raw':!![]});}return null;})['then'](function(_0x5480be){if(_0x5480be){_0x1080a0=_[_0x71cc('0x68')](_0x5480be,'id');var _0x995883;var _0x276bd7=squel['select']();_0x276bd7['from'](_0x12a85f['table']);for(var _0x1dd722=0x0;_0x1dd722<_0x28e1d4[_0x71cc('0x44')];_0x1dd722+=0x1){_0x995883=_0x28e1d4[_0x1dd722]['MetricId']?_0x1080a0[_0x28e1d4[_0x1dd722][_0x71cc('0x6a')]][_0x71cc('0x6b')]:_0x28e1d4[_0x1dd722][_0x71cc('0x71')];_0x995883=_0x28e1d4[_0x1dd722][_0x71cc('0x6d')]?_[_0x71cc('0x6c')](_0xf625ef[_0x28e1d4[_0x1dd722][_0x71cc('0x6d')]],'%s',_0x995883):_0x995883;_0x995883=_0x28e1d4[_0x1dd722][_0x71cc('0x6e')]?_[_0x71cc('0x6c')](_0x7667b5[_0x28e1d4[_0x1dd722][_0x71cc('0x6e')]],'%s',_0x995883):_0x995883;if(_0x28e1d4[_0x1dd722][_0x71cc('0x6f')]){_0x276bd7[_0x71cc('0x61')](_0x995883);}_0x28e1d4[_0x1dd722][_0x71cc('0x88')]&&_0x276bd7['order'](_0x995883,_0x28e1d4[_0x1dd722][_0x71cc('0x88')]===_0x71cc('0x70')?![]:!![]);_0x276bd7['field'](_0x995883,_0x28e1d4[_0x1dd722][_0x71cc('0x72')]||_0x995883);}if(_0x12a85f[_0x71cc('0x73')]){_0x12a85f['joins']=JSON[_0x71cc('0x74')](_0x12a85f[_0x71cc('0x73')]);for(var _0x31e961=0x0;_0x31e961<_0x12a85f[_0x71cc('0x73')][_0x71cc('0x44')];_0x31e961+=0x1){if(_0x12a85f[_0x71cc('0x73')][_0x31e961]['type']&&_[_0x71cc('0x5d')](_0x502154,_0x12a85f[_0x71cc('0x73')][_0x31e961][_0x71cc('0x2c')])&&_0x12a85f[_0x71cc('0x73')][_0x31e961]['parentKey']&&_0x12a85f[_0x71cc('0x73')][_0x31e961]['foreignTable']&&_0x12a85f[_0x71cc('0x73')][_0x31e961][_0x71cc('0x76')]){_0x276bd7[_0x12a85f[_0x71cc('0x73')][_0x31e961][_0x71cc('0x2c')]](_0x12a85f[_0x71cc('0x73')][_0x31e961]['foreignTable'],null,util[_0x71cc('0x6e')](_0x71cc('0x89'),_0x12a85f[_0x71cc('0x8a')],_0x12a85f['joins'][_0x31e961][_0x71cc('0x77')],_0x12a85f[_0x71cc('0x73')][_0x31e961][_0x71cc('0x75')],_0x12a85f[_0x71cc('0x73')][_0x31e961]['foreignKey']));}}}if(_0x12a85f[_0x71cc('0x78')]){_0x12a85f[_0x71cc('0x78')]=JSON[_0x71cc('0x74')](_0x12a85f[_0x71cc('0x78')]);_0x276bd7[_0x71cc('0x39')](_0x3af378(_0x12a85f[_0x71cc('0x78')]['group']));}_0x1d454b=_0x276bd7[_0x71cc('0x79')]();_0x276bd7[_0x71cc('0x1a')](_0x5c41ee);_0x276bd7[_0x71cc('0x19')](0x0);logger[_0x71cc('0x7a')](_0x71cc('0x7b'),_0x276bd7[_0x71cc('0x7c')]());return db[_0x71cc('0x7d')][_0x71cc('0x2f')](_0x276bd7['toString'](),{'type':db[_0x71cc('0x7d')]['QueryTypes'][_0x71cc('0x7e')]});}})[_0x71cc('0x21')](function(_0x350dcd){if(!_0x350dcd[_0x71cc('0x44')]){throw new db[(_0x71cc('0x64'))][(_0x71cc('0x65'))]('No\x20available\x20data',0xcc);}if(_0xd38a9[_0x71cc('0x8b')]===_0x71cc('0x8c')){return null;}var _0x5a398a=_[_0x71cc('0x3c')](_0xd38a9,{'name':_0xd38a9[_0x71cc('0x8d')]||_0xd38a9['name']||_0x12a85f[_0x71cc('0x26')],'basename':_0x118979,'savename':util['format']('%s-%s.%s',_0xd38a9[_0x71cc('0x26')]||_0x12a85f['name'],require(_0x71cc('0x8e'))[_0x71cc('0x8f')](0x4),_0xd38a9[_0x71cc('0x8b')]||'csv'),'reportId':_0x12a85f['id'],'reportType':_0x71cc('0x90')});return db['AnalyticExtractedReport']['create'](_0x5a398a,{'raw':!![]});})['then'](function(_0xfa589c){if(_0x12a85f[_0x71cc('0x8a')]===_0x71cc('0x91')){_0x1d454b['where'](_0x12a85f['table']+_0x71cc('0x92'),_0xd38a9[_0x71cc('0x93')],_0xd38a9[_0x71cc('0x94')]);}else{_0x1d454b[_0x71cc('0x39')](_0x12a85f['table']+_0x71cc('0x95'),_0xd38a9[_0x71cc('0x93')],_0xd38a9['endDate']);}if(_0xfa589c){logger['info'](_0x71cc('0x96'),_0x1d454b['toString']());require(_0x71cc('0x97'))[_0x71cc('0x98')](path[_0x71cc('0x7f')](__dirname,_0x71cc('0x99'),_0xfa589c['output']),[_0xfa589c['id'],_0x1d454b[_0x71cc('0x7c')](),path[_0x71cc('0x7f')](__dirname,_0x71cc('0x9a'),_0xfa589c[_0x71cc('0x9b')]),_0x118979]);return _0xfa589c;}else{var _0xa8b4f5=squel[_0x71cc('0x69')]();_0xa8b4f5[_0x71cc('0x9c')]('('+_0x1d454b[_0x71cc('0x7c')]()+')',_0x71cc('0x9d'));_0xa8b4f5[_0x71cc('0x71')](_0x71cc('0x9e'),_0x71cc('0x18'));_0x1d454b[_0x71cc('0x1a')](_0xd38a9[_0x71cc('0x1a')]||_0x5c41ee);_0x1d454b[_0x71cc('0x19')](_0xd38a9[_0x71cc('0x19')]||0x0);return dbH[_0x71cc('0x7d')][_0x71cc('0x2f')](_0xa8b4f5[_0x71cc('0x7c')](),{'type':dbH[_0x71cc('0x7d')][_0x71cc('0x9f')][_0x71cc('0x7e')]})[_0x71cc('0x21')](function(_0x3946fe){if(!_0x3946fe[_0x71cc('0x44')]){_0x27a575=0x0;}else{_0x27a575=_0x3946fe[0x0][_0x71cc('0x18')]||0x0;}return dbH[_0x71cc('0x7d')][_0x71cc('0x2f')](_0x1d454b['toString'](),{'type':dbH['sequelize']['QueryTypes']['SELECT']});})[_0x71cc('0x21')](function(_0x414d7e){return{'rows':_0x414d7e||[],'count':_0x27a575};});}});}exports[_0x71cc('0xa0')]=function(_0x49c8c3,_0x32719e){return runReport(_0x49c8c3[_0x71cc('0x43')],_0x49c8c3[_0x71cc('0x2f')],_0x49c8c3[_0x71cc('0x3d')])[_0x71cc('0x21')](respondWithResult(_0x32719e,null))[_0x71cc('0x41')](handleError(_0x32719e,null));};exports[_0x71cc('0xa1')]=runReport;exports['query']=function(_0x1ad23c,_0x3add85){var _0x2c932b=0xa;var _0x330e95=[_0x71cc('0x7f'),_0x71cc('0x80'),'right_join',_0x71cc('0x51')];var _0x37b25d={'SUM':_0x71cc('0x82'),'COUNT':_0x71cc('0x52'),'COUNT DISTINCT':_0x71cc('0x53'),'MAX':_0x71cc('0x54'),'MIN':'MIN(%s)','AVG':_0x71cc('0x56'),'GROUP_CONCAT':_0x71cc('0x57'),'GROUP_CONCAT ASC':_0x71cc('0x83'),'GROUP_CONCAT DESC':_0x71cc('0x84')};var _0x3658f0={'SEC_TO_TIME':_0x71cc('0x58'),'DATE':_0x71cc('0x59'),'HOUR':_0x71cc('0x5a'),'ROUND':_0x71cc('0x5b'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x3242ad=function(_0x568818){return!_['includes']([_0x71cc('0x85'),_0x71cc('0x86'),_0x71cc('0x5e'),_0x71cc('0x5f')],_0x568818);};var _0x2e35e1=function(_0x4b9528){if(!_0x4b9528||!_0x4b9528[_0x71cc('0x60')][_0x71cc('0x44')]){return'';}for(var _0x33dd76='(',_0x2d3744=0x0;_0x2d3744<_0x4b9528['rules'][_0x71cc('0x44')];_0x2d3744+=0x1){_0x2d3744>0x0&&(_0x33dd76+='\x20'+_0x4b9528[_0x71cc('0x87')]+'\x20');_0x33dd76+=_0x4b9528['rules'][_0x2d3744][_0x71cc('0x61')]?_0x2e35e1(_0x4b9528[_0x71cc('0x60')][_0x2d3744]['group']):_0x4b9528[_0x71cc('0x60')][_0x2d3744]['field']+'\x20'+_0x4b9528[_0x71cc('0x60')][_0x2d3744]['condition']+(_0x3242ad(_0x4b9528['rules'][_0x2d3744][_0x71cc('0x62')])?'\x20'+_0x4b9528[_0x71cc('0x60')][_0x2d3744][_0x71cc('0x63')]:'');}return _0x33dd76+')';};var _0x18190c={'where':{'id':_0x1ad23c[_0x71cc('0x43')]['id']}},_0x42a979,_0x61e405,_0x5cb04c,_0x28c262,_0x2cdac3;_0x18190c=_[_0x71cc('0x3c')]({},_0x18190c,_0x1ad23c['options']);return db[_0x71cc('0x29')][_0x71cc('0x46')](_0x18190c)['then'](function(_0x38d275){if(_0x38d275){_0x42a979=_0x38d275;return _0x38d275[_0x71cc('0xa2')]();}return null;})[_0x71cc('0x21')](function(_0x452e81){if(_0x452e81){if(!_0x452e81['length']){throw new db['Sequelize'][(_0x71cc('0x65'))](_0x71cc('0x66'),0x193);}_0x61e405=_0x452e81;return db[_0x71cc('0x67')][_0x71cc('0x3f')]({'raw':!![]});}return null;})[_0x71cc('0x21')](function(_0xaf63ab){if(_0xaf63ab){_0x5cb04c=_[_0x71cc('0x68')](_0xaf63ab,'id');var _0xea1926;var _0x1c6886=squel[_0x71cc('0x69')]();_0x1c6886['from'](_0x42a979[_0x71cc('0x8a')]);for(var _0x128e9f=0x0;_0x128e9f<_0x61e405[_0x71cc('0x44')];_0x128e9f+=0x1){_0xea1926=_0x61e405[_0x128e9f][_0x71cc('0x6a')]?_0x5cb04c[_0x61e405[_0x128e9f][_0x71cc('0x6a')]][_0x71cc('0x6b')]:_0x61e405[_0x128e9f][_0x71cc('0x71')];_0xea1926=_0x61e405[_0x128e9f][_0x71cc('0x6d')]?_[_0x71cc('0x6c')](_0x37b25d[_0x61e405[_0x128e9f][_0x71cc('0x6d')]],'%s',_0xea1926):_0xea1926;_0xea1926=_0x61e405[_0x128e9f]['format']?_[_0x71cc('0x6c')](_0x3658f0[_0x61e405[_0x128e9f]['format']],'%s',_0xea1926):_0xea1926;if(_0x61e405[_0x128e9f]['groupBy']){_0x1c6886[_0x71cc('0x61')](_0xea1926);}_0x61e405[_0x128e9f][_0x71cc('0x88')]&&_0x1c6886['order'](_0xea1926,_0x61e405[_0x128e9f][_0x71cc('0x88')]===_0x71cc('0x70')?![]:!![]);_0x1c6886[_0x71cc('0x71')](_0xea1926,_0x61e405[_0x128e9f]['alias']||_0xea1926);}if(_0x42a979['joins']){_0x42a979[_0x71cc('0x73')]=JSON['parse'](_0x42a979['joins']);for(var _0x462c9f=0x0;_0x462c9f<_0x42a979[_0x71cc('0x73')][_0x71cc('0x44')];_0x462c9f+=0x1){if(_0x42a979['joins'][_0x462c9f][_0x71cc('0x2c')]&&_[_0x71cc('0x5d')](_0x330e95,_0x42a979['joins'][_0x462c9f][_0x71cc('0x2c')])&&_0x42a979[_0x71cc('0x73')][_0x462c9f][_0x71cc('0x77')]&&_0x42a979[_0x71cc('0x73')][_0x462c9f][_0x71cc('0x75')]&&_0x42a979[_0x71cc('0x73')][_0x462c9f][_0x71cc('0x76')]){_0x1c6886[_0x42a979[_0x71cc('0x73')][_0x462c9f]['type']](_0x42a979[_0x71cc('0x73')][_0x462c9f][_0x71cc('0x75')],null,util[_0x71cc('0x6e')](_0x71cc('0x89'),_0x42a979[_0x71cc('0x8a')],_0x42a979['joins'][_0x462c9f][_0x71cc('0x77')],_0x42a979[_0x71cc('0x73')][_0x462c9f][_0x71cc('0x75')],_0x42a979[_0x71cc('0x73')][_0x462c9f][_0x71cc('0x76')]));}}}if(_0x42a979[_0x71cc('0x78')]){_0x42a979[_0x71cc('0x78')]=JSON['parse'](_0x42a979['conditions']);_0x1c6886[_0x71cc('0x39')](_0x2e35e1(_0x42a979[_0x71cc('0x78')][_0x71cc('0x61')]));}_0x2cdac3=_0x1c6886['clone']();_0x1c6886[_0x71cc('0x1a')](_0x2c932b);_0x1c6886[_0x71cc('0x19')](0x0);logger[_0x71cc('0x7a')]('Limited\x20Query:',_0x1c6886[_0x71cc('0x7c')]());return db[_0x71cc('0x7d')]['query'](_0x1c6886['toString'](),{'type':db['sequelize'][_0x71cc('0x9f')][_0x71cc('0x7e')]});}})[_0x71cc('0x21')](function(){return{'sql':_0x2cdac3[_0x71cc('0x7c')]()};})['then'](respondWithResult(_0x3add85,null))['catch'](handleError(_0x3add85,null));};