c983375824a9db0059e7f56a1f69ba2a26507f95
[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 _0x9c45=['AnalyticCustomReport','rawAttributes','key','model','keys','query','filters','intersection','attributes','fields','limit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','show','params','length','catch','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','join','left_join','right_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','GROUP_CONCAT(%s)','SEC_TO_TIME(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','group','condition','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','select','table','MetricId','metric','field','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','MAX(%s)','MIN(%s)','AVG(%s)','DATE(%s)','HOUR(%s)','IS\x20NOT\x20EMPTY','value','keyBy','from','%s.%s\x20=\x20%s.%s','Sequelize','No\x20available\x20data','output','fullPath','%s-%s.%s','randomstring','generate','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','cross_join','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','html-pdf','eml-format','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','dbH','sendStatus','status','end','json','count','offset','set','Content-Range','reject','destroy','then','CustomReports','UserProfileResource','stack','name','send','index','map'];(function(_0x4687df,_0x12099c){var _0x32eaef=function(_0x2387db){while(--_0x2387db){_0x4687df['push'](_0x4687df['shift']());}};_0x32eaef(++_0x12099c);}(_0x9c45,0x119));var _0x59c4=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9c45[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x59c4('0x0'));var emlformat=require(_0x59c4('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x59c4('0x2'));var rp=require(_0x59c4('0x3'));var moment=require('moment');var BPromise=require(_0x59c4('0x4'));var Mustache=require('mustache');var util=require(_0x59c4('0x5'));var path=require(_0x59c4('0x6'));var sox=require(_0x59c4('0x7'));var csv=require(_0x59c4('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x59c4('0x9'));var squel=require('squel');var crypto=require(_0x59c4('0xa'));var jsforce=require(_0x59c4('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x59c4('0xc'));var Papa=require(_0x59c4('0xd'));var Redis=require('ioredis');var authService=require(_0x59c4('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x59c4('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x59c4('0x10'))(_0x59c4('0x11'));var utils=require(_0x59c4('0x12'));var config=require('../../config/environment');var db=require(_0x59c4('0x13'))['db'];var dbH=require(_0x59c4('0x13'))[_0x59c4('0x14')];function respondWithStatusCode(_0x4168ce,_0x185836){_0x185836=_0x185836||0xcc;return function(_0x1ab3c7){if(_0x1ab3c7){return _0x4168ce[_0x59c4('0x15')](_0x185836);}return _0x4168ce[_0x59c4('0x16')](_0x185836)[_0x59c4('0x17')]();};}function respondWithResult(_0x521a92,_0x47d88a){_0x47d88a=_0x47d88a||0xc8;return function(_0x3d83f9){if(_0x3d83f9){return _0x521a92[_0x59c4('0x16')](_0x47d88a)[_0x59c4('0x18')](_0x3d83f9);}};}function respondWithFilteredResult(_0x8ec858,_0x5109e5){return function(_0x45bcdb){if(_0x45bcdb){var _0x9dfc1e=_0x45bcdb[_0x59c4('0x19')],_0x161a57=_0x5109e5['offset'],_0x1467ab=_0x5109e5[_0x59c4('0x1a')]+_0x5109e5['limit'],_0x2629ee;if(_0x1467ab>=_0x9dfc1e){_0x1467ab=_0x9dfc1e;_0x2629ee=0xc8;}else{_0x2629ee=0xce;}_0x8ec858[_0x59c4('0x16')](_0x2629ee);return _0x8ec858[_0x59c4('0x1b')](_0x59c4('0x1c'),_0x161a57+'-'+_0x1467ab+'/'+_0x9dfc1e)[_0x59c4('0x18')](_0x45bcdb);}return null;};}function patchUpdates(_0xb57b25){return function(_0x5b0cbd){try{jsonpatch['apply'](_0x5b0cbd,_0xb57b25,!![]);}catch(_0x43fe24){return BPromise[_0x59c4('0x1d')](_0x43fe24);}return _0x5b0cbd['save']();};}function saveUpdates(_0x172797,_0x1b5078){return function(_0x3c0481){if(_0x3c0481){return _0x3c0481['update'](_0x172797)['then'](function(_0x328771){return _0x328771;});}return null;};}function removeEntity(_0x170762,_0x3fb384){return function(_0x3470de){if(_0x3470de){return _0x3470de[_0x59c4('0x1e')]()[_0x59c4('0x1f')](function(){var _0xbb1b1e=_0x3470de['get']({'plain':!![]});var _0x2a89f7=_0x59c4('0x20');return db[_0x59c4('0x21')][_0x59c4('0x1e')]({'where':{'type':_0x2a89f7,'resourceId':_0xbb1b1e['id']}})['then'](function(){return _0x3470de;});})[_0x59c4('0x1f')](function(){_0x170762[_0x59c4('0x16')](0xcc)[_0x59c4('0x17')]();});}};}function handleEntityNotFound(_0xd1ddc6,_0x4cc88b){return function(_0x4e5809){if(!_0x4e5809){_0xd1ddc6['sendStatus'](0x194);}return _0x4e5809;};}function handleError(_0x44a632,_0x18dc80){_0x18dc80=_0x18dc80||0x1f4;return function(_0xfb598d){logger['error'](_0xfb598d[_0x59c4('0x22')]);if(_0xfb598d[_0x59c4('0x23')]){delete _0xfb598d[_0x59c4('0x23')];}_0x44a632[_0x59c4('0x16')](_0x18dc80)[_0x59c4('0x24')](_0xfb598d);};}exports[_0x59c4('0x25')]=function(_0x527731,_0x3edd71){var _0x852c79={},_0xdd30a9={},_0x1290de={'count':0x0,'rows':[]};var _0x5a33c1=_[_0x59c4('0x26')](db[_0x59c4('0x27')][_0x59c4('0x28')],function(_0x114c63){return{'name':_0x114c63['fieldName'],'type':_0x114c63['type'][_0x59c4('0x29')]};});_0xdd30a9[_0x59c4('0x2a')]=_[_0x59c4('0x26')](_0x5a33c1,_0x59c4('0x23'));_0xdd30a9['query']=_[_0x59c4('0x2b')](_0x527731[_0x59c4('0x2c')]);_0xdd30a9[_0x59c4('0x2d')]=_[_0x59c4('0x2e')](_0xdd30a9[_0x59c4('0x2a')],_0xdd30a9['query']);_0x852c79[_0x59c4('0x2f')]=_[_0x59c4('0x2e')](_0xdd30a9[_0x59c4('0x2a')],qs[_0x59c4('0x30')](_0x527731[_0x59c4('0x2c')][_0x59c4('0x30')]));_0x852c79[_0x59c4('0x2f')]=_0x852c79['attributes']['length']?_0x852c79[_0x59c4('0x2f')]:_0xdd30a9[_0x59c4('0x2a')];if(!_0x527731['query']['hasOwnProperty']('nolimit')){_0x852c79[_0x59c4('0x31')]=qs['limit'](_0x527731[_0x59c4('0x2c')][_0x59c4('0x31')]);_0x852c79[_0x59c4('0x1a')]=qs[_0x59c4('0x1a')](_0x527731[_0x59c4('0x2c')][_0x59c4('0x1a')]);}_0x852c79[_0x59c4('0x32')]=qs[_0x59c4('0x33')](_0x527731[_0x59c4('0x2c')][_0x59c4('0x33')]);_0x852c79[_0x59c4('0x34')]=qs[_0x59c4('0x2d')](_[_0x59c4('0x35')](_0x527731[_0x59c4('0x2c')],_0xdd30a9[_0x59c4('0x2d')]));if(_0x527731[_0x59c4('0x2c')][_0x59c4('0x36')]){_0x852c79[_0x59c4('0x34')]=_[_0x59c4('0x37')](_0x852c79[_0x59c4('0x34')],{'$or':_[_0x59c4('0x26')](_0x5a33c1,function(_0x5a4426){if(_0x5a4426[_0x59c4('0x38')]!==_0x59c4('0x39')){var _0x5634f7={};_0x5634f7[_0x5a4426[_0x59c4('0x23')]]={'$like':'%'+_0x527731[_0x59c4('0x2c')][_0x59c4('0x36')]+'%'};return _0x5634f7;}})});}_0x852c79=_[_0x59c4('0x37')]({},_0x852c79,_0x527731[_0x59c4('0x3a')]);var _0x3b7a9f={'where':_0x852c79[_0x59c4('0x34')]};return db['AnalyticCustomReport'][_0x59c4('0x19')](_0x3b7a9f)[_0x59c4('0x1f')](function(_0x1546c5){_0x1290de[_0x59c4('0x19')]=_0x1546c5;if(_0x527731[_0x59c4('0x2c')][_0x59c4('0x3b')]){_0x852c79[_0x59c4('0x3c')]=[{'all':!![]}];}return db[_0x59c4('0x27')][_0x59c4('0x3d')](_0x852c79);})[_0x59c4('0x1f')](function(_0x33f843){_0x1290de[_0x59c4('0x3e')]=_0x33f843;return _0x1290de;})[_0x59c4('0x1f')](respondWithFilteredResult(_0x3edd71,_0x852c79))['catch'](handleError(_0x3edd71,null));};exports[_0x59c4('0x3f')]=function(_0xbf452f,_0x571a35){var _0x11701e={'raw':![],'where':{'id':_0xbf452f[_0x59c4('0x40')]['id']}},_0x3c30f4={};_0x3c30f4['model']=_[_0x59c4('0x2b')](db['AnalyticCustomReport']['rawAttributes']);_0x3c30f4[_0x59c4('0x2c')]=_[_0x59c4('0x2b')](_0xbf452f['query']);_0x3c30f4['filters']=_[_0x59c4('0x2e')](_0x3c30f4[_0x59c4('0x2a')],_0x3c30f4['query']);_0x11701e[_0x59c4('0x2f')]=_[_0x59c4('0x2e')](_0x3c30f4[_0x59c4('0x2a')],qs[_0x59c4('0x30')](_0xbf452f['query'][_0x59c4('0x30')]));_0x11701e[_0x59c4('0x2f')]=_0x11701e['attributes'][_0x59c4('0x41')]?_0x11701e[_0x59c4('0x2f')]:_0x3c30f4[_0x59c4('0x2a')];if(_0xbf452f['query'][_0x59c4('0x3b')]){_0x11701e[_0x59c4('0x3c')]=[{'all':!![]}];}_0x11701e=_[_0x59c4('0x37')]({},_0x11701e,_0xbf452f[_0x59c4('0x3a')]);return db[_0x59c4('0x27')]['find'](_0x11701e)[_0x59c4('0x1f')](handleEntityNotFound(_0x571a35,null))[_0x59c4('0x1f')](respondWithResult(_0x571a35,null))[_0x59c4('0x42')](handleError(_0x571a35,null));};exports[_0x59c4('0x43')]=function(_0xd286f6,_0x72a44a){return db[_0x59c4('0x27')]['create'](_0xd286f6['body'],{})[_0x59c4('0x1f')](function(_0x1d36d9){var _0x5077d4=_0xd286f6['user'][_0x59c4('0x44')]({'plain':!![]});if(!_0x5077d4)throw new Error(_0x59c4('0x45'));if(_0x5077d4[_0x59c4('0x46')]===_0x59c4('0x47')){var _0x59b908=_0x1d36d9[_0x59c4('0x44')]({'plain':!![]});var _0x4ae62f='Reports';return db['UserProfileSection']['find']({'where':{'name':_0x4ae62f,'userProfileId':_0x5077d4['userProfileId']},'raw':!![]})[_0x59c4('0x1f')](function(_0x1f4ab3){if(_0x1f4ab3&&_0x1f4ab3[_0x59c4('0x48')]===0x0){return db[_0x59c4('0x21')][_0x59c4('0x43')]({'name':_0x59b908['name'],'resourceId':_0x59b908['id'],'type':'CustomReports','sectionId':_0x1f4ab3['id']},{})['then'](function(){return _0x1d36d9;});}else{return _0x1d36d9;}})['catch'](function(_0x2c0bbd){logger[_0x59c4('0x49')](_0x59c4('0x4a'),_0x2c0bbd);throw _0x2c0bbd;});}return _0x1d36d9;})['then'](respondWithResult(_0x72a44a,0xc9))[_0x59c4('0x42')](handleError(_0x72a44a,null));};exports['update']=function(_0x36fe81,_0x2fa469){if(_0x36fe81['body']['id']){delete _0x36fe81[_0x59c4('0x4b')]['id'];}return db['AnalyticCustomReport'][_0x59c4('0x4c')]({'where':{'id':_0x36fe81[_0x59c4('0x40')]['id']}})[_0x59c4('0x1f')](handleEntityNotFound(_0x2fa469,null))[_0x59c4('0x1f')](saveUpdates(_0x36fe81[_0x59c4('0x4b')],null))[_0x59c4('0x1f')](respondWithResult(_0x2fa469,null))[_0x59c4('0x42')](handleError(_0x2fa469,null));};exports[_0x59c4('0x1e')]=function(_0x1433a4,_0x1c41cb){return db[_0x59c4('0x27')][_0x59c4('0x4c')]({'where':{'id':_0x1433a4[_0x59c4('0x40')]['id']}})[_0x59c4('0x1f')](handleEntityNotFound(_0x1c41cb,null))[_0x59c4('0x1f')](removeEntity(_0x1c41cb,null))['catch'](handleError(_0x1c41cb,null));};exports['preview']=function(_0x27893a,_0x525145){var _0x42be01=0xa;var _0x3c175b=[_0x59c4('0x4d'),_0x59c4('0x4e'),_0x59c4('0x4f'),'cross_join'];var _0x35a431={'SUM':_0x59c4('0x50'),'COUNT':_0x59c4('0x51'),'COUNT DISTINCT':_0x59c4('0x52'),'MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x59c4('0x53'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x1f0453={'SEC_TO_TIME':_0x59c4('0x54'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0x59c4('0x55'),'UNIX_TIMESTAMP':_0x59c4('0x56')};var _0x159bec=function(_0x12f6e8){return!_[_0x59c4('0x57')]([_0x59c4('0x58'),_0x59c4('0x59'),_0x59c4('0x5a'),'IS\x20NOT\x20EMPTY'],_0x12f6e8);};var _0x5de981=function(_0x18fc53){if(!_0x18fc53||!_0x18fc53[_0x59c4('0x5b')][_0x59c4('0x41')]){return'';}for(var _0x5486f8='(',_0x3e5d0d=0x0;_0x3e5d0d<_0x18fc53[_0x59c4('0x5b')][_0x59c4('0x41')];_0x3e5d0d+=0x1){_0x3e5d0d>0x0&&(_0x5486f8+='\x20'+_0x18fc53[_0x59c4('0x5c')]+'\x20');_0x5486f8+=_0x18fc53[_0x59c4('0x5b')][_0x3e5d0d][_0x59c4('0x5d')]?_0x5de981(_0x18fc53[_0x59c4('0x5b')][_0x3e5d0d][_0x59c4('0x5d')]):_0x18fc53[_0x59c4('0x5b')][_0x3e5d0d]['field']+'\x20'+_0x18fc53[_0x59c4('0x5b')][_0x3e5d0d][_0x59c4('0x5e')]+(_0x159bec(_0x18fc53[_0x59c4('0x5b')][_0x3e5d0d][_0x59c4('0x5e')])?'\x20'+_0x18fc53[_0x59c4('0x5b')][_0x3e5d0d]['value']:'');}return _0x5486f8+')';};var _0x493d48={'where':{'id':_0x27893a[_0x59c4('0x40')]['id']}},_0x4bf3fe,_0x51569e,_0x4e5453,_0x5d156c,_0x592122;_0x493d48=_['merge']({},_0x493d48,_0x27893a[_0x59c4('0x3a')]);return db['AnalyticCustomReport'][_0x59c4('0x4c')](_0x493d48)[_0x59c4('0x1f')](function(_0x527270){if(_0x527270){_0x4bf3fe=_0x527270;return _0x527270[_0x59c4('0x5f')]();}return null;})[_0x59c4('0x1f')](function(_0x4b7948){if(_0x4b7948){if(!_0x4b7948['length']){throw new db['Sequelize'][(_0x59c4('0x60'))](_0x59c4('0x61'),0x193);}_0x51569e=_0x4b7948;return db[_0x59c4('0x62')][_0x59c4('0x3d')]({'raw':!![]});}return null;})['then'](function(_0x4cac80){if(_0x4cac80){_0x4e5453=_['keyBy'](_0x4cac80,'id');var _0x24ec5d;var _0x3440e4=squel[_0x59c4('0x63')]();_0x3440e4['from'](_0x4bf3fe[_0x59c4('0x64')]);for(var _0x44a165=0x0;_0x44a165<_0x51569e[_0x59c4('0x41')];_0x44a165+=0x1){_0x24ec5d=_0x51569e[_0x44a165][_0x59c4('0x65')]?_0x4e5453[_0x51569e[_0x44a165][_0x59c4('0x65')]][_0x59c4('0x66')]:_0x51569e[_0x44a165][_0x59c4('0x67')];_0x24ec5d=_0x51569e[_0x44a165][_0x59c4('0x68')]?_[_0x59c4('0x69')](_0x35a431[_0x51569e[_0x44a165][_0x59c4('0x68')]],'%s',_0x24ec5d):_0x24ec5d;_0x24ec5d=_0x51569e[_0x44a165][_0x59c4('0x6a')]?_['replace'](_0x1f0453[_0x51569e[_0x44a165]['format']],'%s',_0x24ec5d):_0x24ec5d;if(_0x51569e[_0x44a165][_0x59c4('0x6b')]){_0x3440e4[_0x59c4('0x5d')](_0x24ec5d);}_0x51569e[_0x44a165]['orderBy']&&_0x3440e4[_0x59c4('0x32')](_0x24ec5d,_0x51569e[_0x44a165][_0x59c4('0x6c')]===_0x59c4('0x6d')?![]:!![]);_0x3440e4[_0x59c4('0x67')](_0x24ec5d,_0x51569e[_0x44a165][_0x59c4('0x6e')]||_0x24ec5d);}if(_0x4bf3fe[_0x59c4('0x6f')]){_0x4bf3fe[_0x59c4('0x6f')]=JSON[_0x59c4('0x70')](_0x4bf3fe[_0x59c4('0x6f')]);for(var _0x3dde08=0x0;_0x3dde08<_0x4bf3fe['joins'][_0x59c4('0x41')];_0x3dde08+=0x1){if(_0x4bf3fe[_0x59c4('0x6f')][_0x3dde08][_0x59c4('0x38')]&&_[_0x59c4('0x57')](_0x3c175b,_0x4bf3fe['joins'][_0x3dde08]['type'])&&_0x4bf3fe['joins'][_0x3dde08][_0x59c4('0x71')]&&_0x4bf3fe[_0x59c4('0x6f')][_0x3dde08][_0x59c4('0x72')]&&_0x4bf3fe[_0x59c4('0x6f')][_0x3dde08][_0x59c4('0x73')]){_0x3440e4[_0x4bf3fe[_0x59c4('0x6f')][_0x3dde08]['type']](_0x4bf3fe[_0x59c4('0x6f')][_0x3dde08]['foreignTable'],null,util[_0x59c4('0x6a')]('%s.%s\x20=\x20%s.%s',_0x4bf3fe['table'],_0x4bf3fe[_0x59c4('0x6f')][_0x3dde08][_0x59c4('0x71')],_0x4bf3fe[_0x59c4('0x6f')][_0x3dde08]['foreignTable'],_0x4bf3fe['joins'][_0x3dde08][_0x59c4('0x73')]));}}}if(_0x4bf3fe[_0x59c4('0x74')]){_0x4bf3fe[_0x59c4('0x74')]=JSON[_0x59c4('0x70')](_0x4bf3fe[_0x59c4('0x74')]);_0x3440e4['where'](_0x5de981(_0x4bf3fe[_0x59c4('0x74')]['group']));}_0x592122=_0x3440e4[_0x59c4('0x75')]();_0x3440e4[_0x59c4('0x31')](_0x42be01);_0x3440e4[_0x59c4('0x1a')](0x0);logger[_0x59c4('0x76')](_0x59c4('0x77'),_0x3440e4[_0x59c4('0x78')]());return db[_0x59c4('0x79')]['query'](_0x3440e4[_0x59c4('0x78')](),{'type':db[_0x59c4('0x79')][_0x59c4('0x7a')][_0x59c4('0x7b')]});}})[_0x59c4('0x1f')](respondWithResult(_0x525145,null))[_0x59c4('0x42')](handleError(_0x525145,null));};function runReport(_0x8076c9,_0x2a9fb4,_0x45a722){var _0x5e6031=_0x2a9fb4['name'];var _0x5d0826=0xa;var _0x2a8369=[_0x59c4('0x4d'),_0x59c4('0x4e'),'right_join','cross_join'];var _0x4d54f4={'SUM':_0x59c4('0x50'),'COUNT':_0x59c4('0x51'),'COUNT DISTINCT':_0x59c4('0x52'),'MAX':_0x59c4('0x7c'),'MIN':_0x59c4('0x7d'),'AVG':_0x59c4('0x7e'),'GROUP_CONCAT':_0x59c4('0x53'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x7a9884={'SEC_TO_TIME':_0x59c4('0x54'),'DATE':_0x59c4('0x7f'),'HOUR':_0x59c4('0x80'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0xad004e=function(_0x1ca8d5){return!_[_0x59c4('0x57')](['IS\x20NULL',_0x59c4('0x59'),_0x59c4('0x5a'),_0x59c4('0x81')],_0x1ca8d5);};var _0x34fb56=function(_0x2b1086){if(!_0x2b1086||!_0x2b1086[_0x59c4('0x5b')][_0x59c4('0x41')]){return'';}for(var _0x1d1585='(',_0x5b5ed4=0x0;_0x5b5ed4<_0x2b1086[_0x59c4('0x5b')][_0x59c4('0x41')];_0x5b5ed4+=0x1){_0x5b5ed4>0x0&&(_0x1d1585+='\x20'+_0x2b1086[_0x59c4('0x5c')]+'\x20');_0x1d1585+=_0x2b1086['rules'][_0x5b5ed4]['group']?_0x34fb56(_0x2b1086[_0x59c4('0x5b')][_0x5b5ed4]['group']):_0x2b1086['rules'][_0x5b5ed4]['field']+'\x20'+_0x2b1086['rules'][_0x5b5ed4][_0x59c4('0x5e')]+(_0xad004e(_0x2b1086['rules'][_0x5b5ed4][_0x59c4('0x5e')])?'\x20'+_0x2b1086[_0x59c4('0x5b')][_0x5b5ed4][_0x59c4('0x82')]:'');}return _0x1d1585+')';};var _0x509eb1={'where':{'id':_0x8076c9['id']}},_0x52969a,_0x177590,_0x5229f5,_0x496e70,_0x137f6b;_0x509eb1=_['merge']({},_0x509eb1,_0x45a722);return db[_0x59c4('0x27')][_0x59c4('0x4c')](_0x509eb1)['then'](function(_0x1613cd){if(_0x1613cd){_0x52969a=_0x1613cd;return _0x1613cd['getFields']();}return null;})[_0x59c4('0x1f')](function(_0x21753b){if(_0x21753b){if(!_0x21753b[_0x59c4('0x41')]){throw new db['Sequelize'][(_0x59c4('0x60'))](_0x59c4('0x61'),0x193);}_0x177590=_0x21753b;return db['AnalyticMetric'][_0x59c4('0x3d')]({'raw':!![]});}return null;})[_0x59c4('0x1f')](function(_0x594a2f){if(_0x594a2f){_0x5229f5=_[_0x59c4('0x83')](_0x594a2f,'id');var _0x57d241;var _0x3432df=squel[_0x59c4('0x63')]();_0x3432df[_0x59c4('0x84')](_0x52969a[_0x59c4('0x64')]);for(var _0x358f97=0x0;_0x358f97<_0x177590[_0x59c4('0x41')];_0x358f97+=0x1){_0x57d241=_0x177590[_0x358f97][_0x59c4('0x65')]?_0x5229f5[_0x177590[_0x358f97]['MetricId']]['metric']:_0x177590[_0x358f97][_0x59c4('0x67')];_0x57d241=_0x177590[_0x358f97]['function']?_[_0x59c4('0x69')](_0x4d54f4[_0x177590[_0x358f97]['function']],'%s',_0x57d241):_0x57d241;_0x57d241=_0x177590[_0x358f97][_0x59c4('0x6a')]?_['replace'](_0x7a9884[_0x177590[_0x358f97][_0x59c4('0x6a')]],'%s',_0x57d241):_0x57d241;if(_0x177590[_0x358f97][_0x59c4('0x6b')]){_0x3432df['group'](_0x57d241);}_0x177590[_0x358f97]['orderBy']&&_0x3432df[_0x59c4('0x32')](_0x57d241,_0x177590[_0x358f97][_0x59c4('0x6c')]==='DESC'?![]:!![]);_0x3432df['field'](_0x57d241,_0x177590[_0x358f97]['alias']||_0x57d241);}if(_0x52969a[_0x59c4('0x6f')]){_0x52969a[_0x59c4('0x6f')]=JSON['parse'](_0x52969a[_0x59c4('0x6f')]);for(var _0x65b1c0=0x0;_0x65b1c0<_0x52969a[_0x59c4('0x6f')]['length'];_0x65b1c0+=0x1){if(_0x52969a[_0x59c4('0x6f')][_0x65b1c0][_0x59c4('0x38')]&&_[_0x59c4('0x57')](_0x2a8369,_0x52969a[_0x59c4('0x6f')][_0x65b1c0][_0x59c4('0x38')])&&_0x52969a['joins'][_0x65b1c0]['parentKey']&&_0x52969a[_0x59c4('0x6f')][_0x65b1c0][_0x59c4('0x72')]&&_0x52969a[_0x59c4('0x6f')][_0x65b1c0]['foreignKey']){_0x3432df[_0x52969a[_0x59c4('0x6f')][_0x65b1c0]['type']](_0x52969a[_0x59c4('0x6f')][_0x65b1c0][_0x59c4('0x72')],null,util[_0x59c4('0x6a')](_0x59c4('0x85'),_0x52969a['table'],_0x52969a['joins'][_0x65b1c0][_0x59c4('0x71')],_0x52969a[_0x59c4('0x6f')][_0x65b1c0][_0x59c4('0x72')],_0x52969a[_0x59c4('0x6f')][_0x65b1c0][_0x59c4('0x73')]));}}}if(_0x52969a[_0x59c4('0x74')]){_0x52969a[_0x59c4('0x74')]=JSON['parse'](_0x52969a['conditions']);_0x3432df[_0x59c4('0x34')](_0x34fb56(_0x52969a[_0x59c4('0x74')][_0x59c4('0x5d')]));}_0x137f6b=_0x3432df[_0x59c4('0x75')]();_0x3432df[_0x59c4('0x31')](_0x5d0826);_0x3432df[_0x59c4('0x1a')](0x0);logger['debug']('Limited\x20Query:',_0x3432df[_0x59c4('0x78')]());return db[_0x59c4('0x79')][_0x59c4('0x2c')](_0x3432df[_0x59c4('0x78')](),{'type':db[_0x59c4('0x79')][_0x59c4('0x7a')]['SELECT']});}})[_0x59c4('0x1f')](function(_0x3fbeb3){if(!_0x3fbeb3[_0x59c4('0x41')]){throw new db[(_0x59c4('0x86'))][(_0x59c4('0x60'))](_0x59c4('0x87'),0xcc);}if(_0x2a9fb4[_0x59c4('0x88')]==='web'){return null;}var _0x479ef4=_[_0x59c4('0x37')](_0x2a9fb4,{'name':_0x2a9fb4[_0x59c4('0x89')]||_0x2a9fb4['name']||_0x52969a['name'],'basename':_0x5e6031,'savename':util[_0x59c4('0x6a')](_0x59c4('0x8a'),_0x2a9fb4['name']||_0x52969a[_0x59c4('0x23')],require(_0x59c4('0x8b'))[_0x59c4('0x8c')](0x4),_0x2a9fb4['output']||'csv'),'reportId':_0x52969a['id'],'reportType':'custom'});return db[_0x59c4('0x8d')]['create'](_0x479ef4,{'raw':!![]});})[_0x59c4('0x1f')](function(_0x209c2f){if(_0x52969a['table']===_0x59c4('0x8e')){_0x137f6b['where'](_0x52969a['table']+_0x59c4('0x8f'),_0x2a9fb4[_0x59c4('0x90')],_0x2a9fb4[_0x59c4('0x91')]);}else{_0x137f6b[_0x59c4('0x34')](_0x52969a[_0x59c4('0x64')]+_0x59c4('0x92'),_0x2a9fb4['startDate'],_0x2a9fb4[_0x59c4('0x91')]);}if(_0x209c2f){logger[_0x59c4('0x93')](_0x59c4('0x94'),_0x137f6b[_0x59c4('0x78')]());require('child_process')[_0x59c4('0x95')](path['join'](__dirname,_0x59c4('0x96'),_0x209c2f[_0x59c4('0x88')]),[_0x209c2f['id'],_0x137f6b[_0x59c4('0x78')](),path[_0x59c4('0x4d')](__dirname,_0x59c4('0x97'),_0x209c2f[_0x59c4('0x98')]),_0x5e6031]);return _0x209c2f;}else{var _0x249548=squel[_0x59c4('0x63')]();_0x249548['from']('('+_0x137f6b[_0x59c4('0x78')]()+')',_0x59c4('0x99'));_0x249548[_0x59c4('0x67')](_0x59c4('0x9a'),_0x59c4('0x19'));_0x137f6b[_0x59c4('0x31')](_0x2a9fb4[_0x59c4('0x31')]||_0x5d0826);_0x137f6b[_0x59c4('0x1a')](_0x2a9fb4[_0x59c4('0x1a')]||0x0);return dbH[_0x59c4('0x79')]['query'](_0x249548[_0x59c4('0x78')](),{'type':dbH[_0x59c4('0x79')][_0x59c4('0x7a')]['SELECT']})[_0x59c4('0x1f')](function(_0x3b53bf){if(!_0x3b53bf[_0x59c4('0x41')]){_0x496e70=0x0;}else{_0x496e70=_0x3b53bf[0x0][_0x59c4('0x19')]||0x0;}return dbH[_0x59c4('0x79')]['query'](_0x137f6b[_0x59c4('0x78')](),{'type':dbH[_0x59c4('0x79')]['QueryTypes'][_0x59c4('0x7b')]});})['then'](function(_0x14ff87){return{'rows':_0x14ff87||[],'count':_0x496e70};});}});}exports[_0x59c4('0x9b')]=function(_0x57e3a3,_0x4daa84){return runReport(_0x57e3a3[_0x59c4('0x40')],_0x57e3a3[_0x59c4('0x2c')],_0x57e3a3[_0x59c4('0x3a')])['then'](respondWithResult(_0x4daa84,null))[_0x59c4('0x42')](handleError(_0x4daa84,null));};exports[_0x59c4('0x9c')]=runReport;exports[_0x59c4('0x2c')]=function(_0x2985b0,_0x42c767){var _0x5616b5=0xa;var _0x2e1a0a=[_0x59c4('0x4d'),'left_join',_0x59c4('0x4f'),_0x59c4('0x9d')];var _0x56632d={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x59c4('0x7d'),'AVG':_0x59c4('0x7e'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x59c4('0x9e'),'GROUP_CONCAT DESC':_0x59c4('0x9f')};var _0xa42d5a={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x59c4('0x7f'),'HOUR':_0x59c4('0x80'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x59c4('0x56')};var _0x40442f=function(_0x219325){return!_[_0x59c4('0x57')]([_0x59c4('0x58'),'IS\x20NOT\x20NULL',_0x59c4('0x5a'),_0x59c4('0x81')],_0x219325);};var _0x58a915=function(_0xebf105){if(!_0xebf105||!_0xebf105[_0x59c4('0x5b')][_0x59c4('0x41')]){return'';}for(var _0x2aec18='(',_0x146215=0x0;_0x146215<_0xebf105['rules'][_0x59c4('0x41')];_0x146215+=0x1){_0x146215>0x0&&(_0x2aec18+='\x20'+_0xebf105[_0x59c4('0x5c')]+'\x20');_0x2aec18+=_0xebf105[_0x59c4('0x5b')][_0x146215][_0x59c4('0x5d')]?_0x58a915(_0xebf105[_0x59c4('0x5b')][_0x146215][_0x59c4('0x5d')]):_0xebf105[_0x59c4('0x5b')][_0x146215][_0x59c4('0x67')]+'\x20'+_0xebf105[_0x59c4('0x5b')][_0x146215][_0x59c4('0x5e')]+(_0x40442f(_0xebf105[_0x59c4('0x5b')][_0x146215][_0x59c4('0x5e')])?'\x20'+_0xebf105['rules'][_0x146215][_0x59c4('0x82')]:'');}return _0x2aec18+')';};var _0x180f59={'where':{'id':_0x2985b0['params']['id']}},_0x4f9cd8,_0x4b4af2,_0x1a55ba,_0x4aa697,_0x3a03f2;_0x180f59=_[_0x59c4('0x37')]({},_0x180f59,_0x2985b0[_0x59c4('0x3a')]);return db[_0x59c4('0x27')][_0x59c4('0x4c')](_0x180f59)[_0x59c4('0x1f')](function(_0x12a24b){if(_0x12a24b){_0x4f9cd8=_0x12a24b;return _0x12a24b['getFields']();}return null;})[_0x59c4('0x1f')](function(_0x11a1c5){if(_0x11a1c5){if(!_0x11a1c5['length']){throw new db['Sequelize']['ValidationErrorItem'](_0x59c4('0x61'),0x193);}_0x4b4af2=_0x11a1c5;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0x59c4('0x1f')](function(_0x34c874){if(_0x34c874){_0x1a55ba=_[_0x59c4('0x83')](_0x34c874,'id');var _0x1a4884;var _0x1035a0=squel[_0x59c4('0x63')]();_0x1035a0['from'](_0x4f9cd8['table']);for(var _0x4e1802=0x0;_0x4e1802<_0x4b4af2[_0x59c4('0x41')];_0x4e1802+=0x1){_0x1a4884=_0x4b4af2[_0x4e1802]['MetricId']?_0x1a55ba[_0x4b4af2[_0x4e1802][_0x59c4('0x65')]]['metric']:_0x4b4af2[_0x4e1802][_0x59c4('0x67')];_0x1a4884=_0x4b4af2[_0x4e1802][_0x59c4('0x68')]?_[_0x59c4('0x69')](_0x56632d[_0x4b4af2[_0x4e1802][_0x59c4('0x68')]],'%s',_0x1a4884):_0x1a4884;_0x1a4884=_0x4b4af2[_0x4e1802][_0x59c4('0x6a')]?_[_0x59c4('0x69')](_0xa42d5a[_0x4b4af2[_0x4e1802][_0x59c4('0x6a')]],'%s',_0x1a4884):_0x1a4884;if(_0x4b4af2[_0x4e1802][_0x59c4('0x6b')]){_0x1035a0['group'](_0x1a4884);}_0x4b4af2[_0x4e1802][_0x59c4('0x6c')]&&_0x1035a0[_0x59c4('0x32')](_0x1a4884,_0x4b4af2[_0x4e1802]['orderBy']==='DESC'?![]:!![]);_0x1035a0[_0x59c4('0x67')](_0x1a4884,_0x4b4af2[_0x4e1802][_0x59c4('0x6e')]||_0x1a4884);}if(_0x4f9cd8[_0x59c4('0x6f')]){_0x4f9cd8[_0x59c4('0x6f')]=JSON[_0x59c4('0x70')](_0x4f9cd8['joins']);for(var _0x3485d8=0x0;_0x3485d8<_0x4f9cd8[_0x59c4('0x6f')][_0x59c4('0x41')];_0x3485d8+=0x1){if(_0x4f9cd8[_0x59c4('0x6f')][_0x3485d8][_0x59c4('0x38')]&&_[_0x59c4('0x57')](_0x2e1a0a,_0x4f9cd8[_0x59c4('0x6f')][_0x3485d8][_0x59c4('0x38')])&&_0x4f9cd8[_0x59c4('0x6f')][_0x3485d8][_0x59c4('0x71')]&&_0x4f9cd8[_0x59c4('0x6f')][_0x3485d8]['foreignTable']&&_0x4f9cd8[_0x59c4('0x6f')][_0x3485d8][_0x59c4('0x73')]){_0x1035a0[_0x4f9cd8[_0x59c4('0x6f')][_0x3485d8]['type']](_0x4f9cd8[_0x59c4('0x6f')][_0x3485d8][_0x59c4('0x72')],null,util[_0x59c4('0x6a')]('%s.%s\x20=\x20%s.%s',_0x4f9cd8['table'],_0x4f9cd8['joins'][_0x3485d8][_0x59c4('0x71')],_0x4f9cd8[_0x59c4('0x6f')][_0x3485d8][_0x59c4('0x72')],_0x4f9cd8['joins'][_0x3485d8]['foreignKey']));}}}if(_0x4f9cd8['conditions']){_0x4f9cd8[_0x59c4('0x74')]=JSON[_0x59c4('0x70')](_0x4f9cd8[_0x59c4('0x74')]);_0x1035a0[_0x59c4('0x34')](_0x58a915(_0x4f9cd8[_0x59c4('0x74')][_0x59c4('0x5d')]));}_0x3a03f2=_0x1035a0[_0x59c4('0x75')]();_0x1035a0[_0x59c4('0x31')](_0x5616b5);_0x1035a0['offset'](0x0);logger['debug']('Limited\x20Query:',_0x1035a0[_0x59c4('0x78')]());return db[_0x59c4('0x79')]['query'](_0x1035a0[_0x59c4('0x78')](),{'type':db[_0x59c4('0x79')]['QueryTypes'][_0x59c4('0x7b')]});}})[_0x59c4('0x1f')](function(){return{'sql':_0x3a03f2[_0x59c4('0x78')]()};})[_0x59c4('0x1f')](respondWithResult(_0x42c767,null))['catch'](handleError(_0x42c767,null));};