Built motion from commit (unavailable).|2.5.13
[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 _0x43d1=['show','params','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','body','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','field','condition','value','find','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','alias','joins','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','foreignKey','conditions','clone','toString','sequelize','SELECT','MAX(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','DATE(%s)','ValidationErrorItem','DESC','parse','Limited\x20Query:','No\x20available\x20data','web','fullPath','randomstring','generate','output','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','QueryTypes','run','runReport','UNIX_TIMESTAMP(%s)','operator','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','json','count','offset','limit','set','apply','reject','save','update','then','destroy','get','UserProfileResource','end','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','AnalyticCustomReport','includeAll','include','findAll','rows','catch'];(function(_0xd0b415,_0x149675){var _0x2bdf2c=function(_0x59fbfa){while(--_0x59fbfa){_0xd0b415['push'](_0xd0b415['shift']());}};_0x2bdf2c(++_0x149675);}(_0x43d1,0x10c));var _0x143d=function(_0x5b7e31,_0xc752b1){_0x5b7e31=_0x5b7e31-0x0;var _0x441d28=_0x43d1[_0x5b7e31];return _0x441d28;};'use strict';var pdf=require(_0x143d('0x0'));var emlformat=require(_0x143d('0x1'));var rimraf=require(_0x143d('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x143d('0x3'));var rp=require(_0x143d('0x4'));var moment=require(_0x143d('0x5'));var BPromise=require(_0x143d('0x6'));var Mustache=require(_0x143d('0x7'));var util=require(_0x143d('0x8'));var path=require(_0x143d('0x9'));var sox=require(_0x143d('0xa'));var csv=require(_0x143d('0xb'));var ejs=require(_0x143d('0xc'));var fs=require('fs');var _=require(_0x143d('0xd'));var squel=require(_0x143d('0xe'));var crypto=require(_0x143d('0xf'));var jsforce=require(_0x143d('0x10'));var deskjs=require(_0x143d('0x11'));var toCsv=require('to-csv');var querystring=require(_0x143d('0x12'));var Papa=require('papaparse');var Redis=require(_0x143d('0x13'));var authService=require(_0x143d('0x14'));var qs=require(_0x143d('0x15'));var as=require(_0x143d('0x16'));var hardwareService=require(_0x143d('0x17'));var logger=require(_0x143d('0x18'))(_0x143d('0x19'));var utils=require(_0x143d('0x1a'));var config=require(_0x143d('0x1b'));var licenseUtil=require(_0x143d('0x1c'));var db=require(_0x143d('0x1d'))['db'];var dbH=require(_0x143d('0x1d'))[_0x143d('0x1e')];function respondWithStatusCode(_0x1657c4,_0x57383f){_0x57383f=_0x57383f||0xcc;return function(_0x5d9e06){if(_0x5d9e06){return _0x1657c4[_0x143d('0x1f')](_0x57383f);}return _0x1657c4['status'](_0x57383f)['end']();};}function respondWithResult(_0x4f5031,_0x238c89){_0x238c89=_0x238c89||0xc8;return function(_0x23ea0c){if(_0x23ea0c){return _0x4f5031[_0x143d('0x20')](_0x238c89)[_0x143d('0x21')](_0x23ea0c);}};}function respondWithFilteredResult(_0xc5f756,_0x5a5fbb){return function(_0x19a850){if(_0x19a850){var _0x2798b7=_0x19a850[_0x143d('0x22')],_0x7d1769=_0x5a5fbb[_0x143d('0x23')],_0x5cd31b=_0x5a5fbb[_0x143d('0x23')]+_0x5a5fbb[_0x143d('0x24')],_0x7954d;if(_0x5cd31b>=_0x2798b7){_0x5cd31b=_0x2798b7;_0x7954d=0xc8;}else{_0x7954d=0xce;}_0xc5f756[_0x143d('0x20')](_0x7954d);return _0xc5f756[_0x143d('0x25')]('Content-Range',_0x7d1769+'-'+_0x5cd31b+'/'+_0x2798b7)['json'](_0x19a850);}return null;};}function patchUpdates(_0x2cc7d4){return function(_0x299b20){try{jsonpatch[_0x143d('0x26')](_0x299b20,_0x2cc7d4,!![]);}catch(_0x4831e5){return BPromise[_0x143d('0x27')](_0x4831e5);}return _0x299b20[_0x143d('0x28')]();};}function saveUpdates(_0x545d26,_0x3b6082){return function(_0x30fa83){if(_0x30fa83){return _0x30fa83[_0x143d('0x29')](_0x545d26)[_0x143d('0x2a')](function(_0x4c7ecc){return _0x4c7ecc;});}return null;};}function removeEntity(_0x687d0d,_0x1bcf6a){return function(_0x2a6249){if(_0x2a6249){return _0x2a6249[_0x143d('0x2b')]()[_0x143d('0x2a')](function(){var _0x24105d=_0x2a6249[_0x143d('0x2c')]({'plain':!![]});var _0x183b60='CustomReports';return db[_0x143d('0x2d')][_0x143d('0x2b')]({'where':{'type':_0x183b60,'resourceId':_0x24105d['id']}})[_0x143d('0x2a')](function(){return _0x2a6249;});})['then'](function(){_0x687d0d[_0x143d('0x20')](0xcc)[_0x143d('0x2e')]();});}};}function handleEntityNotFound(_0x25965f,_0x3188fe){return function(_0x989a4){if(!_0x989a4){_0x25965f['sendStatus'](0x194);}return _0x989a4;};}function handleError(_0x406aa4,_0x43390a){_0x43390a=_0x43390a||0x1f4;return function(_0x327b38){logger[_0x143d('0x2f')](_0x327b38[_0x143d('0x30')]);if(_0x327b38[_0x143d('0x31')]){delete _0x327b38[_0x143d('0x31')];}_0x406aa4['status'](_0x43390a)['send'](_0x327b38);};}exports[_0x143d('0x32')]=function(_0x1426f4,_0x49c73a){var _0xddc20c={},_0x51fb1f={},_0x58fe28={'count':0x0,'rows':[]};var _0x3dc1cc=_[_0x143d('0x33')](db['AnalyticCustomReport'][_0x143d('0x34')],function(_0x4ba2c5){return{'name':_0x4ba2c5[_0x143d('0x35')],'type':_0x4ba2c5[_0x143d('0x36')][_0x143d('0x37')]};});_0x51fb1f[_0x143d('0x38')]=_[_0x143d('0x33')](_0x3dc1cc,'name');_0x51fb1f[_0x143d('0x39')]=_[_0x143d('0x3a')](_0x1426f4[_0x143d('0x39')]);_0x51fb1f[_0x143d('0x3b')]=_[_0x143d('0x3c')](_0x51fb1f[_0x143d('0x38')],_0x51fb1f[_0x143d('0x39')]);_0xddc20c['attributes']=_[_0x143d('0x3c')](_0x51fb1f[_0x143d('0x38')],qs[_0x143d('0x3d')](_0x1426f4[_0x143d('0x39')][_0x143d('0x3d')]));_0xddc20c['attributes']=_0xddc20c[_0x143d('0x3e')][_0x143d('0x3f')]?_0xddc20c[_0x143d('0x3e')]:_0x51fb1f[_0x143d('0x38')];if(!_0x1426f4['query'][_0x143d('0x40')](_0x143d('0x41'))){_0xddc20c[_0x143d('0x24')]=qs['limit'](_0x1426f4['query'][_0x143d('0x24')]);_0xddc20c[_0x143d('0x23')]=qs[_0x143d('0x23')](_0x1426f4[_0x143d('0x39')][_0x143d('0x23')]);}_0xddc20c[_0x143d('0x42')]=qs[_0x143d('0x43')](_0x1426f4[_0x143d('0x39')]['sort']);_0xddc20c[_0x143d('0x44')]=qs[_0x143d('0x3b')](_[_0x143d('0x45')](_0x1426f4['query'],_0x51fb1f[_0x143d('0x3b')]),_0x3dc1cc);if(_0x1426f4[_0x143d('0x39')][_0x143d('0x46')]){_0xddc20c[_0x143d('0x44')]=_[_0x143d('0x47')](_0xddc20c[_0x143d('0x44')],{'$or':_['map'](_0x3dc1cc,function(_0x24002a){if(_0x24002a[_0x143d('0x36')]!==_0x143d('0x48')){var _0x415de6={};_0x415de6[_0x24002a[_0x143d('0x31')]]={'$like':'%'+_0x1426f4[_0x143d('0x39')][_0x143d('0x46')]+'%'};return _0x415de6;}})});}_0xddc20c=_[_0x143d('0x47')]({},_0xddc20c,_0x1426f4[_0x143d('0x49')]);var _0x3734f1={'where':_0xddc20c['where']};return db[_0x143d('0x4a')][_0x143d('0x22')](_0x3734f1)[_0x143d('0x2a')](function(_0x27d485){_0x58fe28[_0x143d('0x22')]=_0x27d485;if(_0x1426f4['query'][_0x143d('0x4b')]){_0xddc20c[_0x143d('0x4c')]=[{'all':!![]}];}return db[_0x143d('0x4a')][_0x143d('0x4d')](_0xddc20c);})[_0x143d('0x2a')](function(_0x3d2838){_0x58fe28[_0x143d('0x4e')]=_0x3d2838;return _0x58fe28;})['then'](respondWithFilteredResult(_0x49c73a,_0xddc20c))[_0x143d('0x4f')](handleError(_0x49c73a,null));};exports[_0x143d('0x50')]=function(_0x4b0741,_0x5e74a7){var _0x5e1283={'raw':![],'where':{'id':_0x4b0741[_0x143d('0x51')]['id']}},_0x25fb54={};_0x25fb54[_0x143d('0x38')]=_[_0x143d('0x3a')](db[_0x143d('0x4a')][_0x143d('0x34')]);_0x25fb54[_0x143d('0x39')]=_[_0x143d('0x3a')](_0x4b0741['query']);_0x25fb54[_0x143d('0x3b')]=_['intersection'](_0x25fb54['model'],_0x25fb54[_0x143d('0x39')]);_0x5e1283[_0x143d('0x3e')]=_[_0x143d('0x3c')](_0x25fb54[_0x143d('0x38')],qs['fields'](_0x4b0741['query'][_0x143d('0x3d')]));_0x5e1283[_0x143d('0x3e')]=_0x5e1283[_0x143d('0x3e')][_0x143d('0x3f')]?_0x5e1283[_0x143d('0x3e')]:_0x25fb54[_0x143d('0x38')];if(_0x4b0741[_0x143d('0x39')][_0x143d('0x4b')]){_0x5e1283[_0x143d('0x4c')]=[{'all':!![]}];}_0x5e1283=_['merge']({},_0x5e1283,_0x4b0741[_0x143d('0x49')]);return db['AnalyticCustomReport']['find'](_0x5e1283)[_0x143d('0x2a')](handleEntityNotFound(_0x5e74a7,null))[_0x143d('0x2a')](respondWithResult(_0x5e74a7,null))['catch'](handleError(_0x5e74a7,null));};exports[_0x143d('0x52')]=function(_0x2e747a,_0x59f8f7){return db[_0x143d('0x4a')][_0x143d('0x52')](_0x2e747a['body'],{})[_0x143d('0x2a')](function(_0x2b47d2){var _0x3a1e32=_0x2e747a[_0x143d('0x53')][_0x143d('0x2c')]({'plain':!![]});if(!_0x3a1e32)throw new Error(_0x143d('0x54'));if(_0x3a1e32[_0x143d('0x55')]===_0x143d('0x53')){var _0x58188e=_0x2b47d2['get']({'plain':!![]});var _0x9b3154=_0x143d('0x56');return db[_0x143d('0x57')]['find']({'where':{'name':_0x9b3154,'userProfileId':_0x3a1e32[_0x143d('0x58')]},'raw':!![]})[_0x143d('0x2a')](function(_0x534a61){if(_0x534a61&&_0x534a61[_0x143d('0x59')]===0x0){return db[_0x143d('0x2d')][_0x143d('0x52')]({'name':_0x58188e[_0x143d('0x31')],'resourceId':_0x58188e['id'],'type':'CustomReports','sectionId':_0x534a61['id']},{})[_0x143d('0x2a')](function(){return _0x2b47d2;});}else{return _0x2b47d2;}})[_0x143d('0x4f')](function(_0x31b3ce){logger[_0x143d('0x2f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x31b3ce);throw _0x31b3ce;});}return _0x2b47d2;})[_0x143d('0x2a')](respondWithResult(_0x59f8f7,0xc9))[_0x143d('0x4f')](handleError(_0x59f8f7,null));};exports[_0x143d('0x29')]=function(_0x312ade,_0x4e98c0){if(_0x312ade[_0x143d('0x5a')]['id']){delete _0x312ade['body']['id'];}return db['AnalyticCustomReport']['find']({'where':{'id':_0x312ade[_0x143d('0x51')]['id']}})[_0x143d('0x2a')](handleEntityNotFound(_0x4e98c0,null))[_0x143d('0x2a')](saveUpdates(_0x312ade[_0x143d('0x5a')],null))[_0x143d('0x2a')](respondWithResult(_0x4e98c0,null))[_0x143d('0x4f')](handleError(_0x4e98c0,null));};exports[_0x143d('0x2b')]=function(_0x155d65,_0x5bf09d){return db[_0x143d('0x4a')]['find']({'where':{'id':_0x155d65[_0x143d('0x51')]['id']}})[_0x143d('0x2a')](handleEntityNotFound(_0x5bf09d,null))[_0x143d('0x2a')](removeEntity(_0x5bf09d,null))[_0x143d('0x4f')](handleError(_0x5bf09d,null));};exports['preview']=function(_0x22d898,_0x56e52e){var _0x34766f=0xa;var _0x1ab612=[_0x143d('0x5b'),_0x143d('0x5c'),_0x143d('0x5d'),_0x143d('0x5e')];var _0x67d632={'SUM':_0x143d('0x5f'),'COUNT':_0x143d('0x60'),'COUNT DISTINCT':_0x143d('0x61'),'MAX':'MAX(%s)','MIN':_0x143d('0x62'),'AVG':_0x143d('0x63'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x143d('0x64')};var _0x343f0d={'SEC_TO_TIME':_0x143d('0x65'),'DATE':'DATE(%s)','HOUR':_0x143d('0x66'),'ROUND':_0x143d('0x67'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x132d5f=function(_0x1790a1){return!_[_0x143d('0x68')]([_0x143d('0x69'),_0x143d('0x6a'),_0x143d('0x6b'),_0x143d('0x6c')],_0x1790a1);};var _0x1c89d=function(_0x51cf9d){if(!_0x51cf9d||!_0x51cf9d[_0x143d('0x6d')]['length']){return'';}for(var _0x354014='(',_0x2061bd=0x0;_0x2061bd<_0x51cf9d['rules']['length'];_0x2061bd+=0x1){_0x2061bd>0x0&&(_0x354014+='\x20'+_0x51cf9d['operator']+'\x20');_0x354014+=_0x51cf9d[_0x143d('0x6d')][_0x2061bd][_0x143d('0x6e')]?_0x1c89d(_0x51cf9d[_0x143d('0x6d')][_0x2061bd][_0x143d('0x6e')]):_0x51cf9d[_0x143d('0x6d')][_0x2061bd][_0x143d('0x6f')]+'\x20'+_0x51cf9d['rules'][_0x2061bd]['condition']+(_0x132d5f(_0x51cf9d['rules'][_0x2061bd][_0x143d('0x70')])?'\x20'+_0x51cf9d['rules'][_0x2061bd][_0x143d('0x71')]:'');}return _0x354014+')';};var _0x18a3a0={'where':{'id':_0x22d898['params']['id']}},_0x26f694,_0x1da6e0,_0x55aed2,_0x2c9313,_0x15989a;_0x18a3a0=_['merge']({},_0x18a3a0,_0x22d898['options']);return db[_0x143d('0x4a')][_0x143d('0x72')](_0x18a3a0)[_0x143d('0x2a')](function(_0x1239a8){if(_0x1239a8){_0x26f694=_0x1239a8;return _0x1239a8[_0x143d('0x73')]();}return null;})['then'](function(_0x316bd7){if(_0x316bd7){if(!_0x316bd7[_0x143d('0x3f')]){throw new db[(_0x143d('0x74'))]['ValidationErrorItem'](_0x143d('0x75'),0x193);}_0x1da6e0=_0x316bd7;return db[_0x143d('0x76')][_0x143d('0x4d')]({'raw':!![]});}return null;})['then'](function(_0x175cbd){if(_0x175cbd){_0x55aed2=_[_0x143d('0x77')](_0x175cbd,'id');var _0xfd2e5b;var _0x42fe3e=squel[_0x143d('0x78')]();_0x42fe3e[_0x143d('0x79')](_0x26f694[_0x143d('0x7a')]);for(var _0x1c832b=0x0;_0x1c832b<_0x1da6e0[_0x143d('0x3f')];_0x1c832b+=0x1){_0xfd2e5b=_0x1da6e0[_0x1c832b][_0x143d('0x7b')]?_0x55aed2[_0x1da6e0[_0x1c832b][_0x143d('0x7b')]][_0x143d('0x7c')]:_0x1da6e0[_0x1c832b][_0x143d('0x6f')];_0xfd2e5b=_0x1da6e0[_0x1c832b][_0x143d('0x7d')]?_[_0x143d('0x7e')](_0x67d632[_0x1da6e0[_0x1c832b][_0x143d('0x7d')]],'%s',_0xfd2e5b):_0xfd2e5b;_0xfd2e5b=_0x1da6e0[_0x1c832b][_0x143d('0x7f')]?_['replace'](_0x343f0d[_0x1da6e0[_0x1c832b][_0x143d('0x7f')]],'%s',_0xfd2e5b):_0xfd2e5b;if(_0x1da6e0[_0x1c832b][_0x143d('0x80')]){_0x42fe3e[_0x143d('0x6e')](_0xfd2e5b);}_0x1da6e0[_0x1c832b]['orderBy']&&_0x42fe3e[_0x143d('0x42')](_0xfd2e5b,_0x1da6e0[_0x1c832b][_0x143d('0x81')]==='DESC'?![]:!![]);_0x42fe3e['field'](_0xfd2e5b,_0x1da6e0[_0x1c832b][_0x143d('0x82')]||_0xfd2e5b);}if(_0x26f694[_0x143d('0x83')]){_0x26f694['joins']=JSON['parse'](_0x26f694[_0x143d('0x83')]);for(var _0x357158=0x0;_0x357158<_0x26f694[_0x143d('0x83')][_0x143d('0x3f')];_0x357158+=0x1){if(_0x26f694[_0x143d('0x83')][_0x357158][_0x143d('0x36')]&&_[_0x143d('0x68')](_0x1ab612,_0x26f694[_0x143d('0x83')][_0x357158][_0x143d('0x36')])&&_0x26f694[_0x143d('0x83')][_0x357158][_0x143d('0x84')]&&_0x26f694[_0x143d('0x83')][_0x357158][_0x143d('0x85')]&&_0x26f694[_0x143d('0x83')][_0x357158]['foreignKey']){_0x42fe3e[_0x26f694[_0x143d('0x83')][_0x357158][_0x143d('0x36')]](_0x26f694[_0x143d('0x83')][_0x357158][_0x143d('0x85')],null,util[_0x143d('0x7f')](_0x143d('0x86'),_0x26f694[_0x143d('0x7a')],_0x26f694[_0x143d('0x83')][_0x357158]['parentKey'],_0x26f694['joins'][_0x357158][_0x143d('0x85')],_0x26f694[_0x143d('0x83')][_0x357158][_0x143d('0x87')]));}}}if(_0x26f694[_0x143d('0x88')]){_0x26f694['conditions']=JSON['parse'](_0x26f694[_0x143d('0x88')]);_0x42fe3e['where'](_0x1c89d(_0x26f694[_0x143d('0x88')][_0x143d('0x6e')]));}_0x15989a=_0x42fe3e[_0x143d('0x89')]();_0x42fe3e[_0x143d('0x24')](_0x34766f);_0x42fe3e[_0x143d('0x23')](0x0);logger['debug']('Limited\x20Query:',_0x42fe3e[_0x143d('0x8a')]());return db[_0x143d('0x8b')][_0x143d('0x39')](_0x42fe3e[_0x143d('0x8a')](),{'type':db[_0x143d('0x8b')]['QueryTypes'][_0x143d('0x8c')]});}})[_0x143d('0x2a')](respondWithResult(_0x56e52e,null))[_0x143d('0x4f')](handleError(_0x56e52e,null));};function runReport(_0xc4a919,_0x543365,_0x3a9ca2){var _0x2da9f0=_0x543365['name'];var _0x53c17a=0xa;var _0x14098a=['join',_0x143d('0x5c'),_0x143d('0x5d'),_0x143d('0x5e')];var _0x326fed={'SUM':_0x143d('0x5f'),'COUNT':_0x143d('0x60'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x143d('0x8d'),'MIN':_0x143d('0x62'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x143d('0x8e'),'GROUP_CONCAT ASC':_0x143d('0x8f'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x966549={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x143d('0x90'),'HOUR':_0x143d('0x66'),'ROUND':_0x143d('0x67'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x18d9bf=function(_0x5c62da){return!_[_0x143d('0x68')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x143d('0x6b'),_0x143d('0x6c')],_0x5c62da);};var _0x50bf53=function(_0x326510){if(!_0x326510||!_0x326510['rules'][_0x143d('0x3f')]){return'';}for(var _0x1dd0b7='(',_0x2862e0=0x0;_0x2862e0<_0x326510['rules'][_0x143d('0x3f')];_0x2862e0+=0x1){_0x2862e0>0x0&&(_0x1dd0b7+='\x20'+_0x326510['operator']+'\x20');_0x1dd0b7+=_0x326510[_0x143d('0x6d')][_0x2862e0][_0x143d('0x6e')]?_0x50bf53(_0x326510['rules'][_0x2862e0][_0x143d('0x6e')]):_0x326510[_0x143d('0x6d')][_0x2862e0][_0x143d('0x6f')]+'\x20'+_0x326510[_0x143d('0x6d')][_0x2862e0][_0x143d('0x70')]+(_0x18d9bf(_0x326510[_0x143d('0x6d')][_0x2862e0][_0x143d('0x70')])?'\x20'+_0x326510[_0x143d('0x6d')][_0x2862e0][_0x143d('0x71')]:'');}return _0x1dd0b7+')';};var _0x519dba={'where':{'id':_0xc4a919['id']}},_0x1da0af,_0x2c777e,_0x4cb602,_0x5b7539,_0x203d82;_0x519dba=_['merge']({},_0x519dba,_0x3a9ca2);return db[_0x143d('0x4a')][_0x143d('0x72')](_0x519dba)[_0x143d('0x2a')](function(_0xadd1d4){if(_0xadd1d4){_0x1da0af=_0xadd1d4;return _0xadd1d4['getFields']();}return null;})['then'](function(_0x7e1a99){if(_0x7e1a99){if(!_0x7e1a99[_0x143d('0x3f')]){throw new db[(_0x143d('0x74'))][(_0x143d('0x91'))](_0x143d('0x75'),0x193);}_0x2c777e=_0x7e1a99;return db[_0x143d('0x76')][_0x143d('0x4d')]({'raw':!![]});}return null;})[_0x143d('0x2a')](function(_0x35e4bd){if(_0x35e4bd){_0x4cb602=_[_0x143d('0x77')](_0x35e4bd,'id');var _0x453a8e;var _0xb70efa=squel['select']();_0xb70efa[_0x143d('0x79')](_0x1da0af[_0x143d('0x7a')]);for(var _0x1d5943=0x0;_0x1d5943<_0x2c777e[_0x143d('0x3f')];_0x1d5943+=0x1){_0x453a8e=_0x2c777e[_0x1d5943]['MetricId']?_0x4cb602[_0x2c777e[_0x1d5943]['MetricId']][_0x143d('0x7c')]:_0x2c777e[_0x1d5943]['field'];_0x453a8e=_0x2c777e[_0x1d5943][_0x143d('0x7d')]?_[_0x143d('0x7e')](_0x326fed[_0x2c777e[_0x1d5943][_0x143d('0x7d')]],'%s',_0x453a8e):_0x453a8e;_0x453a8e=_0x2c777e[_0x1d5943][_0x143d('0x7f')]?_['replace'](_0x966549[_0x2c777e[_0x1d5943][_0x143d('0x7f')]],'%s',_0x453a8e):_0x453a8e;if(_0x2c777e[_0x1d5943]['groupBy']){_0xb70efa[_0x143d('0x6e')](_0x453a8e);}_0x2c777e[_0x1d5943][_0x143d('0x81')]&&_0xb70efa['order'](_0x453a8e,_0x2c777e[_0x1d5943][_0x143d('0x81')]===_0x143d('0x92')?![]:!![]);_0xb70efa[_0x143d('0x6f')](_0x453a8e,_0x2c777e[_0x1d5943][_0x143d('0x82')]||_0x453a8e);}if(_0x1da0af[_0x143d('0x83')]){_0x1da0af['joins']=JSON[_0x143d('0x93')](_0x1da0af[_0x143d('0x83')]);for(var _0x48b410=0x0;_0x48b410<_0x1da0af[_0x143d('0x83')][_0x143d('0x3f')];_0x48b410+=0x1){if(_0x1da0af['joins'][_0x48b410]['type']&&_['includes'](_0x14098a,_0x1da0af[_0x143d('0x83')][_0x48b410][_0x143d('0x36')])&&_0x1da0af['joins'][_0x48b410][_0x143d('0x84')]&&_0x1da0af[_0x143d('0x83')][_0x48b410]['foreignTable']&&_0x1da0af[_0x143d('0x83')][_0x48b410]['foreignKey']){_0xb70efa[_0x1da0af['joins'][_0x48b410][_0x143d('0x36')]](_0x1da0af[_0x143d('0x83')][_0x48b410][_0x143d('0x85')],null,util[_0x143d('0x7f')](_0x143d('0x86'),_0x1da0af[_0x143d('0x7a')],_0x1da0af[_0x143d('0x83')][_0x48b410][_0x143d('0x84')],_0x1da0af['joins'][_0x48b410][_0x143d('0x85')],_0x1da0af[_0x143d('0x83')][_0x48b410][_0x143d('0x87')]));}}}if(_0x1da0af[_0x143d('0x88')]){_0x1da0af[_0x143d('0x88')]=JSON[_0x143d('0x93')](_0x1da0af['conditions']);_0xb70efa[_0x143d('0x44')](_0x50bf53(_0x1da0af[_0x143d('0x88')][_0x143d('0x6e')]));}_0x203d82=_0xb70efa['clone']();_0xb70efa[_0x143d('0x24')](_0x53c17a);_0xb70efa[_0x143d('0x23')](0x0);logger['debug'](_0x143d('0x94'),_0xb70efa[_0x143d('0x8a')]());return db['sequelize'][_0x143d('0x39')](_0xb70efa[_0x143d('0x8a')](),{'type':db['sequelize']['QueryTypes']['SELECT']});}})['then'](function(_0xc2d999){if(!_0xc2d999['length']){throw new db[(_0x143d('0x74'))]['ValidationErrorItem'](_0x143d('0x95'),0xcc);}if(_0x543365['output']===_0x143d('0x96')){return null;}var _0x4ed53c=_[_0x143d('0x47')](_0x543365,{'name':_0x543365[_0x143d('0x97')]||_0x543365[_0x143d('0x31')]||_0x1da0af[_0x143d('0x31')],'basename':_0x2da9f0,'savename':util[_0x143d('0x7f')]('%s-%s.%s',_0x543365[_0x143d('0x31')]||_0x1da0af['name'],require(_0x143d('0x98'))[_0x143d('0x99')](0x4),_0x543365[_0x143d('0x9a')]||'csv'),'reportId':_0x1da0af['id'],'reportType':_0x143d('0x9b')});return db[_0x143d('0x9c')][_0x143d('0x52')](_0x4ed53c,{'raw':!![]});})['then'](function(_0x4924ae){if(_0x1da0af[_0x143d('0x7a')]===_0x143d('0x9d')){_0x203d82[_0x143d('0x44')](_0x1da0af['table']+_0x143d('0x9e'),_0x543365[_0x143d('0x9f')],_0x543365[_0x143d('0xa0')]);}else{_0x203d82[_0x143d('0x44')](_0x1da0af['table']+_0x143d('0xa1'),_0x543365[_0x143d('0x9f')],_0x543365[_0x143d('0xa0')]);}if(_0x4924ae){logger[_0x143d('0xa2')](_0x143d('0xa3'),_0x203d82['toString']());require(_0x143d('0xa4'))[_0x143d('0xa5')](path['join'](__dirname,_0x143d('0xa6'),_0x4924ae[_0x143d('0x9a')]),[_0x4924ae['id'],_0x203d82['toString'](),path['join'](__dirname,_0x143d('0xa7'),_0x4924ae[_0x143d('0xa8')]),_0x2da9f0]);return _0x4924ae;}else{var _0x105aeb=squel[_0x143d('0x78')]();_0x105aeb[_0x143d('0x79')]('('+_0x203d82[_0x143d('0x8a')]()+')','countTable');_0x105aeb[_0x143d('0x6f')]('COUNT(*)',_0x143d('0x22'));_0x203d82['limit'](_0x543365[_0x143d('0x24')]||_0x53c17a);_0x203d82[_0x143d('0x23')](_0x543365[_0x143d('0x23')]||0x0);return dbH[_0x143d('0x8b')][_0x143d('0x39')](_0x105aeb[_0x143d('0x8a')](),{'type':dbH[_0x143d('0x8b')][_0x143d('0xa9')]['SELECT']})['then'](function(_0xbe69ed){if(!_0xbe69ed[_0x143d('0x3f')]){_0x5b7539=0x0;}else{_0x5b7539=_0xbe69ed[0x0]['count']||0x0;}return dbH[_0x143d('0x8b')][_0x143d('0x39')](_0x203d82[_0x143d('0x8a')](),{'type':dbH[_0x143d('0x8b')][_0x143d('0xa9')]['SELECT']});})['then'](function(_0x965d3d){return{'rows':_0x965d3d||[],'count':_0x5b7539};});}});}exports[_0x143d('0xaa')]=function(_0x1089c7,_0x106453){return runReport(_0x1089c7[_0x143d('0x51')],_0x1089c7[_0x143d('0x39')],_0x1089c7[_0x143d('0x49')])['then'](respondWithResult(_0x106453,null))['catch'](handleError(_0x106453,null));};exports[_0x143d('0xab')]=runReport;exports[_0x143d('0x39')]=function(_0x530a25,_0x533778){var _0x3c00c6=0xa;var _0x1e32b9=[_0x143d('0x5b'),_0x143d('0x5c'),'right_join','cross_join'];var _0x309e85={'SUM':_0x143d('0x5f'),'COUNT':_0x143d('0x60'),'COUNT DISTINCT':_0x143d('0x61'),'MAX':'MAX(%s)','MIN':_0x143d('0x62'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x143d('0x8e'),'GROUP_CONCAT ASC':_0x143d('0x8f'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0xfbcc99={'SEC_TO_TIME':_0x143d('0x65'),'DATE':_0x143d('0x90'),'HOUR':_0x143d('0x66'),'ROUND':_0x143d('0x67'),'UNIX_TIMESTAMP':_0x143d('0xac')};var _0x59d3e8=function(_0x50396c){return!_[_0x143d('0x68')](['IS\x20NULL',_0x143d('0x6a'),_0x143d('0x6b'),_0x143d('0x6c')],_0x50396c);};var _0x1f3e96=function(_0x3af356){if(!_0x3af356||!_0x3af356[_0x143d('0x6d')][_0x143d('0x3f')]){return'';}for(var _0x3d5982='(',_0x415963=0x0;_0x415963<_0x3af356[_0x143d('0x6d')][_0x143d('0x3f')];_0x415963+=0x1){_0x415963>0x0&&(_0x3d5982+='\x20'+_0x3af356[_0x143d('0xad')]+'\x20');_0x3d5982+=_0x3af356['rules'][_0x415963][_0x143d('0x6e')]?_0x1f3e96(_0x3af356['rules'][_0x415963][_0x143d('0x6e')]):_0x3af356[_0x143d('0x6d')][_0x415963]['field']+'\x20'+_0x3af356['rules'][_0x415963][_0x143d('0x70')]+(_0x59d3e8(_0x3af356[_0x143d('0x6d')][_0x415963]['condition'])?'\x20'+_0x3af356[_0x143d('0x6d')][_0x415963]['value']:'');}return _0x3d5982+')';};var _0x10b13e={'where':{'id':_0x530a25[_0x143d('0x51')]['id']}},_0x420ef9,_0x33d018,_0x5d1b7c,_0x5585a9,_0x19a876;_0x10b13e=_[_0x143d('0x47')]({},_0x10b13e,_0x530a25[_0x143d('0x49')]);return db[_0x143d('0x4a')]['find'](_0x10b13e)[_0x143d('0x2a')](function(_0xffdbbf){if(_0xffdbbf){_0x420ef9=_0xffdbbf;return _0xffdbbf['getFields']();}return null;})[_0x143d('0x2a')](function(_0x54f495){if(_0x54f495){if(!_0x54f495[_0x143d('0x3f')]){throw new db[(_0x143d('0x74'))][(_0x143d('0x91'))](_0x143d('0x75'),0x193);}_0x33d018=_0x54f495;return db[_0x143d('0x76')][_0x143d('0x4d')]({'raw':!![]});}return null;})[_0x143d('0x2a')](function(_0x34a374){if(_0x34a374){_0x5d1b7c=_[_0x143d('0x77')](_0x34a374,'id');var _0x275c4d;var _0x5c9c4b=squel[_0x143d('0x78')]();_0x5c9c4b['from'](_0x420ef9[_0x143d('0x7a')]);for(var _0x7af3b5=0x0;_0x7af3b5<_0x33d018['length'];_0x7af3b5+=0x1){_0x275c4d=_0x33d018[_0x7af3b5][_0x143d('0x7b')]?_0x5d1b7c[_0x33d018[_0x7af3b5][_0x143d('0x7b')]]['metric']:_0x33d018[_0x7af3b5][_0x143d('0x6f')];_0x275c4d=_0x33d018[_0x7af3b5][_0x143d('0x7d')]?_['replace'](_0x309e85[_0x33d018[_0x7af3b5]['function']],'%s',_0x275c4d):_0x275c4d;_0x275c4d=_0x33d018[_0x7af3b5][_0x143d('0x7f')]?_[_0x143d('0x7e')](_0xfbcc99[_0x33d018[_0x7af3b5]['format']],'%s',_0x275c4d):_0x275c4d;if(_0x33d018[_0x7af3b5][_0x143d('0x80')]){_0x5c9c4b['group'](_0x275c4d);}_0x33d018[_0x7af3b5][_0x143d('0x81')]&&_0x5c9c4b[_0x143d('0x42')](_0x275c4d,_0x33d018[_0x7af3b5]['orderBy']===_0x143d('0x92')?![]:!![]);_0x5c9c4b[_0x143d('0x6f')](_0x275c4d,_0x33d018[_0x7af3b5][_0x143d('0x82')]||_0x275c4d);}if(_0x420ef9[_0x143d('0x83')]){_0x420ef9[_0x143d('0x83')]=JSON[_0x143d('0x93')](_0x420ef9[_0x143d('0x83')]);for(var _0x1f8266=0x0;_0x1f8266<_0x420ef9[_0x143d('0x83')][_0x143d('0x3f')];_0x1f8266+=0x1){if(_0x420ef9['joins'][_0x1f8266][_0x143d('0x36')]&&_[_0x143d('0x68')](_0x1e32b9,_0x420ef9[_0x143d('0x83')][_0x1f8266][_0x143d('0x36')])&&_0x420ef9['joins'][_0x1f8266][_0x143d('0x84')]&&_0x420ef9[_0x143d('0x83')][_0x1f8266]['foreignTable']&&_0x420ef9[_0x143d('0x83')][_0x1f8266][_0x143d('0x87')]){_0x5c9c4b[_0x420ef9['joins'][_0x1f8266]['type']](_0x420ef9[_0x143d('0x83')][_0x1f8266][_0x143d('0x85')],null,util['format'](_0x143d('0x86'),_0x420ef9['table'],_0x420ef9['joins'][_0x1f8266]['parentKey'],_0x420ef9[_0x143d('0x83')][_0x1f8266][_0x143d('0x85')],_0x420ef9[_0x143d('0x83')][_0x1f8266][_0x143d('0x87')]));}}}if(_0x420ef9[_0x143d('0x88')]){_0x420ef9[_0x143d('0x88')]=JSON[_0x143d('0x93')](_0x420ef9[_0x143d('0x88')]);_0x5c9c4b[_0x143d('0x44')](_0x1f3e96(_0x420ef9[_0x143d('0x88')]['group']));}_0x19a876=_0x5c9c4b[_0x143d('0x89')]();_0x5c9c4b['limit'](_0x3c00c6);_0x5c9c4b[_0x143d('0x23')](0x0);logger['debug'](_0x143d('0x94'),_0x5c9c4b[_0x143d('0x8a')]());return db[_0x143d('0x8b')][_0x143d('0x39')](_0x5c9c4b[_0x143d('0x8a')](),{'type':db[_0x143d('0x8b')]['QueryTypes'][_0x143d('0x8c')]});}})[_0x143d('0x2a')](function(){return{'sql':_0x19a876[_0x143d('0x8a')]()};})[_0x143d('0x2a')](respondWithResult(_0x533778,null))[_0x143d('0x4f')](handleError(_0x533778,null));};