Built motion from commit (unavailable).|2.5.21
[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 _0x3af5=['ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','query','keys','intersection','model','fields','attributes','length','nolimit','order','sort','where','merge','VIRTUAL','filter','options','include','findAll','catch','show','filters','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','UserProfileSection','find','userProfileId','CustomReports','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','join','cross_join','SUM(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','AnalyticMetric','select','from','table','MetricId','metric','function','replace','orderBy','DESC','alias','joins','parse','includes','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','sequelize','QueryTypes','left_join','right_join','GROUP_CONCAT(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','format','%s-%s.%s','randomstring','generate','output','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','child_process','fork','../../components/export/','toString','../../files/reports','countTable','COUNT(*)','SELECT','run','runReport','COUNT(%s)','debug','Limited\x20Query:','html-pdf','eml-format','zip-dir','fast-json-patch','bluebird','path','sox'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x3af5,0x1d3));var _0x53af=function(_0x1ca93c,_0x3271ab){_0x1ca93c=_0x1ca93c-0x0;var _0x185169=_0x3af5[_0x1ca93c];return _0x185169;};'use strict';var pdf=require(_0x53af('0x0'));var emlformat=require(_0x53af('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x53af('0x2'));var jsonpatch=require(_0x53af('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x53af('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x53af('0x5'));var sox=require(_0x53af('0x6'));var csv=require('to-csv');var ejs=require(_0x53af('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0x53af('0x8'));var crypto=require(_0x53af('0x9'));var jsforce=require(_0x53af('0xa'));var deskjs=require(_0x53af('0xb'));var toCsv=require(_0x53af('0xc'));var querystring=require(_0x53af('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x53af('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x53af('0xf'));var hardwareService=require(_0x53af('0x10'));var logger=require('../../config/logger')(_0x53af('0x11'));var utils=require(_0x53af('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x53af('0x13'));var db=require(_0x53af('0x14'))['db'];var dbH=require(_0x53af('0x14'))['dbH'];function respondWithStatusCode(_0x25a7c9,_0x524f7f){_0x524f7f=_0x524f7f||0xcc;return function(_0x1a2801){if(_0x1a2801){return _0x25a7c9[_0x53af('0x15')](_0x524f7f);}return _0x25a7c9[_0x53af('0x16')](_0x524f7f)[_0x53af('0x17')]();};}function respondWithResult(_0x1dea0a,_0x352655){_0x352655=_0x352655||0xc8;return function(_0x2a5a4c){if(_0x2a5a4c){return _0x1dea0a[_0x53af('0x16')](_0x352655)[_0x53af('0x18')](_0x2a5a4c);}};}function respondWithFilteredResult(_0x3978f9,_0x4d601a){return function(_0x10d18f){if(_0x10d18f){var _0x2db860=_0x10d18f[_0x53af('0x19')],_0x29bb86=_0x4d601a[_0x53af('0x1a')],_0x32833a=_0x4d601a['offset']+_0x4d601a[_0x53af('0x1b')],_0x1d2747;if(_0x32833a>=_0x2db860){_0x32833a=_0x2db860;_0x1d2747=0xc8;}else{_0x1d2747=0xce;}_0x3978f9[_0x53af('0x16')](_0x1d2747);return _0x3978f9[_0x53af('0x1c')](_0x53af('0x1d'),_0x29bb86+'-'+_0x32833a+'/'+_0x2db860)['json'](_0x10d18f);}return null;};}function patchUpdates(_0x55427a){return function(_0x167dc2){try{jsonpatch[_0x53af('0x1e')](_0x167dc2,_0x55427a,!![]);}catch(_0x37ecb3){return BPromise['reject'](_0x37ecb3);}return _0x167dc2[_0x53af('0x1f')]();};}function saveUpdates(_0x16473a,_0x46d0d5){return function(_0x3cd780){if(_0x3cd780){return _0x3cd780[_0x53af('0x20')](_0x16473a)[_0x53af('0x21')](function(_0x222d73){return _0x222d73;});}return null;};}function removeEntity(_0x3d04c9,_0x5c2763){return function(_0x441c9e){if(_0x441c9e){return _0x441c9e[_0x53af('0x22')]()[_0x53af('0x21')](function(){var _0x3e164e=_0x441c9e[_0x53af('0x23')]({'plain':!![]});var _0x250edb='CustomReports';return db[_0x53af('0x24')][_0x53af('0x22')]({'where':{'type':_0x250edb,'resourceId':_0x3e164e['id']}})[_0x53af('0x21')](function(){return _0x441c9e;});})[_0x53af('0x21')](function(){_0x3d04c9['status'](0xcc)[_0x53af('0x17')]();});}};}function handleEntityNotFound(_0x17d47d,_0x25b2cd){return function(_0x530e3c){if(!_0x530e3c){_0x17d47d[_0x53af('0x15')](0x194);}return _0x530e3c;};}function handleError(_0x152dcc,_0x474d5f){_0x474d5f=_0x474d5f||0x1f4;return function(_0x20449f){logger['error'](_0x20449f[_0x53af('0x25')]);if(_0x20449f[_0x53af('0x26')]){delete _0x20449f[_0x53af('0x26')];}_0x152dcc[_0x53af('0x16')](_0x474d5f)[_0x53af('0x27')](_0x20449f);};}exports[_0x53af('0x28')]=function(_0x154cc2,_0x584a53){var _0x5d9fe0={},_0x2fe4c5={},_0x490f70={'count':0x0,'rows':[]};var _0x308819=_[_0x53af('0x29')](db[_0x53af('0x2a')][_0x53af('0x2b')],function(_0x52ae4c){return{'name':_0x52ae4c[_0x53af('0x2c')],'type':_0x52ae4c[_0x53af('0x2d')]['key']};});_0x2fe4c5['model']=_[_0x53af('0x29')](_0x308819,_0x53af('0x26'));_0x2fe4c5[_0x53af('0x2e')]=_[_0x53af('0x2f')](_0x154cc2['query']);_0x2fe4c5['filters']=_[_0x53af('0x30')](_0x2fe4c5[_0x53af('0x31')],_0x2fe4c5[_0x53af('0x2e')]);_0x5d9fe0['attributes']=_['intersection'](_0x2fe4c5[_0x53af('0x31')],qs[_0x53af('0x32')](_0x154cc2[_0x53af('0x2e')][_0x53af('0x32')]));_0x5d9fe0[_0x53af('0x33')]=_0x5d9fe0[_0x53af('0x33')][_0x53af('0x34')]?_0x5d9fe0['attributes']:_0x2fe4c5[_0x53af('0x31')];if(!_0x154cc2[_0x53af('0x2e')]['hasOwnProperty'](_0x53af('0x35'))){_0x5d9fe0[_0x53af('0x1b')]=qs[_0x53af('0x1b')](_0x154cc2[_0x53af('0x2e')][_0x53af('0x1b')]);_0x5d9fe0['offset']=qs[_0x53af('0x1a')](_0x154cc2['query'][_0x53af('0x1a')]);}_0x5d9fe0[_0x53af('0x36')]=qs[_0x53af('0x37')](_0x154cc2[_0x53af('0x2e')][_0x53af('0x37')]);_0x5d9fe0['where']=qs['filters'](_['pick'](_0x154cc2[_0x53af('0x2e')],_0x2fe4c5['filters']),_0x308819);if(_0x154cc2['query']['filter']){_0x5d9fe0[_0x53af('0x38')]=_[_0x53af('0x39')](_0x5d9fe0[_0x53af('0x38')],{'$or':_[_0x53af('0x29')](_0x308819,function(_0x45d47e){if(_0x45d47e[_0x53af('0x2d')]!==_0x53af('0x3a')){var _0x40f8d5={};_0x40f8d5[_0x45d47e[_0x53af('0x26')]]={'$like':'%'+_0x154cc2['query'][_0x53af('0x3b')]+'%'};return _0x40f8d5;}})});}_0x5d9fe0=_[_0x53af('0x39')]({},_0x5d9fe0,_0x154cc2[_0x53af('0x3c')]);var _0x168807={'where':_0x5d9fe0[_0x53af('0x38')]};return db[_0x53af('0x2a')]['count'](_0x168807)[_0x53af('0x21')](function(_0x2d934c){_0x490f70[_0x53af('0x19')]=_0x2d934c;if(_0x154cc2[_0x53af('0x2e')]['includeAll']){_0x5d9fe0[_0x53af('0x3d')]=[{'all':!![]}];}return db[_0x53af('0x2a')][_0x53af('0x3e')](_0x5d9fe0);})[_0x53af('0x21')](function(_0x2f6eef){_0x490f70['rows']=_0x2f6eef;return _0x490f70;})[_0x53af('0x21')](respondWithFilteredResult(_0x584a53,_0x5d9fe0))[_0x53af('0x3f')](handleError(_0x584a53,null));};exports[_0x53af('0x40')]=function(_0xd636d3,_0x36dfeb){var _0x322c66={'raw':![],'where':{'id':_0xd636d3['params']['id']}},_0xca95ed={};_0xca95ed[_0x53af('0x31')]=_[_0x53af('0x2f')](db[_0x53af('0x2a')]['rawAttributes']);_0xca95ed[_0x53af('0x2e')]=_['keys'](_0xd636d3[_0x53af('0x2e')]);_0xca95ed[_0x53af('0x41')]=_[_0x53af('0x30')](_0xca95ed[_0x53af('0x31')],_0xca95ed[_0x53af('0x2e')]);_0x322c66[_0x53af('0x33')]=_[_0x53af('0x30')](_0xca95ed['model'],qs[_0x53af('0x32')](_0xd636d3[_0x53af('0x2e')][_0x53af('0x32')]));_0x322c66[_0x53af('0x33')]=_0x322c66[_0x53af('0x33')][_0x53af('0x34')]?_0x322c66[_0x53af('0x33')]:_0xca95ed[_0x53af('0x31')];if(_0xd636d3[_0x53af('0x2e')]['includeAll']){_0x322c66['include']=[{'all':!![]}];}_0x322c66=_[_0x53af('0x39')]({},_0x322c66,_0xd636d3[_0x53af('0x3c')]);return db['AnalyticCustomReport']['find'](_0x322c66)[_0x53af('0x21')](handleEntityNotFound(_0x36dfeb,null))[_0x53af('0x21')](respondWithResult(_0x36dfeb,null))[_0x53af('0x3f')](handleError(_0x36dfeb,null));};exports[_0x53af('0x42')]=function(_0x1593ee,_0x4029d1){return db['AnalyticCustomReport'][_0x53af('0x42')](_0x1593ee[_0x53af('0x43')],{})[_0x53af('0x21')](function(_0x43deab){var _0x342736=_0x1593ee[_0x53af('0x44')][_0x53af('0x23')]({'plain':!![]});if(!_0x342736)throw new Error(_0x53af('0x45'));if(_0x342736['role']==='user'){var _0x1a5ffd=_0x43deab['get']({'plain':!![]});var _0x2b96b4=_0x53af('0x46');return db[_0x53af('0x47')][_0x53af('0x48')]({'where':{'name':_0x2b96b4,'userProfileId':_0x342736[_0x53af('0x49')]},'raw':!![]})[_0x53af('0x21')](function(_0xf8ed86){if(_0xf8ed86&&_0xf8ed86['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x1a5ffd[_0x53af('0x26')],'resourceId':_0x1a5ffd['id'],'type':_0x53af('0x4a'),'sectionId':_0xf8ed86['id']},{})[_0x53af('0x21')](function(){return _0x43deab;});}else{return _0x43deab;}})[_0x53af('0x3f')](function(_0x483670){logger['error'](_0x53af('0x4b'),_0x483670);throw _0x483670;});}return _0x43deab;})[_0x53af('0x21')](respondWithResult(_0x4029d1,0xc9))[_0x53af('0x3f')](handleError(_0x4029d1,null));};exports['update']=function(_0x56c5b9,_0x56e9f4){if(_0x56c5b9[_0x53af('0x43')]['id']){delete _0x56c5b9[_0x53af('0x43')]['id'];}return db[_0x53af('0x2a')][_0x53af('0x48')]({'where':{'id':_0x56c5b9[_0x53af('0x4c')]['id']}})['then'](handleEntityNotFound(_0x56e9f4,null))[_0x53af('0x21')](saveUpdates(_0x56c5b9[_0x53af('0x43')],null))[_0x53af('0x21')](respondWithResult(_0x56e9f4,null))[_0x53af('0x3f')](handleError(_0x56e9f4,null));};exports[_0x53af('0x22')]=function(_0x106e2d,_0x523cdd){return db[_0x53af('0x2a')]['find']({'where':{'id':_0x106e2d[_0x53af('0x4c')]['id']}})['then'](handleEntityNotFound(_0x523cdd,null))[_0x53af('0x21')](removeEntity(_0x523cdd,null))[_0x53af('0x3f')](handleError(_0x523cdd,null));};exports['preview']=function(_0x5735df,_0x573f93){var _0x57c2f6=0xa;var _0x5b4c1c=[_0x53af('0x4d'),'left_join','right_join',_0x53af('0x4e')];var _0xb516a7={'SUM':_0x53af('0x4f'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x53af('0x50'),'MAX':_0x53af('0x51'),'MIN':_0x53af('0x52'),'AVG':_0x53af('0x53'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x53af('0x54'),'GROUP_CONCAT DESC':_0x53af('0x55')};var _0x37bf3c={'SEC_TO_TIME':_0x53af('0x56'),'DATE':_0x53af('0x57'),'HOUR':_0x53af('0x58'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x4e0c79=function(_0x175a0e){return!_['includes']([_0x53af('0x59'),_0x53af('0x5a'),_0x53af('0x5b'),_0x53af('0x5c')],_0x175a0e);};var _0x9964d4=function(_0xf8646a){if(!_0xf8646a||!_0xf8646a['rules'][_0x53af('0x34')]){return'';}for(var _0xaa1a24='(',_0x1e921f=0x0;_0x1e921f<_0xf8646a[_0x53af('0x5d')][_0x53af('0x34')];_0x1e921f+=0x1){_0x1e921f>0x0&&(_0xaa1a24+='\x20'+_0xf8646a[_0x53af('0x5e')]+'\x20');_0xaa1a24+=_0xf8646a[_0x53af('0x5d')][_0x1e921f][_0x53af('0x5f')]?_0x9964d4(_0xf8646a[_0x53af('0x5d')][_0x1e921f][_0x53af('0x5f')]):_0xf8646a[_0x53af('0x5d')][_0x1e921f][_0x53af('0x60')]+'\x20'+_0xf8646a['rules'][_0x1e921f][_0x53af('0x61')]+(_0x4e0c79(_0xf8646a[_0x53af('0x5d')][_0x1e921f][_0x53af('0x61')])?'\x20'+_0xf8646a[_0x53af('0x5d')][_0x1e921f][_0x53af('0x62')]:'');}return _0xaa1a24+')';};var _0x1d8ed0={'where':{'id':_0x5735df[_0x53af('0x4c')]['id']}},_0x524997,_0x25e5e7,_0x1933be,_0x2b729a,_0x18ea1a;_0x1d8ed0=_['merge']({},_0x1d8ed0,_0x5735df['options']);return db[_0x53af('0x2a')][_0x53af('0x48')](_0x1d8ed0)[_0x53af('0x21')](function(_0x1d5732){if(_0x1d5732){_0x524997=_0x1d5732;return _0x1d5732[_0x53af('0x63')]();}return null;})['then'](function(_0x34886e){if(_0x34886e){if(!_0x34886e[_0x53af('0x34')]){throw new db[(_0x53af('0x64'))][(_0x53af('0x65'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x25e5e7=_0x34886e;return db[_0x53af('0x66')][_0x53af('0x3e')]({'raw':!![]});}return null;})['then'](function(_0x3236a8){if(_0x3236a8){_0x1933be=_['keyBy'](_0x3236a8,'id');var _0x304249;var _0x4f63cb=squel[_0x53af('0x67')]();_0x4f63cb[_0x53af('0x68')](_0x524997[_0x53af('0x69')]);for(var _0x2d86ce=0x0;_0x2d86ce<_0x25e5e7['length'];_0x2d86ce+=0x1){_0x304249=_0x25e5e7[_0x2d86ce][_0x53af('0x6a')]?_0x1933be[_0x25e5e7[_0x2d86ce][_0x53af('0x6a')]][_0x53af('0x6b')]:_0x25e5e7[_0x2d86ce]['field'];_0x304249=_0x25e5e7[_0x2d86ce][_0x53af('0x6c')]?_[_0x53af('0x6d')](_0xb516a7[_0x25e5e7[_0x2d86ce][_0x53af('0x6c')]],'%s',_0x304249):_0x304249;_0x304249=_0x25e5e7[_0x2d86ce]['format']?_[_0x53af('0x6d')](_0x37bf3c[_0x25e5e7[_0x2d86ce]['format']],'%s',_0x304249):_0x304249;if(_0x25e5e7[_0x2d86ce]['groupBy']){_0x4f63cb[_0x53af('0x5f')](_0x304249);}_0x25e5e7[_0x2d86ce][_0x53af('0x6e')]&&_0x4f63cb[_0x53af('0x36')](_0x304249,_0x25e5e7[_0x2d86ce][_0x53af('0x6e')]===_0x53af('0x6f')?![]:!![]);_0x4f63cb[_0x53af('0x60')](_0x304249,_0x25e5e7[_0x2d86ce][_0x53af('0x70')]||_0x304249);}if(_0x524997[_0x53af('0x71')]){_0x524997[_0x53af('0x71')]=JSON[_0x53af('0x72')](_0x524997[_0x53af('0x71')]);for(var _0x17d040=0x0;_0x17d040<_0x524997['joins']['length'];_0x17d040+=0x1){if(_0x524997[_0x53af('0x71')][_0x17d040]['type']&&_[_0x53af('0x73')](_0x5b4c1c,_0x524997['joins'][_0x17d040][_0x53af('0x2d')])&&_0x524997[_0x53af('0x71')][_0x17d040][_0x53af('0x74')]&&_0x524997[_0x53af('0x71')][_0x17d040][_0x53af('0x75')]&&_0x524997[_0x53af('0x71')][_0x17d040][_0x53af('0x76')]){_0x4f63cb[_0x524997[_0x53af('0x71')][_0x17d040][_0x53af('0x2d')]](_0x524997[_0x53af('0x71')][_0x17d040][_0x53af('0x75')],null,util['format'](_0x53af('0x77'),_0x524997[_0x53af('0x69')],_0x524997[_0x53af('0x71')][_0x17d040][_0x53af('0x74')],_0x524997[_0x53af('0x71')][_0x17d040][_0x53af('0x75')],_0x524997[_0x53af('0x71')][_0x17d040][_0x53af('0x76')]));}}}if(_0x524997[_0x53af('0x78')]){_0x524997[_0x53af('0x78')]=JSON[_0x53af('0x72')](_0x524997['conditions']);_0x4f63cb[_0x53af('0x38')](_0x9964d4(_0x524997[_0x53af('0x78')][_0x53af('0x5f')]));}_0x18ea1a=_0x4f63cb[_0x53af('0x79')]();_0x4f63cb['limit'](_0x57c2f6);_0x4f63cb['offset'](0x0);logger['debug']('Limited\x20Query:',_0x4f63cb['toString']());return dbH['sequelize'][_0x53af('0x2e')](_0x4f63cb['toString'](),{'type':dbH[_0x53af('0x7a')][_0x53af('0x7b')]['SELECT']});}})[_0x53af('0x21')](respondWithResult(_0x573f93,null))[_0x53af('0x3f')](handleError(_0x573f93,null));};function runReport(_0x4fd8ac,_0x5a7521,_0x13842f){var _0x2f544b=_0x5a7521['name'];var _0x64a8c8=0xa;var _0x5c814d=[_0x53af('0x4d'),_0x53af('0x7c'),_0x53af('0x7d'),_0x53af('0x4e')];var _0x2a1b19={'SUM':_0x53af('0x4f'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x53af('0x50'),'MAX':_0x53af('0x51'),'MIN':_0x53af('0x52'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x53af('0x7e'),'GROUP_CONCAT ASC':_0x53af('0x54'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x4389fd={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x53af('0x57'),'HOUR':_0x53af('0x58'),'ROUND':_0x53af('0x7f'),'UNIX_TIMESTAMP':_0x53af('0x80')};var _0x32eafa=function(_0x162f07){return!_[_0x53af('0x73')]([_0x53af('0x59'),_0x53af('0x5a'),_0x53af('0x5b'),_0x53af('0x5c')],_0x162f07);};var _0x557387=function(_0x191d03){if(!_0x191d03||!_0x191d03[_0x53af('0x5d')][_0x53af('0x34')]){return'';}for(var _0x4e82ca='(',_0x662f7a=0x0;_0x662f7a<_0x191d03[_0x53af('0x5d')][_0x53af('0x34')];_0x662f7a+=0x1){_0x662f7a>0x0&&(_0x4e82ca+='\x20'+_0x191d03['operator']+'\x20');_0x4e82ca+=_0x191d03['rules'][_0x662f7a][_0x53af('0x5f')]?_0x557387(_0x191d03[_0x53af('0x5d')][_0x662f7a][_0x53af('0x5f')]):_0x191d03['rules'][_0x662f7a][_0x53af('0x60')]+'\x20'+_0x191d03[_0x53af('0x5d')][_0x662f7a][_0x53af('0x61')]+(_0x32eafa(_0x191d03[_0x53af('0x5d')][_0x662f7a][_0x53af('0x61')])?'\x20'+_0x191d03['rules'][_0x662f7a][_0x53af('0x62')]:'');}return _0x4e82ca+')';};var _0x4998f1={'where':{'id':_0x4fd8ac['id']}},_0x3fdfb1,_0x844c6a,_0x51808a,_0x47fbbe,_0x5d3327;_0x4998f1=_[_0x53af('0x39')]({},_0x4998f1,_0x13842f);return db[_0x53af('0x2a')][_0x53af('0x48')](_0x4998f1)[_0x53af('0x21')](function(_0x16eae9){if(_0x16eae9){_0x3fdfb1=_0x16eae9;return _0x16eae9['getFields']();}return null;})[_0x53af('0x21')](function(_0x5e59bb){if(_0x5e59bb){if(!_0x5e59bb[_0x53af('0x34')]){throw new db[(_0x53af('0x64'))][(_0x53af('0x65'))](_0x53af('0x81'),0x193);}_0x844c6a=_0x5e59bb;return db[_0x53af('0x66')][_0x53af('0x3e')]({'raw':!![]});}return null;})[_0x53af('0x21')](function(_0x3cb0d7){if(_0x3cb0d7){_0x51808a=_[_0x53af('0x82')](_0x3cb0d7,'id');var _0x533f3d;var _0x20dfff=squel[_0x53af('0x67')]();_0x20dfff[_0x53af('0x68')](_0x3fdfb1['table']);for(var _0x2a2dd4=0x0;_0x2a2dd4<_0x844c6a[_0x53af('0x34')];_0x2a2dd4+=0x1){_0x533f3d=_0x844c6a[_0x2a2dd4][_0x53af('0x6a')]?_0x51808a[_0x844c6a[_0x2a2dd4]['MetricId']][_0x53af('0x6b')]:_0x844c6a[_0x2a2dd4][_0x53af('0x60')];_0x533f3d=_0x844c6a[_0x2a2dd4][_0x53af('0x6c')]?_[_0x53af('0x6d')](_0x2a1b19[_0x844c6a[_0x2a2dd4][_0x53af('0x6c')]],'%s',_0x533f3d):_0x533f3d;_0x533f3d=_0x844c6a[_0x2a2dd4][_0x53af('0x83')]?_[_0x53af('0x6d')](_0x4389fd[_0x844c6a[_0x2a2dd4]['format']],'%s',_0x533f3d):_0x533f3d;if(_0x844c6a[_0x2a2dd4]['groupBy']){_0x20dfff[_0x53af('0x5f')](_0x533f3d);}_0x844c6a[_0x2a2dd4][_0x53af('0x6e')]&&_0x20dfff['order'](_0x533f3d,_0x844c6a[_0x2a2dd4]['orderBy']===_0x53af('0x6f')?![]:!![]);_0x20dfff[_0x53af('0x60')](_0x533f3d,_0x844c6a[_0x2a2dd4][_0x53af('0x70')]||_0x533f3d);}if(_0x3fdfb1[_0x53af('0x71')]){_0x3fdfb1[_0x53af('0x71')]=JSON['parse'](_0x3fdfb1['joins']);for(var _0x583f97=0x0;_0x583f97<_0x3fdfb1['joins'][_0x53af('0x34')];_0x583f97+=0x1){if(_0x3fdfb1[_0x53af('0x71')][_0x583f97][_0x53af('0x2d')]&&_[_0x53af('0x73')](_0x5c814d,_0x3fdfb1[_0x53af('0x71')][_0x583f97][_0x53af('0x2d')])&&_0x3fdfb1[_0x53af('0x71')][_0x583f97][_0x53af('0x74')]&&_0x3fdfb1[_0x53af('0x71')][_0x583f97]['foreignTable']&&_0x3fdfb1[_0x53af('0x71')][_0x583f97][_0x53af('0x76')]){_0x20dfff[_0x3fdfb1[_0x53af('0x71')][_0x583f97][_0x53af('0x2d')]](_0x3fdfb1['joins'][_0x583f97][_0x53af('0x75')],null,util[_0x53af('0x83')](_0x53af('0x77'),_0x3fdfb1[_0x53af('0x69')],_0x3fdfb1[_0x53af('0x71')][_0x583f97][_0x53af('0x74')],_0x3fdfb1[_0x53af('0x71')][_0x583f97]['foreignTable'],_0x3fdfb1[_0x53af('0x71')][_0x583f97][_0x53af('0x76')]));}}}if(_0x3fdfb1[_0x53af('0x78')]){_0x3fdfb1['conditions']=JSON[_0x53af('0x72')](_0x3fdfb1[_0x53af('0x78')]);_0x20dfff['where'](_0x557387(_0x3fdfb1[_0x53af('0x78')][_0x53af('0x5f')]));}_0x5d3327=_0x20dfff['clone']();_0x20dfff[_0x53af('0x1b')](_0x64a8c8);_0x20dfff['offset'](0x0);return;}})['then'](function(){if(_0x5a7521['output']==='web'){return null;}var _0x321843=_[_0x53af('0x39')](_0x5a7521,{'name':_0x5a7521['fullPath']||_0x5a7521['name']||_0x3fdfb1[_0x53af('0x26')],'basename':_0x2f544b,'savename':util[_0x53af('0x83')](_0x53af('0x84'),_0x5a7521[_0x53af('0x26')]||_0x3fdfb1[_0x53af('0x26')],require(_0x53af('0x85'))[_0x53af('0x86')](0x4),_0x5a7521[_0x53af('0x87')]||_0x53af('0x88')),'reportId':_0x3fdfb1['id'],'reportType':_0x53af('0x89')});return db[_0x53af('0x8a')][_0x53af('0x42')](_0x321843,{'raw':!![]});})['then'](function(_0x221823){if(_0x3fdfb1['table']===_0x53af('0x8b')){_0x5d3327['where'](_0x3fdfb1[_0x53af('0x69')]+_0x53af('0x8c'),_0x5a7521[_0x53af('0x8d')],_0x5a7521[_0x53af('0x8e')]);}else{_0x5d3327[_0x53af('0x38')](_0x3fdfb1[_0x53af('0x69')]+_0x53af('0x8f'),_0x5a7521[_0x53af('0x8d')],_0x5a7521[_0x53af('0x8e')]);}if(_0x221823){logger['info'](_0x53af('0x90'),_0x5d3327['toString']());require(_0x53af('0x91'))[_0x53af('0x92')](path[_0x53af('0x4d')](__dirname,_0x53af('0x93'),_0x221823[_0x53af('0x87')]),[_0x221823['id'],_0x5d3327[_0x53af('0x94')](),path['join'](__dirname,_0x53af('0x95'),_0x221823['savename']),_0x2f544b]);return _0x221823;}else{var _0x448f08=squel[_0x53af('0x67')]();_0x448f08['from']('('+_0x5d3327['toString']()+')',_0x53af('0x96'));_0x448f08[_0x53af('0x60')](_0x53af('0x97'),'count');_0x5d3327[_0x53af('0x1b')](_0x5a7521['limit']||_0x64a8c8);_0x5d3327[_0x53af('0x1a')](_0x5a7521[_0x53af('0x1a')]||0x0);return dbH[_0x53af('0x7a')][_0x53af('0x2e')](_0x448f08[_0x53af('0x94')](),{'type':dbH[_0x53af('0x7a')][_0x53af('0x7b')][_0x53af('0x98')]})[_0x53af('0x21')](function(_0x1c9a1b){if(!_0x1c9a1b[_0x53af('0x34')]){_0x47fbbe=0x0;}else{_0x47fbbe=_0x1c9a1b[0x0][_0x53af('0x19')]||0x0;}return dbH['sequelize']['query'](_0x5d3327[_0x53af('0x94')](),{'type':dbH[_0x53af('0x7a')][_0x53af('0x7b')][_0x53af('0x98')]});})[_0x53af('0x21')](function(_0x33478c){return{'rows':_0x33478c||[],'count':_0x47fbbe};});}});}exports[_0x53af('0x99')]=function(_0x22b273,_0x2a65f9){return runReport(_0x22b273[_0x53af('0x4c')],_0x22b273[_0x53af('0x2e')],_0x22b273['options'])[_0x53af('0x21')](respondWithResult(_0x2a65f9,null))[_0x53af('0x3f')](handleError(_0x2a65f9,null));};exports[_0x53af('0x9a')]=runReport;exports[_0x53af('0x2e')]=function(_0x73e432,_0x1b85b2){var _0xeb272c=0xa;var _0x3d67e1=['join',_0x53af('0x7c'),_0x53af('0x7d'),_0x53af('0x4e')];var _0x129f3c={'SUM':_0x53af('0x4f'),'COUNT':_0x53af('0x9b'),'COUNT DISTINCT':_0x53af('0x50'),'MAX':_0x53af('0x51'),'MIN':_0x53af('0x52'),'AVG':_0x53af('0x53'),'GROUP_CONCAT':_0x53af('0x7e'),'GROUP_CONCAT ASC':_0x53af('0x54'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x354acc={'SEC_TO_TIME':_0x53af('0x56'),'DATE':_0x53af('0x57'),'HOUR':_0x53af('0x58'),'ROUND':_0x53af('0x7f'),'UNIX_TIMESTAMP':_0x53af('0x80')};var _0x3701ec=function(_0x381e59){return!_[_0x53af('0x73')]([_0x53af('0x59'),_0x53af('0x5a'),'IS\x20EMPTY',_0x53af('0x5c')],_0x381e59);};var _0x45fbf7=function(_0x5177e3){if(!_0x5177e3||!_0x5177e3[_0x53af('0x5d')]['length']){return'';}for(var _0x55398a='(',_0x4b5dc3=0x0;_0x4b5dc3<_0x5177e3[_0x53af('0x5d')][_0x53af('0x34')];_0x4b5dc3+=0x1){_0x4b5dc3>0x0&&(_0x55398a+='\x20'+_0x5177e3[_0x53af('0x5e')]+'\x20');_0x55398a+=_0x5177e3[_0x53af('0x5d')][_0x4b5dc3][_0x53af('0x5f')]?_0x45fbf7(_0x5177e3['rules'][_0x4b5dc3][_0x53af('0x5f')]):_0x5177e3[_0x53af('0x5d')][_0x4b5dc3][_0x53af('0x60')]+'\x20'+_0x5177e3[_0x53af('0x5d')][_0x4b5dc3][_0x53af('0x61')]+(_0x3701ec(_0x5177e3[_0x53af('0x5d')][_0x4b5dc3][_0x53af('0x61')])?'\x20'+_0x5177e3[_0x53af('0x5d')][_0x4b5dc3]['value']:'');}return _0x55398a+')';};var _0x1e5b47={'where':{'id':_0x73e432[_0x53af('0x4c')]['id']}},_0xdc4f54,_0x1f6c35,_0xd441fc,_0x2a6cbe,_0x3a002d;_0x1e5b47=_[_0x53af('0x39')]({},_0x1e5b47,_0x73e432[_0x53af('0x3c')]);return db[_0x53af('0x2a')][_0x53af('0x48')](_0x1e5b47)[_0x53af('0x21')](function(_0x2681f7){if(_0x2681f7){_0xdc4f54=_0x2681f7;return _0x2681f7[_0x53af('0x63')]();}return null;})['then'](function(_0x209c09){if(_0x209c09){if(!_0x209c09[_0x53af('0x34')]){throw new db[(_0x53af('0x64'))]['ValidationErrorItem'](_0x53af('0x81'),0x193);}_0x1f6c35=_0x209c09;return db['AnalyticMetric'][_0x53af('0x3e')]({'raw':!![]});}return null;})[_0x53af('0x21')](function(_0x2ab9a4){if(_0x2ab9a4){_0xd441fc=_[_0x53af('0x82')](_0x2ab9a4,'id');var _0x26c796;var _0x446807=squel[_0x53af('0x67')]();_0x446807[_0x53af('0x68')](_0xdc4f54[_0x53af('0x69')]);for(var _0x1c6447=0x0;_0x1c6447<_0x1f6c35['length'];_0x1c6447+=0x1){_0x26c796=_0x1f6c35[_0x1c6447][_0x53af('0x6a')]?_0xd441fc[_0x1f6c35[_0x1c6447][_0x53af('0x6a')]][_0x53af('0x6b')]:_0x1f6c35[_0x1c6447][_0x53af('0x60')];_0x26c796=_0x1f6c35[_0x1c6447][_0x53af('0x6c')]?_[_0x53af('0x6d')](_0x129f3c[_0x1f6c35[_0x1c6447][_0x53af('0x6c')]],'%s',_0x26c796):_0x26c796;_0x26c796=_0x1f6c35[_0x1c6447][_0x53af('0x83')]?_['replace'](_0x354acc[_0x1f6c35[_0x1c6447][_0x53af('0x83')]],'%s',_0x26c796):_0x26c796;if(_0x1f6c35[_0x1c6447]['groupBy']){_0x446807[_0x53af('0x5f')](_0x26c796);}_0x1f6c35[_0x1c6447]['orderBy']&&_0x446807[_0x53af('0x36')](_0x26c796,_0x1f6c35[_0x1c6447][_0x53af('0x6e')]==='DESC'?![]:!![]);_0x446807[_0x53af('0x60')](_0x26c796,_0x1f6c35[_0x1c6447][_0x53af('0x70')]||_0x26c796);}if(_0xdc4f54['joins']){_0xdc4f54[_0x53af('0x71')]=JSON[_0x53af('0x72')](_0xdc4f54[_0x53af('0x71')]);for(var _0x5c1bfa=0x0;_0x5c1bfa<_0xdc4f54[_0x53af('0x71')][_0x53af('0x34')];_0x5c1bfa+=0x1){if(_0xdc4f54['joins'][_0x5c1bfa]['type']&&_[_0x53af('0x73')](_0x3d67e1,_0xdc4f54[_0x53af('0x71')][_0x5c1bfa][_0x53af('0x2d')])&&_0xdc4f54[_0x53af('0x71')][_0x5c1bfa][_0x53af('0x74')]&&_0xdc4f54[_0x53af('0x71')][_0x5c1bfa][_0x53af('0x75')]&&_0xdc4f54[_0x53af('0x71')][_0x5c1bfa][_0x53af('0x76')]){_0x446807[_0xdc4f54[_0x53af('0x71')][_0x5c1bfa][_0x53af('0x2d')]](_0xdc4f54[_0x53af('0x71')][_0x5c1bfa][_0x53af('0x75')],null,util[_0x53af('0x83')](_0x53af('0x77'),_0xdc4f54[_0x53af('0x69')],_0xdc4f54[_0x53af('0x71')][_0x5c1bfa]['parentKey'],_0xdc4f54[_0x53af('0x71')][_0x5c1bfa][_0x53af('0x75')],_0xdc4f54[_0x53af('0x71')][_0x5c1bfa][_0x53af('0x76')]));}}}if(_0xdc4f54['conditions']){_0xdc4f54[_0x53af('0x78')]=JSON[_0x53af('0x72')](_0xdc4f54[_0x53af('0x78')]);_0x446807[_0x53af('0x38')](_0x45fbf7(_0xdc4f54['conditions'][_0x53af('0x5f')]));}_0x3a002d=_0x446807[_0x53af('0x79')]();_0x446807[_0x53af('0x1b')](_0xeb272c);_0x446807[_0x53af('0x1a')](0x0);logger[_0x53af('0x9c')](_0x53af('0x9d'),_0x446807[_0x53af('0x94')]());return dbH['sequelize'][_0x53af('0x2e')](_0x446807[_0x53af('0x94')](),{'type':dbH[_0x53af('0x7a')]['QueryTypes'][_0x53af('0x98')]});}})[_0x53af('0x21')](function(){return{'sql':_0x3a002d[_0x53af('0x94')]()};})['then'](respondWithResult(_0x1b85b2,null))[_0x53af('0x3f')](handleError(_0x1b85b2,null));};