0736133fdfa4d4c212ccb1024d3ba35104a970a4
[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 _0xb55d=['value','getFields','orderBy','output','web','fullPath','%s-%s.%s','randomstring','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','../../components/export/','../../files/reports','savename','select','countTable','COUNT(*)','sequelize','run','ROUND(%s)','Please\x20insert\x20at\x20least\x20one\x20field','metric','eml-format','rimraf','moment','bluebird','mustache','path','fs-extra','lodash','squel','crypto','jsforce','to-csv','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','CustomReports','UserProfileResource','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','AnalyticCustomReport','include','findAll','catch','length','includeAll','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','left_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','Sequelize','ValidationErrorItem','AnalyticMetric','keyBy','from','table','MetricId','function','replace','format','groupBy','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','toString','QueryTypes','SELECT','join','right_join','cross_join','AVG(%s)','SEC_TO_TIME(%s)','includes'];(function(_0x1a8a08,_0x2b8318){var _0x266ba3=function(_0x281561){while(--_0x281561){_0x1a8a08['push'](_0x1a8a08['shift']());}};_0x266ba3(++_0x2b8318);}(_0xb55d,0x15a));var _0xdb55=function(_0x5b19b9,_0x3ae40c){_0x5b19b9=_0x5b19b9-0x0;var _0xb673f5=_0xb55d[_0x5b19b9];return _0xb673f5;};'use strict';var emlformat=require(_0xdb55('0x0'));var rimraf=require(_0xdb55('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xdb55('0x2'));var BPromise=require(_0xdb55('0x3'));var Mustache=require(_0xdb55('0x4'));var util=require('util');var path=require(_0xdb55('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdb55('0x6'));var _=require(_0xdb55('0x7'));var squel=require(_0xdb55('0x8'));var crypto=require(_0xdb55('0x9'));var jsforce=require(_0xdb55('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xdb55('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xdb55('0xc'));var authService=require('../../components/auth/service');var qs=require(_0xdb55('0xd'));var as=require(_0xdb55('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xdb55('0xf'));var licenseUtil=require(_0xdb55('0x10'));var db=require(_0xdb55('0x11'))['db'];var dbH=require(_0xdb55('0x11'))[_0xdb55('0x12')];function respondWithStatusCode(_0x149a28,_0x199d71){_0x199d71=_0x199d71||0xcc;return function(_0x277f1c){if(_0x277f1c){return _0x149a28[_0xdb55('0x13')](_0x199d71);}return _0x149a28[_0xdb55('0x14')](_0x199d71)[_0xdb55('0x15')]();};}function respondWithResult(_0x35576a,_0x4c8b4c){_0x4c8b4c=_0x4c8b4c||0xc8;return function(_0x1b23b5){if(_0x1b23b5){return _0x35576a['status'](_0x4c8b4c)[_0xdb55('0x16')](_0x1b23b5);}};}function respondWithFilteredResult(_0x226096,_0x3c759a){return function(_0x147b2d){if(_0x147b2d){var _0x4609ad=typeof _0x3c759a[_0xdb55('0x17')]===_0xdb55('0x18')&&typeof _0x3c759a[_0xdb55('0x19')]===_0xdb55('0x18');var _0x451bbd=_0x147b2d['count'];var _0x12bbee=_0x4609ad?0x0:_0x3c759a[_0xdb55('0x17')];var _0x46ed9c=_0x4609ad?_0x147b2d[_0xdb55('0x1a')]:_0x3c759a[_0xdb55('0x17')]+_0x3c759a[_0xdb55('0x19')];var _0x2f4507;if(_0x46ed9c>=_0x451bbd){_0x46ed9c=_0x451bbd;_0x2f4507=0xc8;}else{_0x2f4507=0xce;}_0x226096[_0xdb55('0x14')](_0x2f4507);return _0x226096[_0xdb55('0x1b')](_0xdb55('0x1c'),_0x12bbee+'-'+_0x46ed9c+'/'+_0x451bbd)[_0xdb55('0x16')](_0x147b2d);}return null;};}function patchUpdates(_0x4d5197){return function(_0x3215a0){try{jsonpatch[_0xdb55('0x1d')](_0x3215a0,_0x4d5197,!![]);}catch(_0x4c91de){return BPromise[_0xdb55('0x1e')](_0x4c91de);}return _0x3215a0[_0xdb55('0x1f')]();};}function saveUpdates(_0x5440cb,_0x236938){return function(_0x6fdc49){if(_0x6fdc49){return _0x6fdc49[_0xdb55('0x20')](_0x5440cb)[_0xdb55('0x21')](function(_0x514e15){return _0x514e15;});}return null;};}function removeEntity(_0x2130e7,_0x196ef2){return function(_0x30a6e1){if(_0x30a6e1){return _0x30a6e1['destroy']()[_0xdb55('0x21')](function(){var _0x3b300d=_0x30a6e1['get']({'plain':!![]});var _0x373c38=_0xdb55('0x22');return db[_0xdb55('0x23')][_0xdb55('0x24')]({'where':{'type':_0x373c38,'resourceId':_0x3b300d['id']}})['then'](function(){return _0x30a6e1;});})['then'](function(){_0x2130e7[_0xdb55('0x14')](0xcc)[_0xdb55('0x15')]();});}};}function handleEntityNotFound(_0x30d4be,_0x35c445){return function(_0x54ee00){if(!_0x54ee00){_0x30d4be[_0xdb55('0x13')](0x194);}return _0x54ee00;};}function handleError(_0x1fc51c,_0x4e3e6a){_0x4e3e6a=_0x4e3e6a||0x1f4;return function(_0x1f7c12){logger[_0xdb55('0x25')](_0x1f7c12[_0xdb55('0x26')]);if(_0x1f7c12[_0xdb55('0x27')]){delete _0x1f7c12[_0xdb55('0x27')];}_0x1fc51c['status'](_0x4e3e6a)[_0xdb55('0x28')](_0x1f7c12);};}exports[_0xdb55('0x29')]=function(_0x4789bb,_0x2a028d){var _0x1605d5={},_0x4ab399={},_0x58944e={'count':0x0,'rows':[]};var _0xe940ef=_[_0xdb55('0x2a')](db['AnalyticCustomReport'][_0xdb55('0x2b')],function(_0x213e96){return{'name':_0x213e96[_0xdb55('0x2c')],'type':_0x213e96[_0xdb55('0x2d')][_0xdb55('0x2e')]};});_0x4ab399[_0xdb55('0x2f')]=_[_0xdb55('0x2a')](_0xe940ef,_0xdb55('0x27'));_0x4ab399['query']=_[_0xdb55('0x30')](_0x4789bb[_0xdb55('0x31')]);_0x4ab399[_0xdb55('0x32')]=_[_0xdb55('0x33')](_0x4ab399['model'],_0x4ab399[_0xdb55('0x31')]);_0x1605d5['attributes']=_['intersection'](_0x4ab399[_0xdb55('0x2f')],qs[_0xdb55('0x34')](_0x4789bb[_0xdb55('0x31')][_0xdb55('0x34')]));_0x1605d5[_0xdb55('0x35')]=_0x1605d5[_0xdb55('0x35')]['length']?_0x1605d5[_0xdb55('0x35')]:_0x4ab399[_0xdb55('0x2f')];if(!_0x4789bb[_0xdb55('0x31')][_0xdb55('0x36')](_0xdb55('0x37'))){_0x1605d5[_0xdb55('0x19')]=qs[_0xdb55('0x19')](_0x4789bb[_0xdb55('0x31')]['limit']);_0x1605d5[_0xdb55('0x17')]=qs['offset'](_0x4789bb[_0xdb55('0x31')]['offset']);}_0x1605d5[_0xdb55('0x38')]=qs['sort'](_0x4789bb[_0xdb55('0x31')][_0xdb55('0x39')]);_0x1605d5[_0xdb55('0x3a')]=qs[_0xdb55('0x32')](_[_0xdb55('0x3b')](_0x4789bb[_0xdb55('0x31')],_0x4ab399[_0xdb55('0x32')]),_0xe940ef);if(_0x4789bb[_0xdb55('0x31')]['filter']){_0x1605d5['where']=_[_0xdb55('0x3c')](_0x1605d5['where'],{'$or':_['map'](_0xe940ef,function(_0x4e581a){if(_0x4e581a[_0xdb55('0x2d')]!==_0xdb55('0x3d')){var _0x39d468={};_0x39d468[_0x4e581a[_0xdb55('0x27')]]={'$like':'%'+_0x4789bb[_0xdb55('0x31')]['filter']+'%'};return _0x39d468;}})});}_0x1605d5=_[_0xdb55('0x3c')]({},_0x1605d5,_0x4789bb[_0xdb55('0x3e')]);var _0x4ce63d={'where':_0x1605d5['where']};return db[_0xdb55('0x3f')]['count'](_0x4ce63d)['then'](function(_0x1c60f8){_0x58944e[_0xdb55('0x1a')]=_0x1c60f8;if(_0x4789bb[_0xdb55('0x31')]['includeAll']){_0x1605d5[_0xdb55('0x40')]=[{'all':!![]}];}return db[_0xdb55('0x3f')][_0xdb55('0x41')](_0x1605d5);})[_0xdb55('0x21')](function(_0x529290){_0x58944e['rows']=_0x529290;return _0x58944e;})[_0xdb55('0x21')](respondWithFilteredResult(_0x2a028d,_0x1605d5))[_0xdb55('0x42')](handleError(_0x2a028d,null));};exports['show']=function(_0x5a2390,_0x1b0eaa){var _0xa025ea={'raw':![],'where':{'id':_0x5a2390['params']['id']}},_0x4fabb2={};_0x4fabb2[_0xdb55('0x2f')]=_['keys'](db[_0xdb55('0x3f')][_0xdb55('0x2b')]);_0x4fabb2[_0xdb55('0x31')]=_[_0xdb55('0x30')](_0x5a2390[_0xdb55('0x31')]);_0x4fabb2[_0xdb55('0x32')]=_['intersection'](_0x4fabb2[_0xdb55('0x2f')],_0x4fabb2['query']);_0xa025ea['attributes']=_[_0xdb55('0x33')](_0x4fabb2[_0xdb55('0x2f')],qs[_0xdb55('0x34')](_0x5a2390[_0xdb55('0x31')][_0xdb55('0x34')]));_0xa025ea[_0xdb55('0x35')]=_0xa025ea[_0xdb55('0x35')][_0xdb55('0x43')]?_0xa025ea[_0xdb55('0x35')]:_0x4fabb2[_0xdb55('0x2f')];if(_0x5a2390['query'][_0xdb55('0x44')]){_0xa025ea['include']=[{'all':!![]}];}_0xa025ea=_[_0xdb55('0x3c')]({},_0xa025ea,_0x5a2390[_0xdb55('0x3e')]);return db[_0xdb55('0x3f')][_0xdb55('0x45')](_0xa025ea)[_0xdb55('0x21')](handleEntityNotFound(_0x1b0eaa,null))['then'](respondWithResult(_0x1b0eaa,null))[_0xdb55('0x42')](handleError(_0x1b0eaa,null));};exports[_0xdb55('0x46')]=function(_0x17fd72,_0x2e89a1){return db[_0xdb55('0x3f')][_0xdb55('0x46')](_0x17fd72[_0xdb55('0x47')],{})['then'](function(_0x337905){var _0x81fcbe=_0x17fd72[_0xdb55('0x48')][_0xdb55('0x49')]({'plain':!![]});if(!_0x81fcbe)throw new Error(_0xdb55('0x4a'));if(_0x81fcbe[_0xdb55('0x4b')]===_0xdb55('0x48')){var _0x56c4fb=_0x337905[_0xdb55('0x49')]({'plain':!![]});var _0xb8fcb=_0xdb55('0x4c');return db['UserProfileSection'][_0xdb55('0x45')]({'where':{'name':_0xb8fcb,'userProfileId':_0x81fcbe[_0xdb55('0x4d')]},'raw':!![]})['then'](function(_0x2d0811){if(_0x2d0811&&_0x2d0811[_0xdb55('0x4e')]===0x0){return db[_0xdb55('0x23')][_0xdb55('0x46')]({'name':_0x56c4fb[_0xdb55('0x27')],'resourceId':_0x56c4fb['id'],'type':_0xdb55('0x22'),'sectionId':_0x2d0811['id']},{})[_0xdb55('0x21')](function(){return _0x337905;});}else{return _0x337905;}})[_0xdb55('0x42')](function(_0x4f08db){logger[_0xdb55('0x25')](_0xdb55('0x4f'),_0x4f08db);throw _0x4f08db;});}return _0x337905;})[_0xdb55('0x21')](respondWithResult(_0x2e89a1,0xc9))['catch'](handleError(_0x2e89a1,null));};exports['update']=function(_0x20d3c4,_0x2af30e){if(_0x20d3c4[_0xdb55('0x47')]['id']){delete _0x20d3c4[_0xdb55('0x47')]['id'];}return db[_0xdb55('0x3f')][_0xdb55('0x45')]({'where':{'id':_0x20d3c4[_0xdb55('0x50')]['id']}})['then'](handleEntityNotFound(_0x2af30e,null))[_0xdb55('0x21')](saveUpdates(_0x20d3c4[_0xdb55('0x47')],null))[_0xdb55('0x21')](respondWithResult(_0x2af30e,null))[_0xdb55('0x42')](handleError(_0x2af30e,null));};exports[_0xdb55('0x24')]=function(_0x27c649,_0x1932d9){return db[_0xdb55('0x3f')]['find']({'where':{'id':_0x27c649['params']['id']}})[_0xdb55('0x21')](handleEntityNotFound(_0x1932d9,null))[_0xdb55('0x21')](removeEntity(_0x1932d9,null))['catch'](handleError(_0x1932d9,null));};exports['preview']=function(_0xa0e355,_0x5003aa){var _0x256046=0xa;var _0x47c81e=['join',_0xdb55('0x51'),'right_join','cross_join'];var _0x6cc650={'SUM':_0xdb55('0x52'),'COUNT':_0xdb55('0x53'),'COUNT DISTINCT':_0xdb55('0x54'),'MAX':_0xdb55('0x55'),'MIN':_0xdb55('0x56'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xdb55('0x57'),'GROUP_CONCAT ASC':_0xdb55('0x58'),'GROUP_CONCAT DESC':_0xdb55('0x59')};var _0x5edce8={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xdb55('0x5a'),'HOUR':_0xdb55('0x5b'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xdb55('0x5c')};var _0x57a739=function(_0x48f1dd){return!_['includes']([_0xdb55('0x5d'),_0xdb55('0x5e'),_0xdb55('0x5f'),_0xdb55('0x60')],_0x48f1dd);};var _0x335125=function(_0x504ae4){if(!_0x504ae4||!_0x504ae4[_0xdb55('0x61')][_0xdb55('0x43')]){return'';}for(var _0x5be74b='(',_0x47205f=0x0;_0x47205f<_0x504ae4[_0xdb55('0x61')][_0xdb55('0x43')];_0x47205f+=0x1){_0x47205f>0x0&&(_0x5be74b+='\x20'+_0x504ae4[_0xdb55('0x62')]+'\x20');_0x5be74b+=_0x504ae4[_0xdb55('0x61')][_0x47205f][_0xdb55('0x63')]?_0x335125(_0x504ae4[_0xdb55('0x61')][_0x47205f][_0xdb55('0x63')]):_0x504ae4[_0xdb55('0x61')][_0x47205f][_0xdb55('0x64')]+'\x20'+_0x504ae4[_0xdb55('0x61')][_0x47205f][_0xdb55('0x65')]+(_0x57a739(_0x504ae4['rules'][_0x47205f][_0xdb55('0x65')])?'\x20'+_0x504ae4[_0xdb55('0x61')][_0x47205f]['value']:'');}return _0x5be74b+')';};var _0x1a2b47={'where':{'id':_0xa0e355[_0xdb55('0x50')]['id']}},_0x5249f1,_0x4db433,_0x15c18e,_0x27f306,_0x3db97e;_0x1a2b47=_[_0xdb55('0x3c')]({},_0x1a2b47,_0xa0e355['options']);return db[_0xdb55('0x3f')][_0xdb55('0x45')](_0x1a2b47)[_0xdb55('0x21')](function(_0x2f2355){if(_0x2f2355){_0x5249f1=_0x2f2355;return _0x2f2355['getFields']();}return null;})[_0xdb55('0x21')](function(_0x46c12e){if(_0x46c12e){if(!_0x46c12e[_0xdb55('0x43')]){throw new db[(_0xdb55('0x66'))][(_0xdb55('0x67'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4db433=_0x46c12e;return db[_0xdb55('0x68')]['findAll']({'raw':!![]});}return null;})[_0xdb55('0x21')](function(_0x26b2dd){if(_0x26b2dd){_0x15c18e=_[_0xdb55('0x69')](_0x26b2dd,'id');var _0x49449e;var _0x3a0611=squel['select']();_0x3a0611[_0xdb55('0x6a')](_0x5249f1[_0xdb55('0x6b')]);for(var _0x2d158e=0x0;_0x2d158e<_0x4db433[_0xdb55('0x43')];_0x2d158e+=0x1){_0x49449e=_0x4db433[_0x2d158e][_0xdb55('0x6c')]?_0x15c18e[_0x4db433[_0x2d158e][_0xdb55('0x6c')]]['metric']:_0x4db433[_0x2d158e][_0xdb55('0x64')];_0x49449e=_0x4db433[_0x2d158e][_0xdb55('0x6d')]?_[_0xdb55('0x6e')](_0x6cc650[_0x4db433[_0x2d158e][_0xdb55('0x6d')]],'%s',_0x49449e):_0x49449e;_0x49449e=_0x4db433[_0x2d158e][_0xdb55('0x6f')]?_[_0xdb55('0x6e')](_0x5edce8[_0x4db433[_0x2d158e]['format']],'%s',_0x49449e):_0x49449e;if(_0x4db433[_0x2d158e][_0xdb55('0x70')]){_0x3a0611[_0xdb55('0x63')](_0x49449e);}_0x4db433[_0x2d158e]['orderBy']&&_0x3a0611['order'](_0x49449e,_0x4db433[_0x2d158e]['orderBy']===_0xdb55('0x71')?![]:!![]);_0x3a0611[_0xdb55('0x64')](_0x49449e,_0x4db433[_0x2d158e][_0xdb55('0x72')]||_0x49449e);}if(_0x5249f1[_0xdb55('0x73')]){_0x5249f1[_0xdb55('0x73')]=JSON[_0xdb55('0x74')](_0x5249f1[_0xdb55('0x73')]);for(var _0x33e473=0x0;_0x33e473<_0x5249f1[_0xdb55('0x73')][_0xdb55('0x43')];_0x33e473+=0x1){if(_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x2d')]&&_['includes'](_0x47c81e,_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x2d')])&&_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x75')]&&_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x76')]&&_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x77')]){_0x3a0611[_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x2d')]](_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x76')],null,util['format'](_0xdb55('0x78'),_0x5249f1[_0xdb55('0x6b')],_0x5249f1['joins'][_0x33e473]['parentKey'],_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x76')],_0x5249f1[_0xdb55('0x73')][_0x33e473][_0xdb55('0x77')]));}}}if(_0x5249f1[_0xdb55('0x79')]){_0x5249f1[_0xdb55('0x79')]=JSON[_0xdb55('0x74')](_0x5249f1[_0xdb55('0x79')]);_0x3a0611[_0xdb55('0x3a')](_0x335125(_0x5249f1[_0xdb55('0x79')]['group']));}_0x3db97e=_0x3a0611[_0xdb55('0x7a')]();_0x3a0611[_0xdb55('0x19')](_0x256046);_0x3a0611['offset'](0x0);logger[_0xdb55('0x7b')](_0xdb55('0x7c'),_0x3a0611['toString']());return dbH['sequelize']['query'](_0x3a0611[_0xdb55('0x7d')](),{'type':dbH['sequelize'][_0xdb55('0x7e')][_0xdb55('0x7f')]});}})['then'](respondWithResult(_0x5003aa,null))[_0xdb55('0x42')](handleError(_0x5003aa,null));};function runReport(_0x29d7b4,_0x3848e9,_0x5316fe){var _0xf5355e=_0x3848e9[_0xdb55('0x27')];var _0x417828=0xa;var _0x10b3cd=[_0xdb55('0x80'),_0xdb55('0x51'),_0xdb55('0x81'),_0xdb55('0x82')];var _0x5f4453={'SUM':_0xdb55('0x52'),'COUNT':_0xdb55('0x53'),'COUNT DISTINCT':_0xdb55('0x54'),'MAX':_0xdb55('0x55'),'MIN':_0xdb55('0x56'),'AVG':_0xdb55('0x83'),'GROUP_CONCAT':_0xdb55('0x57'),'GROUP_CONCAT ASC':_0xdb55('0x58'),'GROUP_CONCAT DESC':_0xdb55('0x59')};var _0x3b3c0c={'SEC_TO_TIME':_0xdb55('0x84'),'DATE':_0xdb55('0x5a'),'HOUR':_0xdb55('0x5b'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xdb55('0x5c')};var _0x1bf95d=function(_0x4d4c26){return!_[_0xdb55('0x85')]([_0xdb55('0x5d'),_0xdb55('0x5e'),_0xdb55('0x5f'),'IS\x20NOT\x20EMPTY'],_0x4d4c26);};var _0xc8277=function(_0x284481){if(!_0x284481||!_0x284481['rules'][_0xdb55('0x43')]){return'';}for(var _0x3a8f4b='(',_0x3924b8=0x0;_0x3924b8<_0x284481[_0xdb55('0x61')]['length'];_0x3924b8+=0x1){_0x3924b8>0x0&&(_0x3a8f4b+='\x20'+_0x284481['operator']+'\x20');_0x3a8f4b+=_0x284481['rules'][_0x3924b8][_0xdb55('0x63')]?_0xc8277(_0x284481[_0xdb55('0x61')][_0x3924b8][_0xdb55('0x63')]):_0x284481[_0xdb55('0x61')][_0x3924b8]['field']+'\x20'+_0x284481[_0xdb55('0x61')][_0x3924b8][_0xdb55('0x65')]+(_0x1bf95d(_0x284481[_0xdb55('0x61')][_0x3924b8][_0xdb55('0x65')])?'\x20'+_0x284481['rules'][_0x3924b8][_0xdb55('0x86')]:'');}return _0x3a8f4b+')';};var _0x5dda95={'where':{'id':_0x29d7b4['id']}},_0x29ab0d,_0x58f60e,_0x5a041e,_0x69683d,_0x49b5bd;_0x5dda95=_[_0xdb55('0x3c')]({},_0x5dda95,_0x5316fe);return db[_0xdb55('0x3f')][_0xdb55('0x45')](_0x5dda95)[_0xdb55('0x21')](function(_0x25b5ec){if(_0x25b5ec){_0x29ab0d=_0x25b5ec;return _0x25b5ec[_0xdb55('0x87')]();}return null;})[_0xdb55('0x21')](function(_0x1d9f23){if(_0x1d9f23){if(!_0x1d9f23[_0xdb55('0x43')]){throw new db[(_0xdb55('0x66'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x58f60e=_0x1d9f23;return db[_0xdb55('0x68')][_0xdb55('0x41')]({'raw':!![]});}return null;})['then'](function(_0x63e6ae){if(_0x63e6ae){_0x5a041e=_['keyBy'](_0x63e6ae,'id');var _0x530714;var _0x206352=squel['select']();_0x206352[_0xdb55('0x6a')](_0x29ab0d[_0xdb55('0x6b')]);for(var _0x241a03=0x0;_0x241a03<_0x58f60e[_0xdb55('0x43')];_0x241a03+=0x1){_0x530714=_0x58f60e[_0x241a03][_0xdb55('0x6c')]?_0x5a041e[_0x58f60e[_0x241a03][_0xdb55('0x6c')]]['metric']:_0x58f60e[_0x241a03][_0xdb55('0x64')];_0x530714=_0x58f60e[_0x241a03][_0xdb55('0x6d')]?_[_0xdb55('0x6e')](_0x5f4453[_0x58f60e[_0x241a03]['function']],'%s',_0x530714):_0x530714;_0x530714=_0x58f60e[_0x241a03][_0xdb55('0x6f')]?_['replace'](_0x3b3c0c[_0x58f60e[_0x241a03]['format']],'%s',_0x530714):_0x530714;if(_0x58f60e[_0x241a03]['groupBy']){_0x206352['group'](_0x530714);}_0x58f60e[_0x241a03][_0xdb55('0x88')]&&_0x206352[_0xdb55('0x38')](_0x530714,_0x58f60e[_0x241a03][_0xdb55('0x88')]==='DESC'?![]:!![]);_0x206352[_0xdb55('0x64')](_0x530714,_0x58f60e[_0x241a03]['alias']||_0x530714);}if(_0x29ab0d[_0xdb55('0x73')]){_0x29ab0d[_0xdb55('0x73')]=JSON['parse'](_0x29ab0d['joins']);for(var _0x1f62e9=0x0;_0x1f62e9<_0x29ab0d[_0xdb55('0x73')]['length'];_0x1f62e9+=0x1){if(_0x29ab0d[_0xdb55('0x73')][_0x1f62e9]['type']&&_[_0xdb55('0x85')](_0x10b3cd,_0x29ab0d[_0xdb55('0x73')][_0x1f62e9][_0xdb55('0x2d')])&&_0x29ab0d[_0xdb55('0x73')][_0x1f62e9][_0xdb55('0x75')]&&_0x29ab0d[_0xdb55('0x73')][_0x1f62e9][_0xdb55('0x76')]&&_0x29ab0d[_0xdb55('0x73')][_0x1f62e9][_0xdb55('0x77')]){_0x206352[_0x29ab0d[_0xdb55('0x73')][_0x1f62e9]['type']](_0x29ab0d['joins'][_0x1f62e9][_0xdb55('0x76')],null,util[_0xdb55('0x6f')](_0xdb55('0x78'),_0x29ab0d[_0xdb55('0x6b')],_0x29ab0d['joins'][_0x1f62e9]['parentKey'],_0x29ab0d[_0xdb55('0x73')][_0x1f62e9][_0xdb55('0x76')],_0x29ab0d['joins'][_0x1f62e9]['foreignKey']));}}}if(_0x29ab0d['conditions']){_0x29ab0d[_0xdb55('0x79')]=JSON[_0xdb55('0x74')](_0x29ab0d['conditions']);_0x206352[_0xdb55('0x3a')](_0xc8277(_0x29ab0d[_0xdb55('0x79')]['group']));}_0x49b5bd=_0x206352[_0xdb55('0x7a')]();_0x206352[_0xdb55('0x19')](_0x417828);_0x206352[_0xdb55('0x17')](0x0);return;}})['then'](function(){if(_0x3848e9[_0xdb55('0x89')]===_0xdb55('0x8a')){return null;}var _0x20e523=_[_0xdb55('0x3c')](_0x3848e9,{'name':_0x3848e9[_0xdb55('0x8b')]||_0x3848e9[_0xdb55('0x27')]||_0x29ab0d[_0xdb55('0x27')],'basename':_0xf5355e,'savename':util['format'](_0xdb55('0x8c'),_0x3848e9['name']||_0x29ab0d[_0xdb55('0x27')],require(_0xdb55('0x8d'))['generate'](0x4),_0x3848e9['output']||'csv'),'reportId':_0x29ab0d['id'],'reportType':_0xdb55('0x8e')});return db[_0xdb55('0x8f')][_0xdb55('0x46')](_0x20e523,{'raw':!![]});})[_0xdb55('0x21')](function(_0x50a8e7){if(_0x29ab0d[_0xdb55('0x6b')]===_0xdb55('0x90')){_0x49b5bd[_0xdb55('0x3a')](_0x29ab0d[_0xdb55('0x6b')]+_0xdb55('0x91'),_0x3848e9[_0xdb55('0x92')],_0x3848e9['endDate']);}else{_0x49b5bd[_0xdb55('0x3a')](_0x29ab0d['table']+_0xdb55('0x93'),_0x3848e9[_0xdb55('0x92')],_0x3848e9['endDate']);}if(_0x50a8e7){logger[_0xdb55('0x94')]('Run\x20Query:',_0x49b5bd['toString']());require('child_process')['fork'](path[_0xdb55('0x80')](__dirname,_0xdb55('0x95'),_0x50a8e7['output']),[_0x50a8e7['id'],_0x49b5bd['toString'](),path[_0xdb55('0x80')](__dirname,_0xdb55('0x96'),_0x50a8e7[_0xdb55('0x97')]),_0xf5355e]);return _0x50a8e7;}else{var _0xa526af=squel[_0xdb55('0x98')]();_0xa526af['from']('('+_0x49b5bd[_0xdb55('0x7d')]()+')',_0xdb55('0x99'));_0xa526af[_0xdb55('0x64')](_0xdb55('0x9a'),_0xdb55('0x1a'));_0x49b5bd[_0xdb55('0x19')](_0x3848e9[_0xdb55('0x19')]||_0x417828);_0x49b5bd[_0xdb55('0x17')](_0x3848e9['offset']||0x0);return dbH[_0xdb55('0x9b')][_0xdb55('0x31')](_0xa526af[_0xdb55('0x7d')](),{'type':dbH[_0xdb55('0x9b')][_0xdb55('0x7e')][_0xdb55('0x7f')]})['then'](function(_0xd5fcb8){if(!_0xd5fcb8[_0xdb55('0x43')]){_0x69683d=0x0;}else{_0x69683d=_0xd5fcb8[0x0][_0xdb55('0x1a')]||0x0;}return dbH[_0xdb55('0x9b')]['query'](_0x49b5bd['toString'](),{'type':dbH[_0xdb55('0x9b')][_0xdb55('0x7e')][_0xdb55('0x7f')]});})[_0xdb55('0x21')](function(_0x5be3c7){return{'rows':_0x5be3c7||[],'count':_0x69683d};});}});}exports[_0xdb55('0x9c')]=function(_0x1e23fa,_0x26a20f){return runReport(_0x1e23fa[_0xdb55('0x50')],_0x1e23fa[_0xdb55('0x31')],_0x1e23fa['options'])[_0xdb55('0x21')](respondWithResult(_0x26a20f,null))[_0xdb55('0x42')](handleError(_0x26a20f,null));};exports['runReport']=runReport;exports[_0xdb55('0x31')]=function(_0x55f1fa,_0x30fe81){var _0x361fda=0xa;var _0x439f5d=[_0xdb55('0x80'),_0xdb55('0x51'),_0xdb55('0x81'),_0xdb55('0x82')];var _0x11494f={'SUM':_0xdb55('0x52'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0xdb55('0x54'),'MAX':_0xdb55('0x55'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0xdb55('0x57'),'GROUP_CONCAT ASC':_0xdb55('0x58'),'GROUP_CONCAT DESC':_0xdb55('0x59')};var _0x363c7e={'SEC_TO_TIME':_0xdb55('0x84'),'DATE':_0xdb55('0x5a'),'HOUR':'HOUR(%s)','ROUND':_0xdb55('0x9d'),'UNIX_TIMESTAMP':_0xdb55('0x5c')};var _0x4765ea=function(_0x4c3f3b){return!_['includes']([_0xdb55('0x5d'),_0xdb55('0x5e'),_0xdb55('0x5f'),_0xdb55('0x60')],_0x4c3f3b);};var _0x5405de=function(_0x1b3dd9){if(!_0x1b3dd9||!_0x1b3dd9['rules'][_0xdb55('0x43')]){return'';}for(var _0x430a66='(',_0x4ae42d=0x0;_0x4ae42d<_0x1b3dd9[_0xdb55('0x61')][_0xdb55('0x43')];_0x4ae42d+=0x1){_0x4ae42d>0x0&&(_0x430a66+='\x20'+_0x1b3dd9['operator']+'\x20');_0x430a66+=_0x1b3dd9[_0xdb55('0x61')][_0x4ae42d][_0xdb55('0x63')]?_0x5405de(_0x1b3dd9[_0xdb55('0x61')][_0x4ae42d]['group']):_0x1b3dd9[_0xdb55('0x61')][_0x4ae42d]['field']+'\x20'+_0x1b3dd9['rules'][_0x4ae42d][_0xdb55('0x65')]+(_0x4765ea(_0x1b3dd9[_0xdb55('0x61')][_0x4ae42d][_0xdb55('0x65')])?'\x20'+_0x1b3dd9[_0xdb55('0x61')][_0x4ae42d][_0xdb55('0x86')]:'');}return _0x430a66+')';};var _0x2d5d7b={'where':{'id':_0x55f1fa[_0xdb55('0x50')]['id']}},_0x468dc4,_0x18474b,_0x17ba8c,_0x3b22f4,_0x191b56;_0x2d5d7b=_[_0xdb55('0x3c')]({},_0x2d5d7b,_0x55f1fa[_0xdb55('0x3e')]);return db[_0xdb55('0x3f')][_0xdb55('0x45')](_0x2d5d7b)['then'](function(_0x2ce5ab){if(_0x2ce5ab){_0x468dc4=_0x2ce5ab;return _0x2ce5ab[_0xdb55('0x87')]();}return null;})[_0xdb55('0x21')](function(_0x5d3991){if(_0x5d3991){if(!_0x5d3991[_0xdb55('0x43')]){throw new db['Sequelize'][(_0xdb55('0x67'))](_0xdb55('0x9e'),0x193);}_0x18474b=_0x5d3991;return db['AnalyticMetric'][_0xdb55('0x41')]({'raw':!![]});}return null;})[_0xdb55('0x21')](function(_0x4c2adf){if(_0x4c2adf){_0x17ba8c=_['keyBy'](_0x4c2adf,'id');var _0x2b0ba2;var _0x43e85f=squel[_0xdb55('0x98')]();_0x43e85f[_0xdb55('0x6a')](_0x468dc4[_0xdb55('0x6b')]);for(var _0x141351=0x0;_0x141351<_0x18474b[_0xdb55('0x43')];_0x141351+=0x1){_0x2b0ba2=_0x18474b[_0x141351]['MetricId']?_0x17ba8c[_0x18474b[_0x141351][_0xdb55('0x6c')]][_0xdb55('0x9f')]:_0x18474b[_0x141351]['field'];_0x2b0ba2=_0x18474b[_0x141351][_0xdb55('0x6d')]?_[_0xdb55('0x6e')](_0x11494f[_0x18474b[_0x141351][_0xdb55('0x6d')]],'%s',_0x2b0ba2):_0x2b0ba2;_0x2b0ba2=_0x18474b[_0x141351]['format']?_[_0xdb55('0x6e')](_0x363c7e[_0x18474b[_0x141351]['format']],'%s',_0x2b0ba2):_0x2b0ba2;if(_0x18474b[_0x141351][_0xdb55('0x70')]){_0x43e85f[_0xdb55('0x63')](_0x2b0ba2);}_0x18474b[_0x141351][_0xdb55('0x88')]&&_0x43e85f[_0xdb55('0x38')](_0x2b0ba2,_0x18474b[_0x141351][_0xdb55('0x88')]===_0xdb55('0x71')?![]:!![]);_0x43e85f[_0xdb55('0x64')](_0x2b0ba2,_0x18474b[_0x141351]['alias']||_0x2b0ba2);}if(_0x468dc4['joins']){_0x468dc4[_0xdb55('0x73')]=JSON[_0xdb55('0x74')](_0x468dc4[_0xdb55('0x73')]);for(var _0x355d4e=0x0;_0x355d4e<_0x468dc4[_0xdb55('0x73')][_0xdb55('0x43')];_0x355d4e+=0x1){if(_0x468dc4[_0xdb55('0x73')][_0x355d4e][_0xdb55('0x2d')]&&_[_0xdb55('0x85')](_0x439f5d,_0x468dc4['joins'][_0x355d4e]['type'])&&_0x468dc4[_0xdb55('0x73')][_0x355d4e]['parentKey']&&_0x468dc4['joins'][_0x355d4e][_0xdb55('0x76')]&&_0x468dc4['joins'][_0x355d4e][_0xdb55('0x77')]){_0x43e85f[_0x468dc4[_0xdb55('0x73')][_0x355d4e][_0xdb55('0x2d')]](_0x468dc4['joins'][_0x355d4e][_0xdb55('0x76')],null,util['format'](_0xdb55('0x78'),_0x468dc4['table'],_0x468dc4['joins'][_0x355d4e][_0xdb55('0x75')],_0x468dc4[_0xdb55('0x73')][_0x355d4e][_0xdb55('0x76')],_0x468dc4[_0xdb55('0x73')][_0x355d4e][_0xdb55('0x77')]));}}}if(_0x468dc4[_0xdb55('0x79')]){_0x468dc4[_0xdb55('0x79')]=JSON[_0xdb55('0x74')](_0x468dc4[_0xdb55('0x79')]);_0x43e85f[_0xdb55('0x3a')](_0x5405de(_0x468dc4['conditions'][_0xdb55('0x63')]));}_0x191b56=_0x43e85f['clone']();_0x43e85f['limit'](_0x361fda);_0x43e85f[_0xdb55('0x17')](0x0);logger[_0xdb55('0x7b')](_0xdb55('0x7c'),_0x43e85f[_0xdb55('0x7d')]());return dbH[_0xdb55('0x9b')][_0xdb55('0x31')](_0x43e85f[_0xdb55('0x7d')](),{'type':dbH[_0xdb55('0x9b')][_0xdb55('0x7e')][_0xdb55('0x7f')]});}})['then'](function(){return{'sql':_0x191b56[_0xdb55('0x7d')]()};})[_0xdb55('0x21')](respondWithResult(_0x30fe81,null))[_0xdb55('0x42')](handleError(_0x30fe81,null));};