Built motion from commit efa66e19.|2.6.22
[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 _0x3fef=['pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','params','options','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','autoAssociation','error','find','preview','join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%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)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','from','table','MetricId','metric','function','replace','format','orderBy','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','right_join','cross_join','MAX(%s)','AVG(%s)','HOUR(%s)','IS\x20NOT\x20EMPTY','operator','Sequelize','AnalyticMetric','DESC','output','web','fullPath','%s-%s.%s','generate','csv','custom','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','startDate','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','run','runReport','ROUND(%s)','select','groupBy','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','CustomReports','UserProfileResource','destroy','then','stack','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x1e9182,_0x4965de){var _0x560bb9=function(_0x3484da){while(--_0x3484da){_0x1e9182['push'](_0x1e9182['shift']());}};_0x560bb9(++_0x4965de);}(_0x3fef,0x1a5));var _0xf3fe=function(_0x47cd62,_0x562de6){_0x47cd62=_0x47cd62-0x0;var _0x50ff9c=_0x3fef[_0x47cd62];return _0x50ff9c;};'use strict';var emlformat=require(_0xf3fe('0x0'));var rimraf=require(_0xf3fe('0x1'));var zipdir=require(_0xf3fe('0x2'));var jsonpatch=require(_0xf3fe('0x3'));var rp=require('request-promise');var moment=require(_0xf3fe('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf3fe('0x5'));var util=require('util');var path=require(_0xf3fe('0x6'));var sox=require('sox');var csv=require(_0xf3fe('0x7'));var ejs=require(_0xf3fe('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf3fe('0x9'));var squel=require(_0xf3fe('0xa'));var crypto=require('crypto');var jsforce=require(_0xf3fe('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xf3fe('0x7'));var querystring=require('querystring');var Papa=require(_0xf3fe('0xc'));var Redis=require(_0xf3fe('0xd'));var authService=require(_0xf3fe('0xe'));var qs=require(_0xf3fe('0xf'));var as=require(_0xf3fe('0x10'));var hardwareService=require(_0xf3fe('0x11'));var logger=require(_0xf3fe('0x12'))('api');var utils=require(_0xf3fe('0x13'));var config=require(_0xf3fe('0x14'));var licenseUtil=require(_0xf3fe('0x15'));var db=require(_0xf3fe('0x16'))['db'];var dbH=require(_0xf3fe('0x16'))[_0xf3fe('0x17')];function respondWithStatusCode(_0xecda5a,_0x39ff57){_0x39ff57=_0x39ff57||0xcc;return function(_0xf51f98){if(_0xf51f98){return _0xecda5a[_0xf3fe('0x18')](_0x39ff57);}return _0xecda5a[_0xf3fe('0x19')](_0x39ff57)[_0xf3fe('0x1a')]();};}function respondWithResult(_0x107db7,_0x2b6ca1){_0x2b6ca1=_0x2b6ca1||0xc8;return function(_0x20135a){if(_0x20135a){return _0x107db7['status'](_0x2b6ca1)[_0xf3fe('0x1b')](_0x20135a);}};}function respondWithFilteredResult(_0x1d3620,_0x4f4cb6){return function(_0x52c84c){if(_0x52c84c){var _0x54e015=typeof _0x4f4cb6[_0xf3fe('0x1c')]===_0xf3fe('0x1d')&&typeof _0x4f4cb6[_0xf3fe('0x1e')]===_0xf3fe('0x1d');var _0x195168=_0x52c84c[_0xf3fe('0x1f')];var _0xc40181=_0x54e015?0x0:_0x4f4cb6[_0xf3fe('0x1c')];var _0x3383f7=_0x54e015?_0x52c84c[_0xf3fe('0x1f')]:_0x4f4cb6[_0xf3fe('0x1c')]+_0x4f4cb6['limit'];var _0x2ea147;if(_0x3383f7>=_0x195168){_0x3383f7=_0x195168;_0x2ea147=0xc8;}else{_0x2ea147=0xce;}_0x1d3620[_0xf3fe('0x19')](_0x2ea147);return _0x1d3620[_0xf3fe('0x20')](_0xf3fe('0x21'),_0xc40181+'-'+_0x3383f7+'/'+_0x195168)[_0xf3fe('0x1b')](_0x52c84c);}return null;};}function patchUpdates(_0x359af2){return function(_0x2915d6){try{jsonpatch['apply'](_0x2915d6,_0x359af2,!![]);}catch(_0x1b6589){return BPromise[_0xf3fe('0x22')](_0x1b6589);}return _0x2915d6[_0xf3fe('0x23')]();};}function saveUpdates(_0x4fd043,_0x352c51){return function(_0x3d28ec){if(_0x3d28ec){return _0x3d28ec[_0xf3fe('0x24')](_0x4fd043)['then'](function(_0x5133f6){return _0x5133f6;});}return null;};}function removeEntity(_0x2a6396,_0x2940c3){return function(_0x3b6cf3){if(_0x3b6cf3){return _0x3b6cf3['destroy']()['then'](function(){var _0x30cd5d=_0x3b6cf3['get']({'plain':!![]});var _0x121760=_0xf3fe('0x25');return db[_0xf3fe('0x26')][_0xf3fe('0x27')]({'where':{'type':_0x121760,'resourceId':_0x30cd5d['id']}})[_0xf3fe('0x28')](function(){return _0x3b6cf3;});})[_0xf3fe('0x28')](function(){_0x2a6396[_0xf3fe('0x19')](0xcc)[_0xf3fe('0x1a')]();});}};}function handleEntityNotFound(_0x68c2eb,_0x21a61d){return function(_0x1e2252){if(!_0x1e2252){_0x68c2eb[_0xf3fe('0x18')](0x194);}return _0x1e2252;};}function handleError(_0x27b8f8,_0x1ea586){_0x1ea586=_0x1ea586||0x1f4;return function(_0xeb2c18){logger['error'](_0xeb2c18[_0xf3fe('0x29')]);if(_0xeb2c18['name']){delete _0xeb2c18['name'];}_0x27b8f8['status'](_0x1ea586)['send'](_0xeb2c18);};}exports['index']=function(_0x3c3706,_0xf6f9ec){var _0x1f5ef2={},_0x469acc={},_0x3cae4f={'count':0x0,'rows':[]};var _0x4d6fa8=_[_0xf3fe('0x2a')](db[_0xf3fe('0x2b')][_0xf3fe('0x2c')],function(_0x12cb0d){return{'name':_0x12cb0d[_0xf3fe('0x2d')],'type':_0x12cb0d[_0xf3fe('0x2e')][_0xf3fe('0x2f')]};});_0x469acc[_0xf3fe('0x30')]=_[_0xf3fe('0x2a')](_0x4d6fa8,_0xf3fe('0x31'));_0x469acc[_0xf3fe('0x32')]=_[_0xf3fe('0x33')](_0x3c3706['query']);_0x469acc[_0xf3fe('0x34')]=_[_0xf3fe('0x35')](_0x469acc[_0xf3fe('0x30')],_0x469acc['query']);_0x1f5ef2['attributes']=_[_0xf3fe('0x35')](_0x469acc[_0xf3fe('0x30')],qs[_0xf3fe('0x36')](_0x3c3706[_0xf3fe('0x32')][_0xf3fe('0x36')]));_0x1f5ef2[_0xf3fe('0x37')]=_0x1f5ef2[_0xf3fe('0x37')][_0xf3fe('0x38')]?_0x1f5ef2[_0xf3fe('0x37')]:_0x469acc[_0xf3fe('0x30')];if(!_0x3c3706['query'][_0xf3fe('0x39')](_0xf3fe('0x3a'))){_0x1f5ef2['limit']=qs[_0xf3fe('0x1e')](_0x3c3706[_0xf3fe('0x32')][_0xf3fe('0x1e')]);_0x1f5ef2[_0xf3fe('0x1c')]=qs['offset'](_0x3c3706[_0xf3fe('0x32')][_0xf3fe('0x1c')]);}_0x1f5ef2[_0xf3fe('0x3b')]=qs[_0xf3fe('0x3c')](_0x3c3706[_0xf3fe('0x32')][_0xf3fe('0x3c')]);_0x1f5ef2[_0xf3fe('0x3d')]=qs[_0xf3fe('0x34')](_[_0xf3fe('0x3e')](_0x3c3706['query'],_0x469acc[_0xf3fe('0x34')]),_0x4d6fa8);if(_0x3c3706[_0xf3fe('0x32')][_0xf3fe('0x3f')]){_0x1f5ef2[_0xf3fe('0x3d')]=_[_0xf3fe('0x40')](_0x1f5ef2[_0xf3fe('0x3d')],{'$or':_[_0xf3fe('0x2a')](_0x4d6fa8,function(_0x34d5e9){if(_0x34d5e9[_0xf3fe('0x2e')]!==_0xf3fe('0x41')){var _0x15dc16={};_0x15dc16[_0x34d5e9[_0xf3fe('0x31')]]={'$like':'%'+_0x3c3706[_0xf3fe('0x32')][_0xf3fe('0x3f')]+'%'};return _0x15dc16;}})});}_0x1f5ef2=_['merge']({},_0x1f5ef2,_0x3c3706['options']);var _0x2be4b1={'where':_0x1f5ef2[_0xf3fe('0x3d')]};return db[_0xf3fe('0x2b')][_0xf3fe('0x1f')](_0x2be4b1)[_0xf3fe('0x28')](function(_0x3e6ac6){_0x3cae4f[_0xf3fe('0x1f')]=_0x3e6ac6;if(_0x3c3706[_0xf3fe('0x32')][_0xf3fe('0x42')]){_0x1f5ef2[_0xf3fe('0x43')]=[{'all':!![]}];}return db['AnalyticCustomReport'][_0xf3fe('0x44')](_0x1f5ef2);})[_0xf3fe('0x28')](function(_0x5919a2){_0x3cae4f[_0xf3fe('0x45')]=_0x5919a2;return _0x3cae4f;})['then'](respondWithFilteredResult(_0xf6f9ec,_0x1f5ef2))[_0xf3fe('0x46')](handleError(_0xf6f9ec,null));};exports['show']=function(_0x503d52,_0x1cfb2f){var _0x2f342b={'raw':![],'where':{'id':_0x503d52[_0xf3fe('0x47')]['id']}},_0xb8a9d1={};_0xb8a9d1[_0xf3fe('0x30')]=_[_0xf3fe('0x33')](db[_0xf3fe('0x2b')][_0xf3fe('0x2c')]);_0xb8a9d1[_0xf3fe('0x32')]=_[_0xf3fe('0x33')](_0x503d52['query']);_0xb8a9d1[_0xf3fe('0x34')]=_[_0xf3fe('0x35')](_0xb8a9d1[_0xf3fe('0x30')],_0xb8a9d1['query']);_0x2f342b[_0xf3fe('0x37')]=_[_0xf3fe('0x35')](_0xb8a9d1['model'],qs[_0xf3fe('0x36')](_0x503d52['query'][_0xf3fe('0x36')]));_0x2f342b[_0xf3fe('0x37')]=_0x2f342b[_0xf3fe('0x37')][_0xf3fe('0x38')]?_0x2f342b[_0xf3fe('0x37')]:_0xb8a9d1[_0xf3fe('0x30')];if(_0x503d52[_0xf3fe('0x32')][_0xf3fe('0x42')]){_0x2f342b['include']=[{'all':!![]}];}_0x2f342b=_['merge']({},_0x2f342b,_0x503d52[_0xf3fe('0x48')]);return db[_0xf3fe('0x2b')]['find'](_0x2f342b)[_0xf3fe('0x28')](handleEntityNotFound(_0x1cfb2f,null))[_0xf3fe('0x28')](respondWithResult(_0x1cfb2f,null))[_0xf3fe('0x46')](handleError(_0x1cfb2f,null));};exports['create']=function(_0x3c5867,_0x3a9925){return db[_0xf3fe('0x2b')][_0xf3fe('0x49')](_0x3c5867[_0xf3fe('0x4a')],{})[_0xf3fe('0x28')](function(_0x2dad15){var _0x40f517=_0x3c5867['user']['get']({'plain':!![]});if(!_0x40f517)throw new Error(_0xf3fe('0x4b'));if(_0x40f517['role']==='user'){var _0x1930af=_0x2dad15['get']({'plain':!![]});var _0x20ba3=_0xf3fe('0x4c');return db['UserProfileSection']['find']({'where':{'name':_0x20ba3,'userProfileId':_0x40f517['userProfileId']},'raw':!![]})['then'](function(_0x5003cd){if(_0x5003cd&&_0x5003cd[_0xf3fe('0x4d')]===0x0){return db[_0xf3fe('0x26')][_0xf3fe('0x49')]({'name':_0x1930af['name'],'resourceId':_0x1930af['id'],'type':_0xf3fe('0x25'),'sectionId':_0x5003cd['id']},{})[_0xf3fe('0x28')](function(){return _0x2dad15;});}else{return _0x2dad15;}})[_0xf3fe('0x46')](function(_0x11d695){logger[_0xf3fe('0x4e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x11d695);throw _0x11d695;});}return _0x2dad15;})['then'](respondWithResult(_0x3a9925,0xc9))[_0xf3fe('0x46')](handleError(_0x3a9925,null));};exports['update']=function(_0x580a3e,_0x18d6b8){if(_0x580a3e[_0xf3fe('0x4a')]['id']){delete _0x580a3e[_0xf3fe('0x4a')]['id'];}return db[_0xf3fe('0x2b')][_0xf3fe('0x4f')]({'where':{'id':_0x580a3e[_0xf3fe('0x47')]['id']}})[_0xf3fe('0x28')](handleEntityNotFound(_0x18d6b8,null))[_0xf3fe('0x28')](saveUpdates(_0x580a3e[_0xf3fe('0x4a')],null))[_0xf3fe('0x28')](respondWithResult(_0x18d6b8,null))[_0xf3fe('0x46')](handleError(_0x18d6b8,null));};exports[_0xf3fe('0x27')]=function(_0x437d8f,_0x304b2b){return db['AnalyticCustomReport'][_0xf3fe('0x4f')]({'where':{'id':_0x437d8f[_0xf3fe('0x47')]['id']}})[_0xf3fe('0x28')](handleEntityNotFound(_0x304b2b,null))[_0xf3fe('0x28')](removeEntity(_0x304b2b,null))[_0xf3fe('0x46')](handleError(_0x304b2b,null));};exports[_0xf3fe('0x50')]=function(_0x5e1135,_0x18ec59){var _0x593362=0xa;var _0x52271f=[_0xf3fe('0x51'),'left_join','right_join','cross_join'];var _0x4df53c={'SUM':_0xf3fe('0x52'),'COUNT':_0xf3fe('0x53'),'COUNT DISTINCT':_0xf3fe('0x54'),'MAX':'MAX(%s)','MIN':_0xf3fe('0x55'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xf3fe('0x56'),'GROUP_CONCAT ASC':_0xf3fe('0x57'),'GROUP_CONCAT DESC':_0xf3fe('0x58')};var _0x5a886c={'SEC_TO_TIME':_0xf3fe('0x59'),'DATE':_0xf3fe('0x5a'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xf3fe('0x5b')};var _0x5ec3b3=function(_0x4df864){return!_[_0xf3fe('0x5c')]([_0xf3fe('0x5d'),_0xf3fe('0x5e'),_0xf3fe('0x5f'),'IS\x20NOT\x20EMPTY'],_0x4df864);};var _0x4580c3=function(_0x22ede5){if(!_0x22ede5||!_0x22ede5[_0xf3fe('0x60')][_0xf3fe('0x38')]){return'';}for(var _0x5173f7='(',_0x2d3050=0x0;_0x2d3050<_0x22ede5['rules']['length'];_0x2d3050+=0x1){_0x2d3050>0x0&&(_0x5173f7+='\x20'+_0x22ede5['operator']+'\x20');_0x5173f7+=_0x22ede5[_0xf3fe('0x60')][_0x2d3050][_0xf3fe('0x61')]?_0x4580c3(_0x22ede5[_0xf3fe('0x60')][_0x2d3050][_0xf3fe('0x61')]):_0x22ede5[_0xf3fe('0x60')][_0x2d3050][_0xf3fe('0x62')]+'\x20'+_0x22ede5[_0xf3fe('0x60')][_0x2d3050]['condition']+(_0x5ec3b3(_0x22ede5[_0xf3fe('0x60')][_0x2d3050][_0xf3fe('0x63')])?'\x20'+_0x22ede5[_0xf3fe('0x60')][_0x2d3050][_0xf3fe('0x64')]:'');}return _0x5173f7+')';};var _0x4edd56={'where':{'id':_0x5e1135[_0xf3fe('0x47')]['id']}},_0x230118,_0x57d686,_0x51e67a,_0xdc3245,_0x18f93a;_0x4edd56=_[_0xf3fe('0x40')]({},_0x4edd56,_0x5e1135[_0xf3fe('0x48')]);return db[_0xf3fe('0x2b')][_0xf3fe('0x4f')](_0x4edd56)['then'](function(_0x407994){if(_0x407994){_0x230118=_0x407994;return _0x407994[_0xf3fe('0x65')]();}return null;})[_0xf3fe('0x28')](function(_0x1706b5){if(_0x1706b5){if(!_0x1706b5[_0xf3fe('0x38')]){throw new db['Sequelize'][(_0xf3fe('0x66'))](_0xf3fe('0x67'),0x193);}_0x57d686=_0x1706b5;return db['AnalyticMetric'][_0xf3fe('0x44')]({'raw':!![]});}return null;})['then'](function(_0x1c0f7a){if(_0x1c0f7a){_0x51e67a=_[_0xf3fe('0x68')](_0x1c0f7a,'id');var _0x27a866;var _0x5cbc5d=squel['select']();_0x5cbc5d[_0xf3fe('0x69')](_0x230118[_0xf3fe('0x6a')]);for(var _0x10d483=0x0;_0x10d483<_0x57d686['length'];_0x10d483+=0x1){_0x27a866=_0x57d686[_0x10d483][_0xf3fe('0x6b')]?_0x51e67a[_0x57d686[_0x10d483][_0xf3fe('0x6b')]][_0xf3fe('0x6c')]:_0x57d686[_0x10d483]['field'];_0x27a866=_0x57d686[_0x10d483][_0xf3fe('0x6d')]?_[_0xf3fe('0x6e')](_0x4df53c[_0x57d686[_0x10d483][_0xf3fe('0x6d')]],'%s',_0x27a866):_0x27a866;_0x27a866=_0x57d686[_0x10d483]['format']?_[_0xf3fe('0x6e')](_0x5a886c[_0x57d686[_0x10d483][_0xf3fe('0x6f')]],'%s',_0x27a866):_0x27a866;if(_0x57d686[_0x10d483]['groupBy']){_0x5cbc5d['group'](_0x27a866);}_0x57d686[_0x10d483][_0xf3fe('0x70')]&&_0x5cbc5d[_0xf3fe('0x3b')](_0x27a866,_0x57d686[_0x10d483][_0xf3fe('0x70')]==='DESC'?![]:!![]);_0x5cbc5d[_0xf3fe('0x62')](_0x27a866,_0x57d686[_0x10d483][_0xf3fe('0x71')]||_0x27a866);}if(_0x230118[_0xf3fe('0x72')]){_0x230118[_0xf3fe('0x72')]=JSON[_0xf3fe('0x73')](_0x230118['joins']);for(var _0x3280e2=0x0;_0x3280e2<_0x230118[_0xf3fe('0x72')][_0xf3fe('0x38')];_0x3280e2+=0x1){if(_0x230118[_0xf3fe('0x72')][_0x3280e2][_0xf3fe('0x2e')]&&_['includes'](_0x52271f,_0x230118['joins'][_0x3280e2][_0xf3fe('0x2e')])&&_0x230118[_0xf3fe('0x72')][_0x3280e2][_0xf3fe('0x74')]&&_0x230118['joins'][_0x3280e2][_0xf3fe('0x75')]&&_0x230118[_0xf3fe('0x72')][_0x3280e2][_0xf3fe('0x76')]){_0x5cbc5d[_0x230118[_0xf3fe('0x72')][_0x3280e2][_0xf3fe('0x2e')]](_0x230118[_0xf3fe('0x72')][_0x3280e2]['foreignTable'],null,util[_0xf3fe('0x6f')](_0xf3fe('0x77'),_0x230118['table'],_0x230118[_0xf3fe('0x72')][_0x3280e2][_0xf3fe('0x74')],_0x230118[_0xf3fe('0x72')][_0x3280e2][_0xf3fe('0x75')],_0x230118[_0xf3fe('0x72')][_0x3280e2][_0xf3fe('0x76')]));}}}if(_0x230118[_0xf3fe('0x78')]){_0x230118[_0xf3fe('0x78')]=JSON[_0xf3fe('0x73')](_0x230118['conditions']);_0x5cbc5d[_0xf3fe('0x3d')](_0x4580c3(_0x230118['conditions'][_0xf3fe('0x61')]));}_0x18f93a=_0x5cbc5d[_0xf3fe('0x79')]();_0x5cbc5d['limit'](_0x593362);_0x5cbc5d[_0xf3fe('0x1c')](0x0);logger[_0xf3fe('0x7a')](_0xf3fe('0x7b'),_0x5cbc5d[_0xf3fe('0x7c')]());return dbH['sequelize'][_0xf3fe('0x32')](_0x5cbc5d['toString'](),{'type':dbH[_0xf3fe('0x7d')][_0xf3fe('0x7e')][_0xf3fe('0x7f')]});}})[_0xf3fe('0x28')](respondWithResult(_0x18ec59,null))[_0xf3fe('0x46')](handleError(_0x18ec59,null));};function runReport(_0x3e6959,_0x3fc3a4,_0x109d97){var _0x3d951a=_0x3fc3a4['name'];var _0x241257=0xa;var _0x3dd511=[_0xf3fe('0x51'),_0xf3fe('0x80'),_0xf3fe('0x81'),_0xf3fe('0x82')];var _0x519e59={'SUM':_0xf3fe('0x52'),'COUNT':_0xf3fe('0x53'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xf3fe('0x83'),'MIN':'MIN(%s)','AVG':_0xf3fe('0x84'),'GROUP_CONCAT':_0xf3fe('0x56'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xf3fe('0x58')};var _0x191113={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0xf3fe('0x85'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x12ccdb=function(_0x52519a){return!_['includes']([_0xf3fe('0x5d'),'IS\x20NOT\x20NULL',_0xf3fe('0x5f'),_0xf3fe('0x86')],_0x52519a);};var _0xfffce9=function(_0x38ef60){if(!_0x38ef60||!_0x38ef60[_0xf3fe('0x60')][_0xf3fe('0x38')]){return'';}for(var _0x86dc1f='(',_0x208e39=0x0;_0x208e39<_0x38ef60[_0xf3fe('0x60')][_0xf3fe('0x38')];_0x208e39+=0x1){_0x208e39>0x0&&(_0x86dc1f+='\x20'+_0x38ef60[_0xf3fe('0x87')]+'\x20');_0x86dc1f+=_0x38ef60['rules'][_0x208e39][_0xf3fe('0x61')]?_0xfffce9(_0x38ef60['rules'][_0x208e39][_0xf3fe('0x61')]):_0x38ef60['rules'][_0x208e39][_0xf3fe('0x62')]+'\x20'+_0x38ef60[_0xf3fe('0x60')][_0x208e39]['condition']+(_0x12ccdb(_0x38ef60['rules'][_0x208e39][_0xf3fe('0x63')])?'\x20'+_0x38ef60[_0xf3fe('0x60')][_0x208e39][_0xf3fe('0x64')]:'');}return _0x86dc1f+')';};var _0x32ae96={'where':{'id':_0x3e6959['id']}},_0xfbc24,_0xa5c394,_0xe3b2c7,_0xe6504a,_0x20053c;_0x32ae96=_['merge']({},_0x32ae96,_0x109d97);return db['AnalyticCustomReport'][_0xf3fe('0x4f')](_0x32ae96)[_0xf3fe('0x28')](function(_0x1e5bcc){if(_0x1e5bcc){_0xfbc24=_0x1e5bcc;return _0x1e5bcc['getFields']();}return null;})[_0xf3fe('0x28')](function(_0x40e743){if(_0x40e743){if(!_0x40e743[_0xf3fe('0x38')]){throw new db[(_0xf3fe('0x88'))][(_0xf3fe('0x66'))](_0xf3fe('0x67'),0x193);}_0xa5c394=_0x40e743;return db[_0xf3fe('0x89')]['findAll']({'raw':!![]});}return null;})[_0xf3fe('0x28')](function(_0x5c45eb){if(_0x5c45eb){_0xe3b2c7=_['keyBy'](_0x5c45eb,'id');var _0x2dceec;var _0x86b7a8=squel['select']();_0x86b7a8[_0xf3fe('0x69')](_0xfbc24[_0xf3fe('0x6a')]);for(var _0x4eb554=0x0;_0x4eb554<_0xa5c394[_0xf3fe('0x38')];_0x4eb554+=0x1){_0x2dceec=_0xa5c394[_0x4eb554][_0xf3fe('0x6b')]?_0xe3b2c7[_0xa5c394[_0x4eb554][_0xf3fe('0x6b')]][_0xf3fe('0x6c')]:_0xa5c394[_0x4eb554]['field'];_0x2dceec=_0xa5c394[_0x4eb554]['function']?_[_0xf3fe('0x6e')](_0x519e59[_0xa5c394[_0x4eb554][_0xf3fe('0x6d')]],'%s',_0x2dceec):_0x2dceec;_0x2dceec=_0xa5c394[_0x4eb554][_0xf3fe('0x6f')]?_['replace'](_0x191113[_0xa5c394[_0x4eb554]['format']],'%s',_0x2dceec):_0x2dceec;if(_0xa5c394[_0x4eb554]['groupBy']){_0x86b7a8[_0xf3fe('0x61')](_0x2dceec);}_0xa5c394[_0x4eb554]['orderBy']&&_0x86b7a8[_0xf3fe('0x3b')](_0x2dceec,_0xa5c394[_0x4eb554]['orderBy']===_0xf3fe('0x8a')?![]:!![]);_0x86b7a8[_0xf3fe('0x62')](_0x2dceec,_0xa5c394[_0x4eb554][_0xf3fe('0x71')]||_0x2dceec);}if(_0xfbc24[_0xf3fe('0x72')]){_0xfbc24[_0xf3fe('0x72')]=JSON[_0xf3fe('0x73')](_0xfbc24[_0xf3fe('0x72')]);for(var _0x39dda0=0x0;_0x39dda0<_0xfbc24[_0xf3fe('0x72')][_0xf3fe('0x38')];_0x39dda0+=0x1){if(_0xfbc24[_0xf3fe('0x72')][_0x39dda0][_0xf3fe('0x2e')]&&_['includes'](_0x3dd511,_0xfbc24[_0xf3fe('0x72')][_0x39dda0][_0xf3fe('0x2e')])&&_0xfbc24[_0xf3fe('0x72')][_0x39dda0]['parentKey']&&_0xfbc24['joins'][_0x39dda0][_0xf3fe('0x75')]&&_0xfbc24[_0xf3fe('0x72')][_0x39dda0][_0xf3fe('0x76')]){_0x86b7a8[_0xfbc24[_0xf3fe('0x72')][_0x39dda0]['type']](_0xfbc24[_0xf3fe('0x72')][_0x39dda0]['foreignTable'],null,util[_0xf3fe('0x6f')]('%s.%s\x20=\x20%s.%s',_0xfbc24[_0xf3fe('0x6a')],_0xfbc24[_0xf3fe('0x72')][_0x39dda0]['parentKey'],_0xfbc24[_0xf3fe('0x72')][_0x39dda0][_0xf3fe('0x75')],_0xfbc24['joins'][_0x39dda0]['foreignKey']));}}}if(_0xfbc24[_0xf3fe('0x78')]){_0xfbc24[_0xf3fe('0x78')]=JSON['parse'](_0xfbc24[_0xf3fe('0x78')]);_0x86b7a8[_0xf3fe('0x3d')](_0xfffce9(_0xfbc24[_0xf3fe('0x78')][_0xf3fe('0x61')]));}_0x20053c=_0x86b7a8[_0xf3fe('0x79')]();_0x86b7a8[_0xf3fe('0x1e')](_0x241257);_0x86b7a8[_0xf3fe('0x1c')](0x0);return;}})[_0xf3fe('0x28')](function(){if(_0x3fc3a4[_0xf3fe('0x8b')]===_0xf3fe('0x8c')){return null;}var _0x27465d=_['merge'](_0x3fc3a4,{'name':_0x3fc3a4[_0xf3fe('0x8d')]||_0x3fc3a4['name']||_0xfbc24[_0xf3fe('0x31')],'basename':_0x3d951a,'savename':util[_0xf3fe('0x6f')](_0xf3fe('0x8e'),_0x3fc3a4['name']||_0xfbc24[_0xf3fe('0x31')],require('randomstring')[_0xf3fe('0x8f')](0x4),_0x3fc3a4[_0xf3fe('0x8b')]||_0xf3fe('0x90')),'reportId':_0xfbc24['id'],'reportType':_0xf3fe('0x91')});return db['AnalyticExtractedReport']['create'](_0x27465d,{'raw':!![]});})[_0xf3fe('0x28')](function(_0x353a12){if(_0xfbc24['table']===_0xf3fe('0x92')){_0x20053c[_0xf3fe('0x3d')](_0xfbc24[_0xf3fe('0x6a')]+_0xf3fe('0x93'),_0x3fc3a4['startDate'],_0x3fc3a4[_0xf3fe('0x94')]);}else{_0x20053c['where'](_0xfbc24[_0xf3fe('0x6a')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x3fc3a4[_0xf3fe('0x95')],_0x3fc3a4[_0xf3fe('0x94')]);}if(_0x353a12){logger[_0xf3fe('0x96')](_0xf3fe('0x97'),_0x20053c[_0xf3fe('0x7c')]());require(_0xf3fe('0x98'))[_0xf3fe('0x99')](path['join'](__dirname,_0xf3fe('0x9a'),_0x353a12[_0xf3fe('0x8b')]),[_0x353a12['id'],_0x20053c[_0xf3fe('0x7c')](),path['join'](__dirname,_0xf3fe('0x9b'),_0x353a12['savename']),_0x3d951a]);return _0x353a12;}else{var _0xbff876=squel['select']();_0xbff876[_0xf3fe('0x69')]('('+_0x20053c['toString']()+')','countTable');_0xbff876[_0xf3fe('0x62')]('COUNT(*)',_0xf3fe('0x1f'));_0x20053c[_0xf3fe('0x1e')](_0x3fc3a4[_0xf3fe('0x1e')]||_0x241257);_0x20053c[_0xf3fe('0x1c')](_0x3fc3a4[_0xf3fe('0x1c')]||0x0);return dbH[_0xf3fe('0x7d')][_0xf3fe('0x32')](_0xbff876['toString'](),{'type':dbH[_0xf3fe('0x7d')][_0xf3fe('0x7e')][_0xf3fe('0x7f')]})['then'](function(_0x5224e9){if(!_0x5224e9['length']){_0xe6504a=0x0;}else{_0xe6504a=_0x5224e9[0x0]['count']||0x0;}return dbH[_0xf3fe('0x7d')][_0xf3fe('0x32')](_0x20053c[_0xf3fe('0x7c')](),{'type':dbH[_0xf3fe('0x7d')][_0xf3fe('0x7e')][_0xf3fe('0x7f')]});})[_0xf3fe('0x28')](function(_0x21eb07){return{'rows':_0x21eb07||[],'count':_0xe6504a};});}});}exports[_0xf3fe('0x9c')]=function(_0x2867a4,_0x18d530){return runReport(_0x2867a4[_0xf3fe('0x47')],_0x2867a4[_0xf3fe('0x32')],_0x2867a4['options'])['then'](respondWithResult(_0x18d530,null))['catch'](handleError(_0x18d530,null));};exports[_0xf3fe('0x9d')]=runReport;exports[_0xf3fe('0x32')]=function(_0x190940,_0x52e129){var _0x349007=0xa;var _0x15b699=[_0xf3fe('0x51'),'left_join',_0xf3fe('0x81'),_0xf3fe('0x82')];var _0x197102={'SUM':_0xf3fe('0x52'),'COUNT':_0xf3fe('0x53'),'COUNT DISTINCT':_0xf3fe('0x54'),'MAX':'MAX(%s)','MIN':_0xf3fe('0x55'),'AVG':_0xf3fe('0x84'),'GROUP_CONCAT':_0xf3fe('0x56'),'GROUP_CONCAT ASC':_0xf3fe('0x57'),'GROUP_CONCAT DESC':_0xf3fe('0x58')};var _0x5f539c={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0xf3fe('0x85'),'ROUND':_0xf3fe('0x9e'),'UNIX_TIMESTAMP':_0xf3fe('0x5b')};var _0x74b998=function(_0x229df1){return!_[_0xf3fe('0x5c')]([_0xf3fe('0x5d'),_0xf3fe('0x5e'),_0xf3fe('0x5f'),_0xf3fe('0x86')],_0x229df1);};var _0x1e367a=function(_0x54270a){if(!_0x54270a||!_0x54270a['rules'][_0xf3fe('0x38')]){return'';}for(var _0x33cedf='(',_0x22f718=0x0;_0x22f718<_0x54270a[_0xf3fe('0x60')]['length'];_0x22f718+=0x1){_0x22f718>0x0&&(_0x33cedf+='\x20'+_0x54270a[_0xf3fe('0x87')]+'\x20');_0x33cedf+=_0x54270a[_0xf3fe('0x60')][_0x22f718][_0xf3fe('0x61')]?_0x1e367a(_0x54270a[_0xf3fe('0x60')][_0x22f718][_0xf3fe('0x61')]):_0x54270a['rules'][_0x22f718][_0xf3fe('0x62')]+'\x20'+_0x54270a[_0xf3fe('0x60')][_0x22f718][_0xf3fe('0x63')]+(_0x74b998(_0x54270a[_0xf3fe('0x60')][_0x22f718][_0xf3fe('0x63')])?'\x20'+_0x54270a[_0xf3fe('0x60')][_0x22f718][_0xf3fe('0x64')]:'');}return _0x33cedf+')';};var _0x130158={'where':{'id':_0x190940[_0xf3fe('0x47')]['id']}},_0x32dc75,_0x32b612,_0x57dc20,_0x208cda,_0x4aa929;_0x130158=_['merge']({},_0x130158,_0x190940[_0xf3fe('0x48')]);return db[_0xf3fe('0x2b')][_0xf3fe('0x4f')](_0x130158)[_0xf3fe('0x28')](function(_0x8fe241){if(_0x8fe241){_0x32dc75=_0x8fe241;return _0x8fe241['getFields']();}return null;})[_0xf3fe('0x28')](function(_0x4e1fee){if(_0x4e1fee){if(!_0x4e1fee[_0xf3fe('0x38')]){throw new db[(_0xf3fe('0x88'))]['ValidationErrorItem'](_0xf3fe('0x67'),0x193);}_0x32b612=_0x4e1fee;return db[_0xf3fe('0x89')][_0xf3fe('0x44')]({'raw':!![]});}return null;})[_0xf3fe('0x28')](function(_0x2c7940){if(_0x2c7940){_0x57dc20=_['keyBy'](_0x2c7940,'id');var _0x4bce9b;var _0x4fa809=squel[_0xf3fe('0x9f')]();_0x4fa809[_0xf3fe('0x69')](_0x32dc75[_0xf3fe('0x6a')]);for(var _0xdc74d4=0x0;_0xdc74d4<_0x32b612[_0xf3fe('0x38')];_0xdc74d4+=0x1){_0x4bce9b=_0x32b612[_0xdc74d4][_0xf3fe('0x6b')]?_0x57dc20[_0x32b612[_0xdc74d4]['MetricId']][_0xf3fe('0x6c')]:_0x32b612[_0xdc74d4][_0xf3fe('0x62')];_0x4bce9b=_0x32b612[_0xdc74d4]['function']?_[_0xf3fe('0x6e')](_0x197102[_0x32b612[_0xdc74d4]['function']],'%s',_0x4bce9b):_0x4bce9b;_0x4bce9b=_0x32b612[_0xdc74d4][_0xf3fe('0x6f')]?_[_0xf3fe('0x6e')](_0x5f539c[_0x32b612[_0xdc74d4]['format']],'%s',_0x4bce9b):_0x4bce9b;if(_0x32b612[_0xdc74d4][_0xf3fe('0xa0')]){_0x4fa809[_0xf3fe('0x61')](_0x4bce9b);}_0x32b612[_0xdc74d4]['orderBy']&&_0x4fa809[_0xf3fe('0x3b')](_0x4bce9b,_0x32b612[_0xdc74d4][_0xf3fe('0x70')]===_0xf3fe('0x8a')?![]:!![]);_0x4fa809[_0xf3fe('0x62')](_0x4bce9b,_0x32b612[_0xdc74d4][_0xf3fe('0x71')]||_0x4bce9b);}if(_0x32dc75[_0xf3fe('0x72')]){_0x32dc75[_0xf3fe('0x72')]=JSON['parse'](_0x32dc75['joins']);for(var _0x5f0e0a=0x0;_0x5f0e0a<_0x32dc75[_0xf3fe('0x72')][_0xf3fe('0x38')];_0x5f0e0a+=0x1){if(_0x32dc75[_0xf3fe('0x72')][_0x5f0e0a]['type']&&_['includes'](_0x15b699,_0x32dc75[_0xf3fe('0x72')][_0x5f0e0a][_0xf3fe('0x2e')])&&_0x32dc75[_0xf3fe('0x72')][_0x5f0e0a]['parentKey']&&_0x32dc75[_0xf3fe('0x72')][_0x5f0e0a]['foreignTable']&&_0x32dc75['joins'][_0x5f0e0a][_0xf3fe('0x76')]){_0x4fa809[_0x32dc75[_0xf3fe('0x72')][_0x5f0e0a][_0xf3fe('0x2e')]](_0x32dc75[_0xf3fe('0x72')][_0x5f0e0a][_0xf3fe('0x75')],null,util[_0xf3fe('0x6f')]('%s.%s\x20=\x20%s.%s',_0x32dc75[_0xf3fe('0x6a')],_0x32dc75['joins'][_0x5f0e0a][_0xf3fe('0x74')],_0x32dc75[_0xf3fe('0x72')][_0x5f0e0a]['foreignTable'],_0x32dc75['joins'][_0x5f0e0a]['foreignKey']));}}}if(_0x32dc75[_0xf3fe('0x78')]){_0x32dc75[_0xf3fe('0x78')]=JSON[_0xf3fe('0x73')](_0x32dc75[_0xf3fe('0x78')]);_0x4fa809[_0xf3fe('0x3d')](_0x1e367a(_0x32dc75[_0xf3fe('0x78')][_0xf3fe('0x61')]));}_0x4aa929=_0x4fa809[_0xf3fe('0x79')]();_0x4fa809[_0xf3fe('0x1e')](_0x349007);_0x4fa809['offset'](0x0);logger[_0xf3fe('0x7a')]('Limited\x20Query:',_0x4fa809[_0xf3fe('0x7c')]());return dbH[_0xf3fe('0x7d')][_0xf3fe('0x32')](_0x4fa809[_0xf3fe('0x7c')](),{'type':dbH[_0xf3fe('0x7d')][_0xf3fe('0x7e')][_0xf3fe('0x7f')]});}})[_0xf3fe('0x28')](function(){return{'sql':_0x4aa929['toString']()};})['then'](respondWithResult(_0x52e129,null))[_0xf3fe('0x46')](handleError(_0x52e129,null));};