Built motion from commit 6a92c2cd.|2.6.29
[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 _0xda23=['UserProfileResource','destroy','end','sendStatus','error','stack','name','map','AnalyticCustomReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','CustomReports','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','preview','join','left_join','right_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','AVG(%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)','HOUR(%s)','ROUND(%s)','includes','IS\x20EMPTY','rules','operator','group','field','condition','value','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','MetricId','function','replace','format','groupBy','orderBy','DESC','alias','joins','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','table','parse','conditions','clone','debug','toString','sequelize','QueryTypes','cross_join','MIN(%s)','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20NULL','getFields','Sequelize','metric','web','fullPath','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','../../components/export/','output','../../files/reports','savename','from','countTable','SELECT','run','runReport','IS\x20NULL','IS\x20NOT\x20EMPTY','Limited\x20Query:','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','status','json','undefined','limit','offset','count','Content-Range','apply','reject','save','then','get'];(function(_0x42f009,_0x5e27b1){var _0x22a1e0=function(_0x297993){while(--_0x297993){_0x42f009['push'](_0x42f009['shift']());}};_0x22a1e0(++_0x5e27b1);}(_0xda23,0x1d1));var _0x3da2=function(_0x102881,_0x58d723){_0x102881=_0x102881-0x0;var _0x5c63d0=_0xda23[_0x102881];return _0x5c63d0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3da2('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3da2('0x1'));var rp=require(_0x3da2('0x2'));var moment=require(_0x3da2('0x3'));var BPromise=require(_0x3da2('0x4'));var Mustache=require(_0x3da2('0x5'));var util=require('util');var path=require(_0x3da2('0x6'));var sox=require('sox');var csv=require(_0x3da2('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3da2('0x8'));var _=require(_0x3da2('0x9'));var squel=require(_0x3da2('0xa'));var crypto=require('crypto');var jsforce=require(_0x3da2('0xb'));var deskjs=require(_0x3da2('0xc'));var toCsv=require(_0x3da2('0x7'));var querystring=require(_0x3da2('0xd'));var Papa=require('papaparse');var Redis=require(_0x3da2('0xe'));var authService=require(_0x3da2('0xf'));var qs=require(_0x3da2('0x10'));var as=require(_0x3da2('0x11'));var hardwareService=require(_0x3da2('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x3da2('0x13'));var config=require(_0x3da2('0x14'));var licenseUtil=require(_0x3da2('0x15'));var db=require(_0x3da2('0x16'))['db'];var dbH=require(_0x3da2('0x16'))[_0x3da2('0x17')];function respondWithStatusCode(_0x3f8cc7,_0x4308ac){_0x4308ac=_0x4308ac||0xcc;return function(_0x46558c){if(_0x46558c){return _0x3f8cc7['sendStatus'](_0x4308ac);}return _0x3f8cc7[_0x3da2('0x18')](_0x4308ac)['end']();};}function respondWithResult(_0x443909,_0x2836f2){_0x2836f2=_0x2836f2||0xc8;return function(_0x31c7ad){if(_0x31c7ad){return _0x443909[_0x3da2('0x18')](_0x2836f2)[_0x3da2('0x19')](_0x31c7ad);}};}function respondWithFilteredResult(_0x52710e,_0x19e6d7){return function(_0x3475ae){if(_0x3475ae){var _0x57f7f7=typeof _0x19e6d7['offset']===_0x3da2('0x1a')&&typeof _0x19e6d7[_0x3da2('0x1b')]===_0x3da2('0x1a');var _0x398783=_0x3475ae['count'];var _0x22aef5=_0x57f7f7?0x0:_0x19e6d7[_0x3da2('0x1c')];var _0x45da89=_0x57f7f7?_0x3475ae[_0x3da2('0x1d')]:_0x19e6d7['offset']+_0x19e6d7[_0x3da2('0x1b')];var _0x797adb;if(_0x45da89>=_0x398783){_0x45da89=_0x398783;_0x797adb=0xc8;}else{_0x797adb=0xce;}_0x52710e['status'](_0x797adb);return _0x52710e['set'](_0x3da2('0x1e'),_0x22aef5+'-'+_0x45da89+'/'+_0x398783)[_0x3da2('0x19')](_0x3475ae);}return null;};}function patchUpdates(_0x400671){return function(_0x2f8302){try{jsonpatch[_0x3da2('0x1f')](_0x2f8302,_0x400671,!![]);}catch(_0xca831d){return BPromise[_0x3da2('0x20')](_0xca831d);}return _0x2f8302[_0x3da2('0x21')]();};}function saveUpdates(_0xddcbda,_0x33fcc9){return function(_0x41c825){if(_0x41c825){return _0x41c825['update'](_0xddcbda)[_0x3da2('0x22')](function(_0x27b7b0){return _0x27b7b0;});}return null;};}function removeEntity(_0x14690a,_0x1c36eb){return function(_0x167de6){if(_0x167de6){return _0x167de6['destroy']()[_0x3da2('0x22')](function(){var _0x539de5=_0x167de6[_0x3da2('0x23')]({'plain':!![]});var _0x36156f='CustomReports';return db[_0x3da2('0x24')][_0x3da2('0x25')]({'where':{'type':_0x36156f,'resourceId':_0x539de5['id']}})[_0x3da2('0x22')](function(){return _0x167de6;});})[_0x3da2('0x22')](function(){_0x14690a[_0x3da2('0x18')](0xcc)[_0x3da2('0x26')]();});}};}function handleEntityNotFound(_0x241838,_0x46ace5){return function(_0x3f4916){if(!_0x3f4916){_0x241838[_0x3da2('0x27')](0x194);}return _0x3f4916;};}function handleError(_0x16c8db,_0x4e4e9d){_0x4e4e9d=_0x4e4e9d||0x1f4;return function(_0x4de139){logger[_0x3da2('0x28')](_0x4de139[_0x3da2('0x29')]);if(_0x4de139[_0x3da2('0x2a')]){delete _0x4de139[_0x3da2('0x2a')];}_0x16c8db['status'](_0x4e4e9d)['send'](_0x4de139);};}exports['index']=function(_0x3e294a,_0x4f744c){var _0x3b9916={},_0x4b8275={},_0x5b87c0={'count':0x0,'rows':[]};var _0x5ef0c7=_[_0x3da2('0x2b')](db[_0x3da2('0x2c')][_0x3da2('0x2d')],function(_0x1f46de){return{'name':_0x1f46de['fieldName'],'type':_0x1f46de[_0x3da2('0x2e')][_0x3da2('0x2f')]};});_0x4b8275[_0x3da2('0x30')]=_['map'](_0x5ef0c7,_0x3da2('0x2a'));_0x4b8275[_0x3da2('0x31')]=_[_0x3da2('0x32')](_0x3e294a[_0x3da2('0x31')]);_0x4b8275[_0x3da2('0x33')]=_[_0x3da2('0x34')](_0x4b8275[_0x3da2('0x30')],_0x4b8275['query']);_0x3b9916[_0x3da2('0x35')]=_['intersection'](_0x4b8275[_0x3da2('0x30')],qs[_0x3da2('0x36')](_0x3e294a[_0x3da2('0x31')][_0x3da2('0x36')]));_0x3b9916[_0x3da2('0x35')]=_0x3b9916[_0x3da2('0x35')][_0x3da2('0x37')]?_0x3b9916[_0x3da2('0x35')]:_0x4b8275[_0x3da2('0x30')];if(!_0x3e294a[_0x3da2('0x31')][_0x3da2('0x38')]('nolimit')){_0x3b9916['limit']=qs['limit'](_0x3e294a[_0x3da2('0x31')]['limit']);_0x3b9916['offset']=qs[_0x3da2('0x1c')](_0x3e294a[_0x3da2('0x31')][_0x3da2('0x1c')]);}_0x3b9916[_0x3da2('0x39')]=qs[_0x3da2('0x3a')](_0x3e294a[_0x3da2('0x31')][_0x3da2('0x3a')]);_0x3b9916[_0x3da2('0x3b')]=qs[_0x3da2('0x33')](_[_0x3da2('0x3c')](_0x3e294a['query'],_0x4b8275['filters']),_0x5ef0c7);if(_0x3e294a['query'][_0x3da2('0x3d')]){_0x3b9916['where']=_[_0x3da2('0x3e')](_0x3b9916[_0x3da2('0x3b')],{'$or':_[_0x3da2('0x2b')](_0x5ef0c7,function(_0x523f3e){if(_0x523f3e[_0x3da2('0x2e')]!==_0x3da2('0x3f')){var _0x6eb2e6={};_0x6eb2e6[_0x523f3e[_0x3da2('0x2a')]]={'$like':'%'+_0x3e294a[_0x3da2('0x31')][_0x3da2('0x3d')]+'%'};return _0x6eb2e6;}})});}_0x3b9916=_[_0x3da2('0x3e')]({},_0x3b9916,_0x3e294a[_0x3da2('0x40')]);var _0x36eb19={'where':_0x3b9916[_0x3da2('0x3b')]};return db[_0x3da2('0x2c')][_0x3da2('0x1d')](_0x36eb19)['then'](function(_0x32d51e){_0x5b87c0[_0x3da2('0x1d')]=_0x32d51e;if(_0x3e294a[_0x3da2('0x31')][_0x3da2('0x41')]){_0x3b9916['include']=[{'all':!![]}];}return db[_0x3da2('0x2c')][_0x3da2('0x42')](_0x3b9916);})[_0x3da2('0x22')](function(_0x1112f2){_0x5b87c0[_0x3da2('0x43')]=_0x1112f2;return _0x5b87c0;})[_0x3da2('0x22')](respondWithFilteredResult(_0x4f744c,_0x3b9916))['catch'](handleError(_0x4f744c,null));};exports[_0x3da2('0x44')]=function(_0x5d3a61,_0x569a68){var _0x404b50={'raw':![],'where':{'id':_0x5d3a61['params']['id']}},_0xaf5da2={};_0xaf5da2[_0x3da2('0x30')]=_['keys'](db[_0x3da2('0x2c')][_0x3da2('0x2d')]);_0xaf5da2[_0x3da2('0x31')]=_[_0x3da2('0x32')](_0x5d3a61['query']);_0xaf5da2['filters']=_[_0x3da2('0x34')](_0xaf5da2[_0x3da2('0x30')],_0xaf5da2[_0x3da2('0x31')]);_0x404b50[_0x3da2('0x35')]=_[_0x3da2('0x34')](_0xaf5da2[_0x3da2('0x30')],qs[_0x3da2('0x36')](_0x5d3a61[_0x3da2('0x31')]['fields']));_0x404b50[_0x3da2('0x35')]=_0x404b50[_0x3da2('0x35')]['length']?_0x404b50[_0x3da2('0x35')]:_0xaf5da2[_0x3da2('0x30')];if(_0x5d3a61[_0x3da2('0x31')][_0x3da2('0x41')]){_0x404b50[_0x3da2('0x45')]=[{'all':!![]}];}_0x404b50=_['merge']({},_0x404b50,_0x5d3a61[_0x3da2('0x40')]);return db[_0x3da2('0x2c')][_0x3da2('0x46')](_0x404b50)[_0x3da2('0x22')](handleEntityNotFound(_0x569a68,null))[_0x3da2('0x22')](respondWithResult(_0x569a68,null))[_0x3da2('0x47')](handleError(_0x569a68,null));};exports[_0x3da2('0x48')]=function(_0x409e22,_0x1e82fe){return db[_0x3da2('0x2c')][_0x3da2('0x48')](_0x409e22[_0x3da2('0x49')],{})[_0x3da2('0x22')](function(_0x4a31e9){var _0x2b1a9b=_0x409e22[_0x3da2('0x4a')][_0x3da2('0x23')]({'plain':!![]});if(!_0x2b1a9b)throw new Error(_0x3da2('0x4b'));if(_0x2b1a9b[_0x3da2('0x4c')]===_0x3da2('0x4a')){var _0x574fbe=_0x4a31e9[_0x3da2('0x23')]({'plain':!![]});var _0xa0c324='Reports';return db[_0x3da2('0x4d')][_0x3da2('0x46')]({'where':{'name':_0xa0c324,'userProfileId':_0x2b1a9b[_0x3da2('0x4e')]},'raw':!![]})['then'](function(_0x3490bf){if(_0x3490bf&&_0x3490bf[_0x3da2('0x4f')]===0x0){return db['UserProfileResource']['create']({'name':_0x574fbe[_0x3da2('0x2a')],'resourceId':_0x574fbe['id'],'type':_0x3da2('0x50'),'sectionId':_0x3490bf['id']},{})[_0x3da2('0x22')](function(){return _0x4a31e9;});}else{return _0x4a31e9;}})['catch'](function(_0x7356b6){logger[_0x3da2('0x28')](_0x3da2('0x51'),_0x7356b6);throw _0x7356b6;});}return _0x4a31e9;})[_0x3da2('0x22')](respondWithResult(_0x1e82fe,0xc9))[_0x3da2('0x47')](handleError(_0x1e82fe,null));};exports[_0x3da2('0x52')]=function(_0x14e1f1,_0x4eb20d){if(_0x14e1f1[_0x3da2('0x49')]['id']){delete _0x14e1f1[_0x3da2('0x49')]['id'];}return db[_0x3da2('0x2c')][_0x3da2('0x46')]({'where':{'id':_0x14e1f1[_0x3da2('0x53')]['id']}})[_0x3da2('0x22')](handleEntityNotFound(_0x4eb20d,null))[_0x3da2('0x22')](saveUpdates(_0x14e1f1[_0x3da2('0x49')],null))[_0x3da2('0x22')](respondWithResult(_0x4eb20d,null))[_0x3da2('0x47')](handleError(_0x4eb20d,null));};exports[_0x3da2('0x25')]=function(_0x51441f,_0x4c050b){return db[_0x3da2('0x2c')]['find']({'where':{'id':_0x51441f['params']['id']}})[_0x3da2('0x22')](handleEntityNotFound(_0x4c050b,null))[_0x3da2('0x22')](removeEntity(_0x4c050b,null))[_0x3da2('0x47')](handleError(_0x4c050b,null));};exports[_0x3da2('0x54')]=function(_0x5df3fb,_0x37b0d8){var _0x388afa=0xa;var _0x67d5eb=[_0x3da2('0x55'),_0x3da2('0x56'),_0x3da2('0x57'),'cross_join'];var _0x3dc3ad={'SUM':_0x3da2('0x58'),'COUNT':_0x3da2('0x59'),'COUNT DISTINCT':_0x3da2('0x5a'),'MAX':_0x3da2('0x5b'),'MIN':'MIN(%s)','AVG':_0x3da2('0x5c'),'GROUP_CONCAT':_0x3da2('0x5d'),'GROUP_CONCAT ASC':_0x3da2('0x5e'),'GROUP_CONCAT DESC':_0x3da2('0x5f')};var _0x30cc98={'SEC_TO_TIME':_0x3da2('0x60'),'DATE':_0x3da2('0x61'),'HOUR':_0x3da2('0x62'),'ROUND':_0x3da2('0x63'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x21df7d=function(_0x36fda6){return!_[_0x3da2('0x64')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x3da2('0x65'),'IS\x20NOT\x20EMPTY'],_0x36fda6);};var _0x36dbe5=function(_0x15fdf2){if(!_0x15fdf2||!_0x15fdf2[_0x3da2('0x66')][_0x3da2('0x37')]){return'';}for(var _0x302786='(',_0x53f99b=0x0;_0x53f99b<_0x15fdf2[_0x3da2('0x66')]['length'];_0x53f99b+=0x1){_0x53f99b>0x0&&(_0x302786+='\x20'+_0x15fdf2[_0x3da2('0x67')]+'\x20');_0x302786+=_0x15fdf2[_0x3da2('0x66')][_0x53f99b]['group']?_0x36dbe5(_0x15fdf2[_0x3da2('0x66')][_0x53f99b][_0x3da2('0x68')]):_0x15fdf2[_0x3da2('0x66')][_0x53f99b][_0x3da2('0x69')]+'\x20'+_0x15fdf2[_0x3da2('0x66')][_0x53f99b]['condition']+(_0x21df7d(_0x15fdf2[_0x3da2('0x66')][_0x53f99b][_0x3da2('0x6a')])?'\x20'+_0x15fdf2['rules'][_0x53f99b][_0x3da2('0x6b')]:'');}return _0x302786+')';};var _0x4dffb3={'where':{'id':_0x5df3fb[_0x3da2('0x53')]['id']}},_0xc83eaf,_0x46ae95,_0xbfff95,_0x6fc32b,_0x17298a;_0x4dffb3=_[_0x3da2('0x3e')]({},_0x4dffb3,_0x5df3fb['options']);return db[_0x3da2('0x2c')][_0x3da2('0x46')](_0x4dffb3)['then'](function(_0xbd1643){if(_0xbd1643){_0xc83eaf=_0xbd1643;return _0xbd1643['getFields']();}return null;})['then'](function(_0x390b17){if(_0x390b17){if(!_0x390b17['length']){throw new db['Sequelize'][(_0x3da2('0x6c'))](_0x3da2('0x6d'),0x193);}_0x46ae95=_0x390b17;return db[_0x3da2('0x6e')][_0x3da2('0x42')]({'raw':!![]});}return null;})[_0x3da2('0x22')](function(_0x59104a){if(_0x59104a){_0xbfff95=_[_0x3da2('0x6f')](_0x59104a,'id');var _0x415c1a;var _0x48325f=squel[_0x3da2('0x70')]();_0x48325f['from'](_0xc83eaf['table']);for(var _0x5616e3=0x0;_0x5616e3<_0x46ae95[_0x3da2('0x37')];_0x5616e3+=0x1){_0x415c1a=_0x46ae95[_0x5616e3][_0x3da2('0x71')]?_0xbfff95[_0x46ae95[_0x5616e3][_0x3da2('0x71')]]['metric']:_0x46ae95[_0x5616e3][_0x3da2('0x69')];_0x415c1a=_0x46ae95[_0x5616e3][_0x3da2('0x72')]?_[_0x3da2('0x73')](_0x3dc3ad[_0x46ae95[_0x5616e3][_0x3da2('0x72')]],'%s',_0x415c1a):_0x415c1a;_0x415c1a=_0x46ae95[_0x5616e3][_0x3da2('0x74')]?_['replace'](_0x30cc98[_0x46ae95[_0x5616e3][_0x3da2('0x74')]],'%s',_0x415c1a):_0x415c1a;if(_0x46ae95[_0x5616e3][_0x3da2('0x75')]){_0x48325f[_0x3da2('0x68')](_0x415c1a);}_0x46ae95[_0x5616e3][_0x3da2('0x76')]&&_0x48325f[_0x3da2('0x39')](_0x415c1a,_0x46ae95[_0x5616e3]['orderBy']===_0x3da2('0x77')?![]:!![]);_0x48325f[_0x3da2('0x69')](_0x415c1a,_0x46ae95[_0x5616e3][_0x3da2('0x78')]||_0x415c1a);}if(_0xc83eaf[_0x3da2('0x79')]){_0xc83eaf[_0x3da2('0x79')]=JSON['parse'](_0xc83eaf[_0x3da2('0x79')]);for(var _0x454ec2=0x0;_0x454ec2<_0xc83eaf[_0x3da2('0x79')]['length'];_0x454ec2+=0x1){if(_0xc83eaf[_0x3da2('0x79')][_0x454ec2][_0x3da2('0x2e')]&&_[_0x3da2('0x64')](_0x67d5eb,_0xc83eaf[_0x3da2('0x79')][_0x454ec2][_0x3da2('0x2e')])&&_0xc83eaf[_0x3da2('0x79')][_0x454ec2][_0x3da2('0x7a')]&&_0xc83eaf[_0x3da2('0x79')][_0x454ec2][_0x3da2('0x7b')]&&_0xc83eaf[_0x3da2('0x79')][_0x454ec2][_0x3da2('0x7c')]){_0x48325f[_0xc83eaf[_0x3da2('0x79')][_0x454ec2][_0x3da2('0x2e')]](_0xc83eaf[_0x3da2('0x79')][_0x454ec2]['foreignTable'],null,util[_0x3da2('0x74')](_0x3da2('0x7d'),_0xc83eaf[_0x3da2('0x7e')],_0xc83eaf[_0x3da2('0x79')][_0x454ec2]['parentKey'],_0xc83eaf[_0x3da2('0x79')][_0x454ec2][_0x3da2('0x7b')],_0xc83eaf[_0x3da2('0x79')][_0x454ec2]['foreignKey']));}}}if(_0xc83eaf['conditions']){_0xc83eaf['conditions']=JSON[_0x3da2('0x7f')](_0xc83eaf[_0x3da2('0x80')]);_0x48325f[_0x3da2('0x3b')](_0x36dbe5(_0xc83eaf[_0x3da2('0x80')]['group']));}_0x17298a=_0x48325f[_0x3da2('0x81')]();_0x48325f['limit'](_0x388afa);_0x48325f[_0x3da2('0x1c')](0x0);logger[_0x3da2('0x82')]('Limited\x20Query:',_0x48325f['toString']());return dbH['sequelize']['query'](_0x48325f[_0x3da2('0x83')](),{'type':dbH[_0x3da2('0x84')][_0x3da2('0x85')]['SELECT']});}})[_0x3da2('0x22')](respondWithResult(_0x37b0d8,null))['catch'](handleError(_0x37b0d8,null));};function runReport(_0x44f358,_0x4fcf50,_0x39e37b){var _0x89ff4b=_0x4fcf50['name'];var _0x34e8f6=0xa;var _0xa4c857=[_0x3da2('0x55'),_0x3da2('0x56'),_0x3da2('0x57'),_0x3da2('0x86')];var _0x59fa52={'SUM':_0x3da2('0x58'),'COUNT':_0x3da2('0x59'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x3da2('0x5b'),'MIN':_0x3da2('0x87'),'AVG':_0x3da2('0x5c'),'GROUP_CONCAT':_0x3da2('0x5d'),'GROUP_CONCAT ASC':_0x3da2('0x5e'),'GROUP_CONCAT DESC':_0x3da2('0x5f')};var _0x2cb4e8={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x3da2('0x61'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x3da2('0x88')};var _0x7f8821=function(_0x3a9e9f){return!_[_0x3da2('0x64')](['IS\x20NULL',_0x3da2('0x89'),_0x3da2('0x65'),'IS\x20NOT\x20EMPTY'],_0x3a9e9f);};var _0x30c794=function(_0x1db437){if(!_0x1db437||!_0x1db437[_0x3da2('0x66')]['length']){return'';}for(var _0x1f1994='(',_0x56d414=0x0;_0x56d414<_0x1db437[_0x3da2('0x66')][_0x3da2('0x37')];_0x56d414+=0x1){_0x56d414>0x0&&(_0x1f1994+='\x20'+_0x1db437[_0x3da2('0x67')]+'\x20');_0x1f1994+=_0x1db437['rules'][_0x56d414][_0x3da2('0x68')]?_0x30c794(_0x1db437[_0x3da2('0x66')][_0x56d414][_0x3da2('0x68')]):_0x1db437[_0x3da2('0x66')][_0x56d414][_0x3da2('0x69')]+'\x20'+_0x1db437['rules'][_0x56d414]['condition']+(_0x7f8821(_0x1db437['rules'][_0x56d414][_0x3da2('0x6a')])?'\x20'+_0x1db437[_0x3da2('0x66')][_0x56d414][_0x3da2('0x6b')]:'');}return _0x1f1994+')';};var _0x52d166={'where':{'id':_0x44f358['id']}},_0x402cdb,_0x215ed,_0x4a819f,_0x179486,_0x2ee379;_0x52d166=_[_0x3da2('0x3e')]({},_0x52d166,_0x39e37b);return db[_0x3da2('0x2c')][_0x3da2('0x46')](_0x52d166)[_0x3da2('0x22')](function(_0x388330){if(_0x388330){_0x402cdb=_0x388330;return _0x388330[_0x3da2('0x8a')]();}return null;})[_0x3da2('0x22')](function(_0x240587){if(_0x240587){if(!_0x240587[_0x3da2('0x37')]){throw new db[(_0x3da2('0x8b'))][(_0x3da2('0x6c'))](_0x3da2('0x6d'),0x193);}_0x215ed=_0x240587;return db[_0x3da2('0x6e')][_0x3da2('0x42')]({'raw':!![]});}return null;})[_0x3da2('0x22')](function(_0x35b373){if(_0x35b373){_0x4a819f=_[_0x3da2('0x6f')](_0x35b373,'id');var _0x14589f;var _0x21f23a=squel[_0x3da2('0x70')]();_0x21f23a['from'](_0x402cdb[_0x3da2('0x7e')]);for(var _0xd3332d=0x0;_0xd3332d<_0x215ed[_0x3da2('0x37')];_0xd3332d+=0x1){_0x14589f=_0x215ed[_0xd3332d][_0x3da2('0x71')]?_0x4a819f[_0x215ed[_0xd3332d][_0x3da2('0x71')]][_0x3da2('0x8c')]:_0x215ed[_0xd3332d]['field'];_0x14589f=_0x215ed[_0xd3332d][_0x3da2('0x72')]?_['replace'](_0x59fa52[_0x215ed[_0xd3332d][_0x3da2('0x72')]],'%s',_0x14589f):_0x14589f;_0x14589f=_0x215ed[_0xd3332d]['format']?_[_0x3da2('0x73')](_0x2cb4e8[_0x215ed[_0xd3332d][_0x3da2('0x74')]],'%s',_0x14589f):_0x14589f;if(_0x215ed[_0xd3332d]['groupBy']){_0x21f23a['group'](_0x14589f);}_0x215ed[_0xd3332d][_0x3da2('0x76')]&&_0x21f23a[_0x3da2('0x39')](_0x14589f,_0x215ed[_0xd3332d][_0x3da2('0x76')]==='DESC'?![]:!![]);_0x21f23a[_0x3da2('0x69')](_0x14589f,_0x215ed[_0xd3332d][_0x3da2('0x78')]||_0x14589f);}if(_0x402cdb[_0x3da2('0x79')]){_0x402cdb[_0x3da2('0x79')]=JSON['parse'](_0x402cdb['joins']);for(var _0x4cc605=0x0;_0x4cc605<_0x402cdb['joins']['length'];_0x4cc605+=0x1){if(_0x402cdb['joins'][_0x4cc605][_0x3da2('0x2e')]&&_['includes'](_0xa4c857,_0x402cdb[_0x3da2('0x79')][_0x4cc605][_0x3da2('0x2e')])&&_0x402cdb[_0x3da2('0x79')][_0x4cc605][_0x3da2('0x7a')]&&_0x402cdb[_0x3da2('0x79')][_0x4cc605][_0x3da2('0x7b')]&&_0x402cdb[_0x3da2('0x79')][_0x4cc605][_0x3da2('0x7c')]){_0x21f23a[_0x402cdb[_0x3da2('0x79')][_0x4cc605][_0x3da2('0x2e')]](_0x402cdb[_0x3da2('0x79')][_0x4cc605][_0x3da2('0x7b')],null,util[_0x3da2('0x74')](_0x3da2('0x7d'),_0x402cdb[_0x3da2('0x7e')],_0x402cdb['joins'][_0x4cc605][_0x3da2('0x7a')],_0x402cdb[_0x3da2('0x79')][_0x4cc605][_0x3da2('0x7b')],_0x402cdb[_0x3da2('0x79')][_0x4cc605][_0x3da2('0x7c')]));}}}if(_0x402cdb['conditions']){_0x402cdb['conditions']=JSON[_0x3da2('0x7f')](_0x402cdb[_0x3da2('0x80')]);_0x21f23a[_0x3da2('0x3b')](_0x30c794(_0x402cdb[_0x3da2('0x80')]['group']));}_0x2ee379=_0x21f23a[_0x3da2('0x81')]();_0x21f23a[_0x3da2('0x1b')](_0x34e8f6);_0x21f23a[_0x3da2('0x1c')](0x0);return;}})['then'](function(){if(_0x4fcf50['output']===_0x3da2('0x8d')){return null;}var _0x47f465=_['merge'](_0x4fcf50,{'name':_0x4fcf50[_0x3da2('0x8e')]||_0x4fcf50[_0x3da2('0x2a')]||_0x402cdb['name'],'basename':_0x89ff4b,'savename':util['format']('%s-%s.%s',_0x4fcf50[_0x3da2('0x2a')]||_0x402cdb['name'],require(_0x3da2('0x8f'))[_0x3da2('0x90')](0x4),_0x4fcf50['output']||_0x3da2('0x91')),'reportId':_0x402cdb['id'],'reportType':_0x3da2('0x92')});return db[_0x3da2('0x93')][_0x3da2('0x48')](_0x47f465,{'raw':!![]});})[_0x3da2('0x22')](function(_0x2ee708){if(_0x402cdb[_0x3da2('0x7e')]===_0x3da2('0x94')){_0x2ee379['where'](_0x402cdb[_0x3da2('0x7e')]+_0x3da2('0x95'),_0x4fcf50[_0x3da2('0x96')],_0x4fcf50[_0x3da2('0x97')]);}else{_0x2ee379[_0x3da2('0x3b')](_0x402cdb[_0x3da2('0x7e')]+_0x3da2('0x98'),_0x4fcf50[_0x3da2('0x96')],_0x4fcf50[_0x3da2('0x97')]);}if(_0x2ee708){logger[_0x3da2('0x99')](_0x3da2('0x9a'),_0x2ee379[_0x3da2('0x83')]());require('child_process')['fork'](path['join'](__dirname,_0x3da2('0x9b'),_0x2ee708[_0x3da2('0x9c')]),[_0x2ee708['id'],_0x2ee379[_0x3da2('0x83')](),path[_0x3da2('0x55')](__dirname,_0x3da2('0x9d'),_0x2ee708[_0x3da2('0x9e')]),_0x89ff4b]);return _0x2ee708;}else{var _0x56ec06=squel[_0x3da2('0x70')]();_0x56ec06[_0x3da2('0x9f')]('('+_0x2ee379[_0x3da2('0x83')]()+')',_0x3da2('0xa0'));_0x56ec06[_0x3da2('0x69')]('COUNT(*)','count');_0x2ee379['limit'](_0x4fcf50[_0x3da2('0x1b')]||_0x34e8f6);_0x2ee379['offset'](_0x4fcf50[_0x3da2('0x1c')]||0x0);return dbH[_0x3da2('0x84')]['query'](_0x56ec06[_0x3da2('0x83')](),{'type':dbH[_0x3da2('0x84')][_0x3da2('0x85')][_0x3da2('0xa1')]})[_0x3da2('0x22')](function(_0x2b9900){if(!_0x2b9900['length']){_0x179486=0x0;}else{_0x179486=_0x2b9900[0x0][_0x3da2('0x1d')]||0x0;}return dbH[_0x3da2('0x84')][_0x3da2('0x31')](_0x2ee379[_0x3da2('0x83')](),{'type':dbH[_0x3da2('0x84')]['QueryTypes'][_0x3da2('0xa1')]});})[_0x3da2('0x22')](function(_0x4ceab3){return{'rows':_0x4ceab3||[],'count':_0x179486};});}});}exports[_0x3da2('0xa2')]=function(_0x461e9d,_0x288860){return runReport(_0x461e9d['params'],_0x461e9d[_0x3da2('0x31')],_0x461e9d[_0x3da2('0x40')])['then'](respondWithResult(_0x288860,null))['catch'](handleError(_0x288860,null));};exports[_0x3da2('0xa3')]=runReport;exports[_0x3da2('0x31')]=function(_0x1cb91d,_0x23f72d){var _0x1fe31e=0xa;var _0x2f2166=[_0x3da2('0x55'),_0x3da2('0x56'),'right_join',_0x3da2('0x86')];var _0x3d7134={'SUM':_0x3da2('0x58'),'COUNT':_0x3da2('0x59'),'COUNT DISTINCT':_0x3da2('0x5a'),'MAX':'MAX(%s)','MIN':_0x3da2('0x87'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x3da2('0x5d'),'GROUP_CONCAT ASC':_0x3da2('0x5e'),'GROUP_CONCAT DESC':_0x3da2('0x5f')};var _0x2f0155={'SEC_TO_TIME':_0x3da2('0x60'),'DATE':_0x3da2('0x61'),'HOUR':'HOUR(%s)','ROUND':_0x3da2('0x63'),'UNIX_TIMESTAMP':_0x3da2('0x88')};var _0x21403f=function(_0x1384bc){return!_['includes']([_0x3da2('0xa4'),_0x3da2('0x89'),'IS\x20EMPTY',_0x3da2('0xa5')],_0x1384bc);};var _0x461d4d=function(_0x26b671){if(!_0x26b671||!_0x26b671[_0x3da2('0x66')][_0x3da2('0x37')]){return'';}for(var _0x52a06f='(',_0x451365=0x0;_0x451365<_0x26b671[_0x3da2('0x66')][_0x3da2('0x37')];_0x451365+=0x1){_0x451365>0x0&&(_0x52a06f+='\x20'+_0x26b671['operator']+'\x20');_0x52a06f+=_0x26b671[_0x3da2('0x66')][_0x451365][_0x3da2('0x68')]?_0x461d4d(_0x26b671[_0x3da2('0x66')][_0x451365][_0x3da2('0x68')]):_0x26b671[_0x3da2('0x66')][_0x451365]['field']+'\x20'+_0x26b671['rules'][_0x451365]['condition']+(_0x21403f(_0x26b671[_0x3da2('0x66')][_0x451365][_0x3da2('0x6a')])?'\x20'+_0x26b671[_0x3da2('0x66')][_0x451365]['value']:'');}return _0x52a06f+')';};var _0xfd6c38={'where':{'id':_0x1cb91d[_0x3da2('0x53')]['id']}},_0x4ad3af,_0x3822c9,_0x4706f7,_0x30eb5b,_0x56c3ff;_0xfd6c38=_[_0x3da2('0x3e')]({},_0xfd6c38,_0x1cb91d[_0x3da2('0x40')]);return db['AnalyticCustomReport'][_0x3da2('0x46')](_0xfd6c38)[_0x3da2('0x22')](function(_0x7e4aaf){if(_0x7e4aaf){_0x4ad3af=_0x7e4aaf;return _0x7e4aaf[_0x3da2('0x8a')]();}return null;})['then'](function(_0x2355cd){if(_0x2355cd){if(!_0x2355cd['length']){throw new db[(_0x3da2('0x8b'))][(_0x3da2('0x6c'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x3822c9=_0x2355cd;return db[_0x3da2('0x6e')][_0x3da2('0x42')]({'raw':!![]});}return null;})[_0x3da2('0x22')](function(_0x2a189b){if(_0x2a189b){_0x4706f7=_[_0x3da2('0x6f')](_0x2a189b,'id');var _0x5823e7;var _0x477ea3=squel['select']();_0x477ea3[_0x3da2('0x9f')](_0x4ad3af[_0x3da2('0x7e')]);for(var _0x352e69=0x0;_0x352e69<_0x3822c9['length'];_0x352e69+=0x1){_0x5823e7=_0x3822c9[_0x352e69][_0x3da2('0x71')]?_0x4706f7[_0x3822c9[_0x352e69]['MetricId']][_0x3da2('0x8c')]:_0x3822c9[_0x352e69][_0x3da2('0x69')];_0x5823e7=_0x3822c9[_0x352e69][_0x3da2('0x72')]?_[_0x3da2('0x73')](_0x3d7134[_0x3822c9[_0x352e69][_0x3da2('0x72')]],'%s',_0x5823e7):_0x5823e7;_0x5823e7=_0x3822c9[_0x352e69]['format']?_[_0x3da2('0x73')](_0x2f0155[_0x3822c9[_0x352e69][_0x3da2('0x74')]],'%s',_0x5823e7):_0x5823e7;if(_0x3822c9[_0x352e69][_0x3da2('0x75')]){_0x477ea3['group'](_0x5823e7);}_0x3822c9[_0x352e69][_0x3da2('0x76')]&&_0x477ea3[_0x3da2('0x39')](_0x5823e7,_0x3822c9[_0x352e69]['orderBy']==='DESC'?![]:!![]);_0x477ea3['field'](_0x5823e7,_0x3822c9[_0x352e69]['alias']||_0x5823e7);}if(_0x4ad3af['joins']){_0x4ad3af[_0x3da2('0x79')]=JSON[_0x3da2('0x7f')](_0x4ad3af[_0x3da2('0x79')]);for(var _0x450d4e=0x0;_0x450d4e<_0x4ad3af[_0x3da2('0x79')][_0x3da2('0x37')];_0x450d4e+=0x1){if(_0x4ad3af[_0x3da2('0x79')][_0x450d4e][_0x3da2('0x2e')]&&_['includes'](_0x2f2166,_0x4ad3af[_0x3da2('0x79')][_0x450d4e][_0x3da2('0x2e')])&&_0x4ad3af['joins'][_0x450d4e][_0x3da2('0x7a')]&&_0x4ad3af[_0x3da2('0x79')][_0x450d4e]['foreignTable']&&_0x4ad3af['joins'][_0x450d4e]['foreignKey']){_0x477ea3[_0x4ad3af[_0x3da2('0x79')][_0x450d4e]['type']](_0x4ad3af[_0x3da2('0x79')][_0x450d4e][_0x3da2('0x7b')],null,util[_0x3da2('0x74')]('%s.%s\x20=\x20%s.%s',_0x4ad3af[_0x3da2('0x7e')],_0x4ad3af[_0x3da2('0x79')][_0x450d4e][_0x3da2('0x7a')],_0x4ad3af[_0x3da2('0x79')][_0x450d4e][_0x3da2('0x7b')],_0x4ad3af[_0x3da2('0x79')][_0x450d4e][_0x3da2('0x7c')]));}}}if(_0x4ad3af[_0x3da2('0x80')]){_0x4ad3af['conditions']=JSON[_0x3da2('0x7f')](_0x4ad3af[_0x3da2('0x80')]);_0x477ea3[_0x3da2('0x3b')](_0x461d4d(_0x4ad3af[_0x3da2('0x80')]['group']));}_0x56c3ff=_0x477ea3['clone']();_0x477ea3[_0x3da2('0x1b')](_0x1fe31e);_0x477ea3['offset'](0x0);logger[_0x3da2('0x82')](_0x3da2('0xa6'),_0x477ea3[_0x3da2('0x83')]());return dbH[_0x3da2('0x84')][_0x3da2('0x31')](_0x477ea3[_0x3da2('0x83')](),{'type':dbH[_0x3da2('0x84')]['QueryTypes'][_0x3da2('0xa1')]});}})[_0x3da2('0x22')](function(){return{'sql':_0x56c3ff[_0x3da2('0x83')]()};})[_0x3da2('0x22')](respondWithResult(_0x23f72d,null))['catch'](handleError(_0x23f72d,null));};