a146fdb826894ebfdfef6a08ffd6546b73aefe14
[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 _0x6731=['condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','order','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','right_join','keyBy','output','web','fullPath','%s-%s.%s','generate','custom','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','savename','countTable','COUNT(*)','runReport','SUM(%s)','GROUP_CONCAT(%s)','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','get','UserProfileResource','destroy','sendStatus','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','pick','where','type','options','includeAll','include','catch','show','params','merge','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','CustomReports','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','preview','join','cross_join','COUNT(%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)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','operator','rules','group','field'];(function(_0xd692fe,_0x377eaa){var _0x5e6f89=function(_0x53ae57){while(--_0x53ae57){_0xd692fe['push'](_0xd692fe['shift']());}};_0x5e6f89(++_0x377eaa);}(_0x6731,0x180));var _0x1673=function(_0x35d775,_0x25431e){_0x35d775=_0x35d775-0x0;var _0x59384d=_0x6731[_0x35d775];return _0x59384d;};'use strict';var emlformat=require(_0x1673('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1673('0x1'));var jsonpatch=require(_0x1673('0x2'));var rp=require(_0x1673('0x3'));var moment=require(_0x1673('0x4'));var BPromise=require(_0x1673('0x5'));var Mustache=require(_0x1673('0x6'));var util=require(_0x1673('0x7'));var path=require(_0x1673('0x8'));var sox=require(_0x1673('0x9'));var csv=require(_0x1673('0xa'));var ejs=require(_0x1673('0xb'));var fs=require('fs');var fs_extra=require(_0x1673('0xc'));var _=require(_0x1673('0xd'));var squel=require(_0x1673('0xe'));var crypto=require(_0x1673('0xf'));var jsforce=require(_0x1673('0x10'));var deskjs=require(_0x1673('0x11'));var toCsv=require(_0x1673('0xa'));var querystring=require(_0x1673('0x12'));var Papa=require(_0x1673('0x13'));var Redis=require(_0x1673('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1673('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1673('0x16'))('api');var utils=require(_0x1673('0x17'));var config=require(_0x1673('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x1673('0x19'))['db'];var dbH=require(_0x1673('0x19'))['dbH'];function respondWithStatusCode(_0x3413f7,_0x69c0b7){_0x69c0b7=_0x69c0b7||0xcc;return function(_0x3996d0){if(_0x3996d0){return _0x3413f7['sendStatus'](_0x69c0b7);}return _0x3413f7[_0x1673('0x1a')](_0x69c0b7)[_0x1673('0x1b')]();};}function respondWithResult(_0x16d4d0,_0x19da56){_0x19da56=_0x19da56||0xc8;return function(_0x39ccfe){if(_0x39ccfe){return _0x16d4d0[_0x1673('0x1a')](_0x19da56)[_0x1673('0x1c')](_0x39ccfe);}};}function respondWithFilteredResult(_0x4ab8d2,_0x11b01a){return function(_0x5bbdff){if(_0x5bbdff){var _0x93cd7=typeof _0x11b01a[_0x1673('0x1d')]==='undefined'&&typeof _0x11b01a['limit']===_0x1673('0x1e');var _0x1654d7=_0x5bbdff[_0x1673('0x1f')];var _0x5542d9=_0x93cd7?0x0:_0x11b01a['offset'];var _0x4da99c=_0x93cd7?_0x5bbdff[_0x1673('0x1f')]:_0x11b01a['offset']+_0x11b01a[_0x1673('0x20')];var _0x4d8665;if(_0x4da99c>=_0x1654d7){_0x4da99c=_0x1654d7;_0x4d8665=0xc8;}else{_0x4d8665=0xce;}_0x4ab8d2[_0x1673('0x1a')](_0x4d8665);return _0x4ab8d2[_0x1673('0x21')](_0x1673('0x22'),_0x5542d9+'-'+_0x4da99c+'/'+_0x1654d7)[_0x1673('0x1c')](_0x5bbdff);}return null;};}function patchUpdates(_0x27f8d7){return function(_0x3abe39){try{jsonpatch['apply'](_0x3abe39,_0x27f8d7,!![]);}catch(_0x3ee9c5){return BPromise[_0x1673('0x23')](_0x3ee9c5);}return _0x3abe39[_0x1673('0x24')]();};}function saveUpdates(_0x463a29,_0x5bfeb9){return function(_0x4a51e2){if(_0x4a51e2){return _0x4a51e2[_0x1673('0x25')](_0x463a29)['then'](function(_0x27b68a){return _0x27b68a;});}return null;};}function removeEntity(_0x4e7f4b,_0x58c83){return function(_0x1e41bc){if(_0x1e41bc){return _0x1e41bc['destroy']()[_0x1673('0x26')](function(){var _0xa88930=_0x1e41bc[_0x1673('0x27')]({'plain':!![]});var _0x5a062d='CustomReports';return db[_0x1673('0x28')][_0x1673('0x29')]({'where':{'type':_0x5a062d,'resourceId':_0xa88930['id']}})['then'](function(){return _0x1e41bc;});})[_0x1673('0x26')](function(){_0x4e7f4b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5b246b,_0x2707a3){return function(_0x2c7bc9){if(!_0x2c7bc9){_0x5b246b[_0x1673('0x2a')](0x194);}return _0x2c7bc9;};}function handleError(_0x1fadd0,_0x929a8a){_0x929a8a=_0x929a8a||0x1f4;return function(_0x498672){logger[_0x1673('0x2b')](_0x498672[_0x1673('0x2c')]);if(_0x498672['name']){delete _0x498672[_0x1673('0x2d')];}_0x1fadd0['status'](_0x929a8a)[_0x1673('0x2e')](_0x498672);};}exports[_0x1673('0x2f')]=function(_0x2d0db3,_0x4b7cb2){var _0x299019={},_0x38af7c={},_0x24794e={'count':0x0,'rows':[]};var _0x3fa40c=_[_0x1673('0x30')](db[_0x1673('0x31')][_0x1673('0x32')],function(_0x56da3b){return{'name':_0x56da3b[_0x1673('0x33')],'type':_0x56da3b['type'][_0x1673('0x34')]};});_0x38af7c[_0x1673('0x35')]=_[_0x1673('0x30')](_0x3fa40c,_0x1673('0x2d'));_0x38af7c[_0x1673('0x36')]=_[_0x1673('0x37')](_0x2d0db3[_0x1673('0x36')]);_0x38af7c[_0x1673('0x38')]=_['intersection'](_0x38af7c['model'],_0x38af7c[_0x1673('0x36')]);_0x299019[_0x1673('0x39')]=_[_0x1673('0x3a')](_0x38af7c[_0x1673('0x35')],qs[_0x1673('0x3b')](_0x2d0db3[_0x1673('0x36')][_0x1673('0x3b')]));_0x299019[_0x1673('0x39')]=_0x299019['attributes'][_0x1673('0x3c')]?_0x299019['attributes']:_0x38af7c['model'];if(!_0x2d0db3[_0x1673('0x36')][_0x1673('0x3d')](_0x1673('0x3e'))){_0x299019[_0x1673('0x20')]=qs[_0x1673('0x20')](_0x2d0db3['query']['limit']);_0x299019['offset']=qs[_0x1673('0x1d')](_0x2d0db3[_0x1673('0x36')][_0x1673('0x1d')]);}_0x299019['order']=qs['sort'](_0x2d0db3['query']['sort']);_0x299019['where']=qs[_0x1673('0x38')](_[_0x1673('0x3f')](_0x2d0db3['query'],_0x38af7c[_0x1673('0x38')]),_0x3fa40c);if(_0x2d0db3[_0x1673('0x36')]['filter']){_0x299019[_0x1673('0x40')]=_['merge'](_0x299019[_0x1673('0x40')],{'$or':_[_0x1673('0x30')](_0x3fa40c,function(_0x1a7cd1){if(_0x1a7cd1[_0x1673('0x41')]!=='VIRTUAL'){var _0x37413f={};_0x37413f[_0x1a7cd1[_0x1673('0x2d')]]={'$like':'%'+_0x2d0db3[_0x1673('0x36')]['filter']+'%'};return _0x37413f;}})});}_0x299019=_['merge']({},_0x299019,_0x2d0db3[_0x1673('0x42')]);var _0x20a506={'where':_0x299019[_0x1673('0x40')]};return db[_0x1673('0x31')][_0x1673('0x1f')](_0x20a506)['then'](function(_0x2a9be5){_0x24794e[_0x1673('0x1f')]=_0x2a9be5;if(_0x2d0db3[_0x1673('0x36')][_0x1673('0x43')]){_0x299019[_0x1673('0x44')]=[{'all':!![]}];}return db[_0x1673('0x31')]['findAll'](_0x299019);})[_0x1673('0x26')](function(_0xf7ade7){_0x24794e['rows']=_0xf7ade7;return _0x24794e;})[_0x1673('0x26')](respondWithFilteredResult(_0x4b7cb2,_0x299019))[_0x1673('0x45')](handleError(_0x4b7cb2,null));};exports[_0x1673('0x46')]=function(_0x9f696d,_0x10b033){var _0x2cce33={'raw':![],'where':{'id':_0x9f696d[_0x1673('0x47')]['id']}},_0x38258f={};_0x38258f[_0x1673('0x35')]=_[_0x1673('0x37')](db[_0x1673('0x31')][_0x1673('0x32')]);_0x38258f[_0x1673('0x36')]=_['keys'](_0x9f696d[_0x1673('0x36')]);_0x38258f[_0x1673('0x38')]=_[_0x1673('0x3a')](_0x38258f[_0x1673('0x35')],_0x38258f['query']);_0x2cce33[_0x1673('0x39')]=_[_0x1673('0x3a')](_0x38258f[_0x1673('0x35')],qs[_0x1673('0x3b')](_0x9f696d['query']['fields']));_0x2cce33[_0x1673('0x39')]=_0x2cce33[_0x1673('0x39')][_0x1673('0x3c')]?_0x2cce33[_0x1673('0x39')]:_0x38258f['model'];if(_0x9f696d[_0x1673('0x36')]['includeAll']){_0x2cce33[_0x1673('0x44')]=[{'all':!![]}];}_0x2cce33=_[_0x1673('0x48')]({},_0x2cce33,_0x9f696d[_0x1673('0x42')]);return db[_0x1673('0x31')][_0x1673('0x49')](_0x2cce33)[_0x1673('0x26')](handleEntityNotFound(_0x10b033,null))[_0x1673('0x26')](respondWithResult(_0x10b033,null))[_0x1673('0x45')](handleError(_0x10b033,null));};exports[_0x1673('0x4a')]=function(_0x20ce25,_0x2b85d6){return db[_0x1673('0x31')][_0x1673('0x4a')](_0x20ce25['body'],{})[_0x1673('0x26')](function(_0x1369ef){var _0x4c529d=_0x20ce25[_0x1673('0x4b')]['get']({'plain':!![]});if(!_0x4c529d)throw new Error(_0x1673('0x4c'));if(_0x4c529d[_0x1673('0x4d')]===_0x1673('0x4b')){var _0x724454=_0x1369ef[_0x1673('0x27')]({'plain':!![]});var _0x20a074=_0x1673('0x4e');return db[_0x1673('0x4f')][_0x1673('0x49')]({'where':{'name':_0x20a074,'userProfileId':_0x4c529d[_0x1673('0x50')]},'raw':!![]})[_0x1673('0x26')](function(_0x36fa88){if(_0x36fa88&&_0x36fa88[_0x1673('0x51')]===0x0){return db[_0x1673('0x28')][_0x1673('0x4a')]({'name':_0x724454[_0x1673('0x2d')],'resourceId':_0x724454['id'],'type':_0x1673('0x52'),'sectionId':_0x36fa88['id']},{})[_0x1673('0x26')](function(){return _0x1369ef;});}else{return _0x1369ef;}})[_0x1673('0x45')](function(_0x52bffd){logger[_0x1673('0x2b')](_0x1673('0x53'),_0x52bffd);throw _0x52bffd;});}return _0x1369ef;})[_0x1673('0x26')](respondWithResult(_0x2b85d6,0xc9))[_0x1673('0x45')](handleError(_0x2b85d6,null));};exports[_0x1673('0x25')]=function(_0x43d03e,_0x4872e6){if(_0x43d03e[_0x1673('0x54')]['id']){delete _0x43d03e[_0x1673('0x54')]['id'];}return db['AnalyticCustomReport'][_0x1673('0x49')]({'where':{'id':_0x43d03e[_0x1673('0x47')]['id']}})[_0x1673('0x26')](handleEntityNotFound(_0x4872e6,null))[_0x1673('0x26')](saveUpdates(_0x43d03e[_0x1673('0x54')],null))[_0x1673('0x26')](respondWithResult(_0x4872e6,null))['catch'](handleError(_0x4872e6,null));};exports[_0x1673('0x29')]=function(_0xf87732,_0x326496){return db[_0x1673('0x31')][_0x1673('0x49')]({'where':{'id':_0xf87732['params']['id']}})[_0x1673('0x26')](handleEntityNotFound(_0x326496,null))[_0x1673('0x26')](removeEntity(_0x326496,null))['catch'](handleError(_0x326496,null));};exports[_0x1673('0x55')]=function(_0x5739dd,_0x2f0930){var _0x1fdaf3=0xa;var _0x33ce8d=[_0x1673('0x56'),'left_join','right_join',_0x1673('0x57')];var _0x5fa1c3={'SUM':'SUM(%s)','COUNT':_0x1673('0x58'),'COUNT DISTINCT':_0x1673('0x59'),'MAX':_0x1673('0x5a'),'MIN':_0x1673('0x5b'),'AVG':_0x1673('0x5c'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x1673('0x5d'),'GROUP_CONCAT DESC':_0x1673('0x5e')};var _0x3f8189={'SEC_TO_TIME':_0x1673('0x5f'),'DATE':_0x1673('0x60'),'HOUR':_0x1673('0x61'),'ROUND':_0x1673('0x62'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x45912a=function(_0x5376c6){return!_[_0x1673('0x63')]([_0x1673('0x64'),_0x1673('0x65'),_0x1673('0x66'),_0x1673('0x67')],_0x5376c6);};var _0x52f757=function(_0x1b6172){if(!_0x1b6172||!_0x1b6172['rules'][_0x1673('0x3c')]){return'';}for(var _0x2b8592='(',_0x745b04=0x0;_0x745b04<_0x1b6172['rules'][_0x1673('0x3c')];_0x745b04+=0x1){_0x745b04>0x0&&(_0x2b8592+='\x20'+_0x1b6172[_0x1673('0x68')]+'\x20');_0x2b8592+=_0x1b6172[_0x1673('0x69')][_0x745b04][_0x1673('0x6a')]?_0x52f757(_0x1b6172[_0x1673('0x69')][_0x745b04][_0x1673('0x6a')]):_0x1b6172[_0x1673('0x69')][_0x745b04][_0x1673('0x6b')]+'\x20'+_0x1b6172['rules'][_0x745b04][_0x1673('0x6c')]+(_0x45912a(_0x1b6172['rules'][_0x745b04][_0x1673('0x6c')])?'\x20'+_0x1b6172['rules'][_0x745b04][_0x1673('0x6d')]:'');}return _0x2b8592+')';};var _0x5a57cb={'where':{'id':_0x5739dd['params']['id']}},_0x123994,_0x33069f,_0x1ef1d1,_0x518b1a,_0x51df84;_0x5a57cb=_['merge']({},_0x5a57cb,_0x5739dd[_0x1673('0x42')]);return db[_0x1673('0x31')][_0x1673('0x49')](_0x5a57cb)[_0x1673('0x26')](function(_0x31635d){if(_0x31635d){_0x123994=_0x31635d;return _0x31635d[_0x1673('0x6e')]();}return null;})[_0x1673('0x26')](function(_0x16e448){if(_0x16e448){if(!_0x16e448[_0x1673('0x3c')]){throw new db['Sequelize'][(_0x1673('0x6f'))](_0x1673('0x70'),0x193);}_0x33069f=_0x16e448;return db[_0x1673('0x71')][_0x1673('0x72')]({'raw':!![]});}return null;})[_0x1673('0x26')](function(_0x45de84){if(_0x45de84){_0x1ef1d1=_['keyBy'](_0x45de84,'id');var _0x129fb2;var _0xae9f88=squel[_0x1673('0x73')]();_0xae9f88[_0x1673('0x74')](_0x123994[_0x1673('0x75')]);for(var _0x254d76=0x0;_0x254d76<_0x33069f[_0x1673('0x3c')];_0x254d76+=0x1){_0x129fb2=_0x33069f[_0x254d76]['MetricId']?_0x1ef1d1[_0x33069f[_0x254d76][_0x1673('0x76')]][_0x1673('0x77')]:_0x33069f[_0x254d76][_0x1673('0x6b')];_0x129fb2=_0x33069f[_0x254d76][_0x1673('0x78')]?_[_0x1673('0x79')](_0x5fa1c3[_0x33069f[_0x254d76][_0x1673('0x78')]],'%s',_0x129fb2):_0x129fb2;_0x129fb2=_0x33069f[_0x254d76][_0x1673('0x7a')]?_['replace'](_0x3f8189[_0x33069f[_0x254d76][_0x1673('0x7a')]],'%s',_0x129fb2):_0x129fb2;if(_0x33069f[_0x254d76][_0x1673('0x7b')]){_0xae9f88[_0x1673('0x6a')](_0x129fb2);}_0x33069f[_0x254d76][_0x1673('0x7c')]&&_0xae9f88[_0x1673('0x7d')](_0x129fb2,_0x33069f[_0x254d76]['orderBy']===_0x1673('0x7e')?![]:!![]);_0xae9f88[_0x1673('0x6b')](_0x129fb2,_0x33069f[_0x254d76][_0x1673('0x7f')]||_0x129fb2);}if(_0x123994[_0x1673('0x80')]){_0x123994[_0x1673('0x80')]=JSON[_0x1673('0x81')](_0x123994[_0x1673('0x80')]);for(var _0x5f59bd=0x0;_0x5f59bd<_0x123994['joins']['length'];_0x5f59bd+=0x1){if(_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x41')]&&_[_0x1673('0x63')](_0x33ce8d,_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x41')])&&_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x82')]&&_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x83')]&&_0x123994['joins'][_0x5f59bd][_0x1673('0x84')]){_0xae9f88[_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x41')]](_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x83')],null,util[_0x1673('0x7a')]('%s.%s\x20=\x20%s.%s',_0x123994['table'],_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x82')],_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x83')],_0x123994[_0x1673('0x80')][_0x5f59bd][_0x1673('0x84')]));}}}if(_0x123994[_0x1673('0x85')]){_0x123994[_0x1673('0x85')]=JSON[_0x1673('0x81')](_0x123994[_0x1673('0x85')]);_0xae9f88['where'](_0x52f757(_0x123994['conditions']['group']));}_0x51df84=_0xae9f88[_0x1673('0x86')]();_0xae9f88[_0x1673('0x20')](_0x1fdaf3);_0xae9f88[_0x1673('0x1d')](0x0);logger[_0x1673('0x87')](_0x1673('0x88'),_0xae9f88[_0x1673('0x89')]());return dbH[_0x1673('0x8a')][_0x1673('0x36')](_0xae9f88[_0x1673('0x89')](),{'type':dbH['sequelize'][_0x1673('0x8b')][_0x1673('0x8c')]});}})[_0x1673('0x26')](respondWithResult(_0x2f0930,null))[_0x1673('0x45')](handleError(_0x2f0930,null));};function runReport(_0x3c39f9,_0xa3043a,_0x511b16){var _0x387aef=_0xa3043a['name'];var _0x5ae7fb=0xa;var _0xaf022b=[_0x1673('0x56'),_0x1673('0x8d'),_0x1673('0x8e'),'cross_join'];var _0x5bb73c={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x1673('0x59'),'MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':_0x1673('0x5c'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x1673('0x5d'),'GROUP_CONCAT DESC':_0x1673('0x5e')};var _0x1aab28={'SEC_TO_TIME':_0x1673('0x5f'),'DATE':_0x1673('0x60'),'HOUR':_0x1673('0x61'),'ROUND':_0x1673('0x62'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x2d1166=function(_0xffd2be){return!_[_0x1673('0x63')]([_0x1673('0x64'),'IS\x20NOT\x20NULL',_0x1673('0x66'),_0x1673('0x67')],_0xffd2be);};var _0x52833b=function(_0xd0a6d){if(!_0xd0a6d||!_0xd0a6d[_0x1673('0x69')][_0x1673('0x3c')]){return'';}for(var _0x4139e7='(',_0x5df65e=0x0;_0x5df65e<_0xd0a6d[_0x1673('0x69')][_0x1673('0x3c')];_0x5df65e+=0x1){_0x5df65e>0x0&&(_0x4139e7+='\x20'+_0xd0a6d['operator']+'\x20');_0x4139e7+=_0xd0a6d[_0x1673('0x69')][_0x5df65e]['group']?_0x52833b(_0xd0a6d[_0x1673('0x69')][_0x5df65e][_0x1673('0x6a')]):_0xd0a6d[_0x1673('0x69')][_0x5df65e]['field']+'\x20'+_0xd0a6d[_0x1673('0x69')][_0x5df65e][_0x1673('0x6c')]+(_0x2d1166(_0xd0a6d[_0x1673('0x69')][_0x5df65e][_0x1673('0x6c')])?'\x20'+_0xd0a6d['rules'][_0x5df65e]['value']:'');}return _0x4139e7+')';};var _0xe2af4f={'where':{'id':_0x3c39f9['id']}},_0x4f15ec,_0x5322ec,_0x58b1d8,_0x32eba2,_0x3e0b68;_0xe2af4f=_[_0x1673('0x48')]({},_0xe2af4f,_0x511b16);return db[_0x1673('0x31')]['find'](_0xe2af4f)['then'](function(_0x5ebb9e){if(_0x5ebb9e){_0x4f15ec=_0x5ebb9e;return _0x5ebb9e['getFields']();}return null;})['then'](function(_0x3cf681){if(_0x3cf681){if(!_0x3cf681[_0x1673('0x3c')]){throw new db['Sequelize']['ValidationErrorItem'](_0x1673('0x70'),0x193);}_0x5322ec=_0x3cf681;return db[_0x1673('0x71')][_0x1673('0x72')]({'raw':!![]});}return null;})['then'](function(_0x20b228){if(_0x20b228){_0x58b1d8=_[_0x1673('0x8f')](_0x20b228,'id');var _0x5d98f1;var _0x5851b6=squel[_0x1673('0x73')]();_0x5851b6['from'](_0x4f15ec[_0x1673('0x75')]);for(var _0x4b861a=0x0;_0x4b861a<_0x5322ec[_0x1673('0x3c')];_0x4b861a+=0x1){_0x5d98f1=_0x5322ec[_0x4b861a][_0x1673('0x76')]?_0x58b1d8[_0x5322ec[_0x4b861a]['MetricId']][_0x1673('0x77')]:_0x5322ec[_0x4b861a][_0x1673('0x6b')];_0x5d98f1=_0x5322ec[_0x4b861a][_0x1673('0x78')]?_['replace'](_0x5bb73c[_0x5322ec[_0x4b861a][_0x1673('0x78')]],'%s',_0x5d98f1):_0x5d98f1;_0x5d98f1=_0x5322ec[_0x4b861a]['format']?_[_0x1673('0x79')](_0x1aab28[_0x5322ec[_0x4b861a][_0x1673('0x7a')]],'%s',_0x5d98f1):_0x5d98f1;if(_0x5322ec[_0x4b861a][_0x1673('0x7b')]){_0x5851b6[_0x1673('0x6a')](_0x5d98f1);}_0x5322ec[_0x4b861a][_0x1673('0x7c')]&&_0x5851b6[_0x1673('0x7d')](_0x5d98f1,_0x5322ec[_0x4b861a][_0x1673('0x7c')]==='DESC'?![]:!![]);_0x5851b6[_0x1673('0x6b')](_0x5d98f1,_0x5322ec[_0x4b861a][_0x1673('0x7f')]||_0x5d98f1);}if(_0x4f15ec[_0x1673('0x80')]){_0x4f15ec[_0x1673('0x80')]=JSON[_0x1673('0x81')](_0x4f15ec['joins']);for(var _0x472db2=0x0;_0x472db2<_0x4f15ec[_0x1673('0x80')]['length'];_0x472db2+=0x1){if(_0x4f15ec['joins'][_0x472db2][_0x1673('0x41')]&&_[_0x1673('0x63')](_0xaf022b,_0x4f15ec[_0x1673('0x80')][_0x472db2][_0x1673('0x41')])&&_0x4f15ec[_0x1673('0x80')][_0x472db2][_0x1673('0x82')]&&_0x4f15ec[_0x1673('0x80')][_0x472db2][_0x1673('0x83')]&&_0x4f15ec['joins'][_0x472db2][_0x1673('0x84')]){_0x5851b6[_0x4f15ec[_0x1673('0x80')][_0x472db2][_0x1673('0x41')]](_0x4f15ec[_0x1673('0x80')][_0x472db2][_0x1673('0x83')],null,util[_0x1673('0x7a')]('%s.%s\x20=\x20%s.%s',_0x4f15ec[_0x1673('0x75')],_0x4f15ec['joins'][_0x472db2][_0x1673('0x82')],_0x4f15ec[_0x1673('0x80')][_0x472db2][_0x1673('0x83')],_0x4f15ec[_0x1673('0x80')][_0x472db2][_0x1673('0x84')]));}}}if(_0x4f15ec[_0x1673('0x85')]){_0x4f15ec[_0x1673('0x85')]=JSON[_0x1673('0x81')](_0x4f15ec['conditions']);_0x5851b6['where'](_0x52833b(_0x4f15ec[_0x1673('0x85')][_0x1673('0x6a')]));}_0x3e0b68=_0x5851b6['clone']();_0x5851b6[_0x1673('0x20')](_0x5ae7fb);_0x5851b6['offset'](0x0);return;}})[_0x1673('0x26')](function(){if(_0xa3043a[_0x1673('0x90')]===_0x1673('0x91')){return null;}var _0x121bd1=_[_0x1673('0x48')](_0xa3043a,{'name':_0xa3043a[_0x1673('0x92')]||_0xa3043a[_0x1673('0x2d')]||_0x4f15ec[_0x1673('0x2d')],'basename':_0x387aef,'savename':util['format'](_0x1673('0x93'),_0xa3043a[_0x1673('0x2d')]||_0x4f15ec['name'],require('randomstring')[_0x1673('0x94')](0x4),_0xa3043a[_0x1673('0x90')]||'csv'),'reportId':_0x4f15ec['id'],'reportType':_0x1673('0x95')});return db['AnalyticExtractedReport'][_0x1673('0x4a')](_0x121bd1,{'raw':!![]});})['then'](function(_0x24e347){if(_0x4f15ec[_0x1673('0x75')]===_0x1673('0x96')){_0x3e0b68[_0x1673('0x40')](_0x4f15ec[_0x1673('0x75')]+_0x1673('0x97'),_0xa3043a[_0x1673('0x98')],_0xa3043a['endDate']);}else{_0x3e0b68[_0x1673('0x40')](_0x4f15ec['table']+_0x1673('0x99'),_0xa3043a[_0x1673('0x98')],_0xa3043a['endDate']);}if(_0x24e347){logger[_0x1673('0x9a')](_0x1673('0x9b'),_0x3e0b68[_0x1673('0x89')]());require(_0x1673('0x9c'))[_0x1673('0x9d')](path[_0x1673('0x56')](__dirname,'../../components/export/',_0x24e347['output']),[_0x24e347['id'],_0x3e0b68['toString'](),path[_0x1673('0x56')](__dirname,'../../files/reports',_0x24e347[_0x1673('0x9e')]),_0x387aef]);return _0x24e347;}else{var _0x42fb92=squel[_0x1673('0x73')]();_0x42fb92[_0x1673('0x74')]('('+_0x3e0b68[_0x1673('0x89')]()+')',_0x1673('0x9f'));_0x42fb92[_0x1673('0x6b')](_0x1673('0xa0'),_0x1673('0x1f'));_0x3e0b68[_0x1673('0x20')](_0xa3043a[_0x1673('0x20')]||_0x5ae7fb);_0x3e0b68[_0x1673('0x1d')](_0xa3043a[_0x1673('0x1d')]||0x0);return dbH[_0x1673('0x8a')][_0x1673('0x36')](_0x42fb92[_0x1673('0x89')](),{'type':dbH[_0x1673('0x8a')][_0x1673('0x8b')][_0x1673('0x8c')]})[_0x1673('0x26')](function(_0x4e09d2){if(!_0x4e09d2[_0x1673('0x3c')]){_0x32eba2=0x0;}else{_0x32eba2=_0x4e09d2[0x0][_0x1673('0x1f')]||0x0;}return dbH['sequelize']['query'](_0x3e0b68['toString'](),{'type':dbH['sequelize'][_0x1673('0x8b')][_0x1673('0x8c')]});})[_0x1673('0x26')](function(_0x4f8047){return{'rows':_0x4f8047||[],'count':_0x32eba2};});}});}exports['run']=function(_0x445d97,_0x26efe9){return runReport(_0x445d97[_0x1673('0x47')],_0x445d97[_0x1673('0x36')],_0x445d97[_0x1673('0x42')])[_0x1673('0x26')](respondWithResult(_0x26efe9,null))[_0x1673('0x45')](handleError(_0x26efe9,null));};exports[_0x1673('0xa1')]=runReport;exports['query']=function(_0x255c98,_0x1d2061){var _0x370333=0xa;var _0x522e36=[_0x1673('0x56'),_0x1673('0x8d'),_0x1673('0x8e'),_0x1673('0x57')];var _0x4f26b7={'SUM':_0x1673('0xa2'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x1673('0x5a'),'MIN':_0x1673('0x5b'),'AVG':_0x1673('0x5c'),'GROUP_CONCAT':_0x1673('0xa3'),'GROUP_CONCAT ASC':_0x1673('0x5d'),'GROUP_CONCAT DESC':_0x1673('0x5e')};var _0x5d2b33={'SEC_TO_TIME':_0x1673('0x5f'),'DATE':'DATE(%s)','HOUR':_0x1673('0x61'),'ROUND':_0x1673('0x62'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x1e2e42=function(_0x1c02a1){return!_[_0x1673('0x63')]([_0x1673('0x64'),_0x1673('0x65'),'IS\x20EMPTY',_0x1673('0x67')],_0x1c02a1);};var _0x37cee2=function(_0x1144ef){if(!_0x1144ef||!_0x1144ef[_0x1673('0x69')]['length']){return'';}for(var _0x22212f='(',_0x223068=0x0;_0x223068<_0x1144ef[_0x1673('0x69')]['length'];_0x223068+=0x1){_0x223068>0x0&&(_0x22212f+='\x20'+_0x1144ef[_0x1673('0x68')]+'\x20');_0x22212f+=_0x1144ef[_0x1673('0x69')][_0x223068][_0x1673('0x6a')]?_0x37cee2(_0x1144ef[_0x1673('0x69')][_0x223068][_0x1673('0x6a')]):_0x1144ef[_0x1673('0x69')][_0x223068][_0x1673('0x6b')]+'\x20'+_0x1144ef[_0x1673('0x69')][_0x223068][_0x1673('0x6c')]+(_0x1e2e42(_0x1144ef['rules'][_0x223068][_0x1673('0x6c')])?'\x20'+_0x1144ef[_0x1673('0x69')][_0x223068][_0x1673('0x6d')]:'');}return _0x22212f+')';};var _0x40686d={'where':{'id':_0x255c98[_0x1673('0x47')]['id']}},_0x4f267c,_0x34cd15,_0x7ed44b,_0x243e08,_0x511c33;_0x40686d=_['merge']({},_0x40686d,_0x255c98[_0x1673('0x42')]);return db['AnalyticCustomReport'][_0x1673('0x49')](_0x40686d)[_0x1673('0x26')](function(_0x3b99ef){if(_0x3b99ef){_0x4f267c=_0x3b99ef;return _0x3b99ef[_0x1673('0x6e')]();}return null;})['then'](function(_0x198c8a){if(_0x198c8a){if(!_0x198c8a[_0x1673('0x3c')]){throw new db['Sequelize'][(_0x1673('0x6f'))](_0x1673('0x70'),0x193);}_0x34cd15=_0x198c8a;return db[_0x1673('0x71')][_0x1673('0x72')]({'raw':!![]});}return null;})['then'](function(_0x41172d){if(_0x41172d){_0x7ed44b=_['keyBy'](_0x41172d,'id');var _0x343fc0;var _0x450a1d=squel[_0x1673('0x73')]();_0x450a1d[_0x1673('0x74')](_0x4f267c[_0x1673('0x75')]);for(var _0x2d9c3a=0x0;_0x2d9c3a<_0x34cd15['length'];_0x2d9c3a+=0x1){_0x343fc0=_0x34cd15[_0x2d9c3a][_0x1673('0x76')]?_0x7ed44b[_0x34cd15[_0x2d9c3a][_0x1673('0x76')]][_0x1673('0x77')]:_0x34cd15[_0x2d9c3a][_0x1673('0x6b')];_0x343fc0=_0x34cd15[_0x2d9c3a][_0x1673('0x78')]?_[_0x1673('0x79')](_0x4f26b7[_0x34cd15[_0x2d9c3a][_0x1673('0x78')]],'%s',_0x343fc0):_0x343fc0;_0x343fc0=_0x34cd15[_0x2d9c3a][_0x1673('0x7a')]?_[_0x1673('0x79')](_0x5d2b33[_0x34cd15[_0x2d9c3a][_0x1673('0x7a')]],'%s',_0x343fc0):_0x343fc0;if(_0x34cd15[_0x2d9c3a][_0x1673('0x7b')]){_0x450a1d[_0x1673('0x6a')](_0x343fc0);}_0x34cd15[_0x2d9c3a][_0x1673('0x7c')]&&_0x450a1d[_0x1673('0x7d')](_0x343fc0,_0x34cd15[_0x2d9c3a][_0x1673('0x7c')]===_0x1673('0x7e')?![]:!![]);_0x450a1d['field'](_0x343fc0,_0x34cd15[_0x2d9c3a][_0x1673('0x7f')]||_0x343fc0);}if(_0x4f267c['joins']){_0x4f267c[_0x1673('0x80')]=JSON['parse'](_0x4f267c[_0x1673('0x80')]);for(var _0x45a9fe=0x0;_0x45a9fe<_0x4f267c[_0x1673('0x80')][_0x1673('0x3c')];_0x45a9fe+=0x1){if(_0x4f267c[_0x1673('0x80')][_0x45a9fe][_0x1673('0x41')]&&_[_0x1673('0x63')](_0x522e36,_0x4f267c['joins'][_0x45a9fe]['type'])&&_0x4f267c['joins'][_0x45a9fe][_0x1673('0x82')]&&_0x4f267c[_0x1673('0x80')][_0x45a9fe]['foreignTable']&&_0x4f267c[_0x1673('0x80')][_0x45a9fe][_0x1673('0x84')]){_0x450a1d[_0x4f267c[_0x1673('0x80')][_0x45a9fe]['type']](_0x4f267c[_0x1673('0x80')][_0x45a9fe]['foreignTable'],null,util[_0x1673('0x7a')]('%s.%s\x20=\x20%s.%s',_0x4f267c[_0x1673('0x75')],_0x4f267c[_0x1673('0x80')][_0x45a9fe][_0x1673('0x82')],_0x4f267c['joins'][_0x45a9fe][_0x1673('0x83')],_0x4f267c[_0x1673('0x80')][_0x45a9fe][_0x1673('0x84')]));}}}if(_0x4f267c[_0x1673('0x85')]){_0x4f267c['conditions']=JSON['parse'](_0x4f267c['conditions']);_0x450a1d[_0x1673('0x40')](_0x37cee2(_0x4f267c['conditions'][_0x1673('0x6a')]));}_0x511c33=_0x450a1d[_0x1673('0x86')]();_0x450a1d[_0x1673('0x20')](_0x370333);_0x450a1d['offset'](0x0);logger[_0x1673('0x87')](_0x1673('0x88'),_0x450a1d[_0x1673('0x89')]());return dbH[_0x1673('0x8a')][_0x1673('0x36')](_0x450a1d[_0x1673('0x89')](),{'type':dbH[_0x1673('0x8a')]['QueryTypes'][_0x1673('0x8c')]});}})[_0x1673('0x26')](function(){return{'sql':_0x511c33['toString']()};})['then'](respondWithResult(_0x1d2061,null))[_0x1673('0x45')](handleError(_0x1d2061,null));};