e2ecdd01bc2b17d8965bcfe6b235829b4b814f4c
[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 _0x6d2a=['merge','VIRTUAL','options','include','rows','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','preview','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','group','field','condition','value','getFields','ValidationErrorItem','AnalyticMetric','findAll','keyBy','select','from','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','table','conditions','Limited\x20Query:','sequelize','toString','join','right_join','MIN(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','IS\x20NOT\x20EMPTY','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','MetricId','foreignKey','clone','output','fullPath','%s-%s.%s','randomstring','generate','csv','custom','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','SELECT','QueryTypes','run','runReport','MAX(%s)','GROUP_CONCAT(%s)','debug','eml-format','rimraf','zip-dir','moment','bluebird','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','json','undefined','offset','count','limit','set','apply','save','update','then','destroy','get','CustomReports','end','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','query','keys','model','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','filter'];(function(_0x3bdb09,_0x2f1fb7){var _0x5f3ec7=function(_0x2fe58f){while(--_0x2fe58f){_0x3bdb09['push'](_0x3bdb09['shift']());}};_0x5f3ec7(++_0x2f1fb7);}(_0x6d2a,0x10e));var _0xa6d2=function(_0x5adb18,_0x222326){_0x5adb18=_0x5adb18-0x0;var _0x420c98=_0x6d2a[_0x5adb18];return _0x420c98;};'use strict';var emlformat=require(_0xa6d2('0x0'));var rimraf=require(_0xa6d2('0x1'));var zipdir=require(_0xa6d2('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa6d2('0x3'));var BPromise=require(_0xa6d2('0x4'));var Mustache=require('mustache');var util=require(_0xa6d2('0x5'));var path=require(_0xa6d2('0x6'));var sox=require(_0xa6d2('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa6d2('0x8'));var _=require(_0xa6d2('0x9'));var squel=require(_0xa6d2('0xa'));var crypto=require(_0xa6d2('0xb'));var jsforce=require(_0xa6d2('0xc'));var deskjs=require(_0xa6d2('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa6d2('0xe'));var Redis=require(_0xa6d2('0xf'));var authService=require(_0xa6d2('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xa6d2('0x11'))('api');var utils=require(_0xa6d2('0x12'));var config=require(_0xa6d2('0x13'));var licenseUtil=require(_0xa6d2('0x14'));var db=require(_0xa6d2('0x15'))['db'];var dbH=require('../../mysqldb')[_0xa6d2('0x16')];function respondWithStatusCode(_0x26c233,_0x4dd74f){_0x4dd74f=_0x4dd74f||0xcc;return function(_0x4de15d){if(_0x4de15d){return _0x26c233[_0xa6d2('0x17')](_0x4dd74f);}return _0x26c233[_0xa6d2('0x18')](_0x4dd74f)['end']();};}function respondWithResult(_0x47933e,_0x460820){_0x460820=_0x460820||0xc8;return function(_0x47e4b9){if(_0x47e4b9){return _0x47933e[_0xa6d2('0x18')](_0x460820)[_0xa6d2('0x19')](_0x47e4b9);}};}function respondWithFilteredResult(_0x581e83,_0x6de58c){return function(_0x1e4b65){if(_0x1e4b65){var _0x17c423=typeof _0x6de58c['offset']==='undefined'&&typeof _0x6de58c['limit']===_0xa6d2('0x1a');var _0x5e9ec5=_0x1e4b65['count'];var _0x4f3843=_0x17c423?0x0:_0x6de58c[_0xa6d2('0x1b')];var _0x525aec=_0x17c423?_0x1e4b65[_0xa6d2('0x1c')]:_0x6de58c[_0xa6d2('0x1b')]+_0x6de58c[_0xa6d2('0x1d')];var _0x5615b1;if(_0x525aec>=_0x5e9ec5){_0x525aec=_0x5e9ec5;_0x5615b1=0xc8;}else{_0x5615b1=0xce;}_0x581e83[_0xa6d2('0x18')](_0x5615b1);return _0x581e83[_0xa6d2('0x1e')]('Content-Range',_0x4f3843+'-'+_0x525aec+'/'+_0x5e9ec5)[_0xa6d2('0x19')](_0x1e4b65);}return null;};}function patchUpdates(_0x396dbe){return function(_0xe41488){try{jsonpatch[_0xa6d2('0x1f')](_0xe41488,_0x396dbe,!![]);}catch(_0x33601d){return BPromise['reject'](_0x33601d);}return _0xe41488[_0xa6d2('0x20')]();};}function saveUpdates(_0x3b2d7d,_0x2910e0){return function(_0x5653ba){if(_0x5653ba){return _0x5653ba[_0xa6d2('0x21')](_0x3b2d7d)[_0xa6d2('0x22')](function(_0xbbdb09){return _0xbbdb09;});}return null;};}function removeEntity(_0x2b9a25,_0x29710f){return function(_0x580fd4){if(_0x580fd4){return _0x580fd4[_0xa6d2('0x23')]()[_0xa6d2('0x22')](function(){var _0x3ac971=_0x580fd4[_0xa6d2('0x24')]({'plain':!![]});var _0x10d228=_0xa6d2('0x25');return db['UserProfileResource']['destroy']({'where':{'type':_0x10d228,'resourceId':_0x3ac971['id']}})[_0xa6d2('0x22')](function(){return _0x580fd4;});})[_0xa6d2('0x22')](function(){_0x2b9a25[_0xa6d2('0x18')](0xcc)[_0xa6d2('0x26')]();});}};}function handleEntityNotFound(_0x1b2c75,_0x1078b9){return function(_0x585b8e){if(!_0x585b8e){_0x1b2c75[_0xa6d2('0x17')](0x194);}return _0x585b8e;};}function handleError(_0x470a0a,_0x5b1027){_0x5b1027=_0x5b1027||0x1f4;return function(_0x560e7e){logger[_0xa6d2('0x27')](_0x560e7e[_0xa6d2('0x28')]);if(_0x560e7e[_0xa6d2('0x29')]){delete _0x560e7e[_0xa6d2('0x29')];}_0x470a0a[_0xa6d2('0x18')](_0x5b1027)[_0xa6d2('0x2a')](_0x560e7e);};}exports[_0xa6d2('0x2b')]=function(_0xee1dc5,_0x465030){var _0x1c6e7d={},_0x3d260b={},_0x4366cd={'count':0x0,'rows':[]};var _0x14fa04=_[_0xa6d2('0x2c')](db[_0xa6d2('0x2d')][_0xa6d2('0x2e')],function(_0x265c73){return{'name':_0x265c73[_0xa6d2('0x2f')],'type':_0x265c73[_0xa6d2('0x30')]['key']};});_0x3d260b['model']=_[_0xa6d2('0x2c')](_0x14fa04,_0xa6d2('0x29'));_0x3d260b[_0xa6d2('0x31')]=_[_0xa6d2('0x32')](_0xee1dc5[_0xa6d2('0x31')]);_0x3d260b['filters']=_['intersection'](_0x3d260b[_0xa6d2('0x33')],_0x3d260b[_0xa6d2('0x31')]);_0x1c6e7d['attributes']=_[_0xa6d2('0x34')](_0x3d260b[_0xa6d2('0x33')],qs[_0xa6d2('0x35')](_0xee1dc5[_0xa6d2('0x31')][_0xa6d2('0x35')]));_0x1c6e7d['attributes']=_0x1c6e7d[_0xa6d2('0x36')][_0xa6d2('0x37')]?_0x1c6e7d['attributes']:_0x3d260b['model'];if(!_0xee1dc5[_0xa6d2('0x31')][_0xa6d2('0x38')]('nolimit')){_0x1c6e7d[_0xa6d2('0x1d')]=qs[_0xa6d2('0x1d')](_0xee1dc5[_0xa6d2('0x31')][_0xa6d2('0x1d')]);_0x1c6e7d[_0xa6d2('0x1b')]=qs[_0xa6d2('0x1b')](_0xee1dc5[_0xa6d2('0x31')]['offset']);}_0x1c6e7d[_0xa6d2('0x39')]=qs[_0xa6d2('0x3a')](_0xee1dc5[_0xa6d2('0x31')][_0xa6d2('0x3a')]);_0x1c6e7d[_0xa6d2('0x3b')]=qs[_0xa6d2('0x3c')](_['pick'](_0xee1dc5[_0xa6d2('0x31')],_0x3d260b[_0xa6d2('0x3c')]),_0x14fa04);if(_0xee1dc5[_0xa6d2('0x31')][_0xa6d2('0x3d')]){_0x1c6e7d['where']=_[_0xa6d2('0x3e')](_0x1c6e7d[_0xa6d2('0x3b')],{'$or':_[_0xa6d2('0x2c')](_0x14fa04,function(_0x18b49a){if(_0x18b49a[_0xa6d2('0x30')]!==_0xa6d2('0x3f')){var _0x3f5421={};_0x3f5421[_0x18b49a[_0xa6d2('0x29')]]={'$like':'%'+_0xee1dc5[_0xa6d2('0x31')][_0xa6d2('0x3d')]+'%'};return _0x3f5421;}})});}_0x1c6e7d=_['merge']({},_0x1c6e7d,_0xee1dc5[_0xa6d2('0x40')]);var _0x1dc07c={'where':_0x1c6e7d[_0xa6d2('0x3b')]};return db[_0xa6d2('0x2d')]['count'](_0x1dc07c)[_0xa6d2('0x22')](function(_0x56f547){_0x4366cd[_0xa6d2('0x1c')]=_0x56f547;if(_0xee1dc5[_0xa6d2('0x31')]['includeAll']){_0x1c6e7d[_0xa6d2('0x41')]=[{'all':!![]}];}return db['AnalyticCustomReport']['findAll'](_0x1c6e7d);})['then'](function(_0x4ee192){_0x4366cd[_0xa6d2('0x42')]=_0x4ee192;return _0x4366cd;})[_0xa6d2('0x22')](respondWithFilteredResult(_0x465030,_0x1c6e7d))[_0xa6d2('0x43')](handleError(_0x465030,null));};exports[_0xa6d2('0x44')]=function(_0x1b5cee,_0x7d867d){var _0x41369d={'raw':![],'where':{'id':_0x1b5cee[_0xa6d2('0x45')]['id']}},_0x20f664={};_0x20f664[_0xa6d2('0x33')]=_['keys'](db[_0xa6d2('0x2d')][_0xa6d2('0x2e')]);_0x20f664[_0xa6d2('0x31')]=_[_0xa6d2('0x32')](_0x1b5cee['query']);_0x20f664[_0xa6d2('0x3c')]=_[_0xa6d2('0x34')](_0x20f664[_0xa6d2('0x33')],_0x20f664[_0xa6d2('0x31')]);_0x41369d['attributes']=_[_0xa6d2('0x34')](_0x20f664[_0xa6d2('0x33')],qs['fields'](_0x1b5cee[_0xa6d2('0x31')][_0xa6d2('0x35')]));_0x41369d[_0xa6d2('0x36')]=_0x41369d['attributes']['length']?_0x41369d[_0xa6d2('0x36')]:_0x20f664[_0xa6d2('0x33')];if(_0x1b5cee['query']['includeAll']){_0x41369d['include']=[{'all':!![]}];}_0x41369d=_[_0xa6d2('0x3e')]({},_0x41369d,_0x1b5cee[_0xa6d2('0x40')]);return db['AnalyticCustomReport'][_0xa6d2('0x46')](_0x41369d)[_0xa6d2('0x22')](handleEntityNotFound(_0x7d867d,null))[_0xa6d2('0x22')](respondWithResult(_0x7d867d,null))[_0xa6d2('0x43')](handleError(_0x7d867d,null));};exports['create']=function(_0x4dc280,_0x3ac4e9){return db[_0xa6d2('0x2d')][_0xa6d2('0x47')](_0x4dc280['body'],{})[_0xa6d2('0x22')](function(_0x58a351){var _0x1738d8=_0x4dc280[_0xa6d2('0x48')]['get']({'plain':!![]});if(!_0x1738d8)throw new Error(_0xa6d2('0x49'));if(_0x1738d8[_0xa6d2('0x4a')]===_0xa6d2('0x48')){var _0x18df8b=_0x58a351[_0xa6d2('0x24')]({'plain':!![]});var _0x3e58d2='Reports';return db[_0xa6d2('0x4b')][_0xa6d2('0x46')]({'where':{'name':_0x3e58d2,'userProfileId':_0x1738d8[_0xa6d2('0x4c')]},'raw':!![]})[_0xa6d2('0x22')](function(_0x51fcbb){if(_0x51fcbb&&_0x51fcbb[_0xa6d2('0x4d')]===0x0){return db[_0xa6d2('0x4e')][_0xa6d2('0x47')]({'name':_0x18df8b[_0xa6d2('0x29')],'resourceId':_0x18df8b['id'],'type':'CustomReports','sectionId':_0x51fcbb['id']},{})[_0xa6d2('0x22')](function(){return _0x58a351;});}else{return _0x58a351;}})[_0xa6d2('0x43')](function(_0x1dc83c){logger[_0xa6d2('0x27')](_0xa6d2('0x4f'),_0x1dc83c);throw _0x1dc83c;});}return _0x58a351;})[_0xa6d2('0x22')](respondWithResult(_0x3ac4e9,0xc9))['catch'](handleError(_0x3ac4e9,null));};exports[_0xa6d2('0x21')]=function(_0x3c3fe7,_0x50fbca){if(_0x3c3fe7['body']['id']){delete _0x3c3fe7[_0xa6d2('0x50')]['id'];}return db[_0xa6d2('0x2d')][_0xa6d2('0x46')]({'where':{'id':_0x3c3fe7[_0xa6d2('0x45')]['id']}})[_0xa6d2('0x22')](handleEntityNotFound(_0x50fbca,null))[_0xa6d2('0x22')](saveUpdates(_0x3c3fe7[_0xa6d2('0x50')],null))[_0xa6d2('0x22')](respondWithResult(_0x50fbca,null))[_0xa6d2('0x43')](handleError(_0x50fbca,null));};exports[_0xa6d2('0x23')]=function(_0x37b656,_0x2e1d6b){return db['AnalyticCustomReport'][_0xa6d2('0x46')]({'where':{'id':_0x37b656[_0xa6d2('0x45')]['id']}})[_0xa6d2('0x22')](handleEntityNotFound(_0x2e1d6b,null))[_0xa6d2('0x22')](removeEntity(_0x2e1d6b,null))[_0xa6d2('0x43')](handleError(_0x2e1d6b,null));};exports[_0xa6d2('0x51')]=function(_0x5317bc,_0xb0f01a){var _0xc3c533=0xa;var _0x4bb9b3=['join','left_join','right_join',_0xa6d2('0x52')];var _0x557f28={'SUM':_0xa6d2('0x53'),'COUNT':_0xa6d2('0x54'),'COUNT DISTINCT':_0xa6d2('0x55'),'MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':_0xa6d2('0x56'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xa6d2('0x57'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2c8a1b={'SEC_TO_TIME':_0xa6d2('0x58'),'DATE':_0xa6d2('0x59'),'HOUR':_0xa6d2('0x5a'),'ROUND':_0xa6d2('0x5b'),'UNIX_TIMESTAMP':_0xa6d2('0x5c')};var _0x2b64b4=function(_0x41a193){return!_[_0xa6d2('0x5d')]([_0xa6d2('0x5e'),_0xa6d2('0x5f'),_0xa6d2('0x60'),'IS\x20NOT\x20EMPTY'],_0x41a193);};var _0x282915=function(_0x41806c){if(!_0x41806c||!_0x41806c[_0xa6d2('0x61')][_0xa6d2('0x37')]){return'';}for(var _0x5259f1='(',_0x296884=0x0;_0x296884<_0x41806c[_0xa6d2('0x61')][_0xa6d2('0x37')];_0x296884+=0x1){_0x296884>0x0&&(_0x5259f1+='\x20'+_0x41806c[_0xa6d2('0x62')]+'\x20');_0x5259f1+=_0x41806c[_0xa6d2('0x61')][_0x296884][_0xa6d2('0x63')]?_0x282915(_0x41806c[_0xa6d2('0x61')][_0x296884][_0xa6d2('0x63')]):_0x41806c['rules'][_0x296884][_0xa6d2('0x64')]+'\x20'+_0x41806c[_0xa6d2('0x61')][_0x296884]['condition']+(_0x2b64b4(_0x41806c[_0xa6d2('0x61')][_0x296884][_0xa6d2('0x65')])?'\x20'+_0x41806c[_0xa6d2('0x61')][_0x296884][_0xa6d2('0x66')]:'');}return _0x5259f1+')';};var _0xe10d3f={'where':{'id':_0x5317bc['params']['id']}},_0x3fa261,_0x3dcbfe,_0x599a2c,_0x3e63f9,_0x4fbd82;_0xe10d3f=_[_0xa6d2('0x3e')]({},_0xe10d3f,_0x5317bc[_0xa6d2('0x40')]);return db[_0xa6d2('0x2d')][_0xa6d2('0x46')](_0xe10d3f)['then'](function(_0x5d4b1a){if(_0x5d4b1a){_0x3fa261=_0x5d4b1a;return _0x5d4b1a[_0xa6d2('0x67')]();}return null;})['then'](function(_0x28d1aa){if(_0x28d1aa){if(!_0x28d1aa[_0xa6d2('0x37')]){throw new db['Sequelize'][(_0xa6d2('0x68'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x3dcbfe=_0x28d1aa;return db[_0xa6d2('0x69')][_0xa6d2('0x6a')]({'raw':!![]});}return null;})[_0xa6d2('0x22')](function(_0x45ba91){if(_0x45ba91){_0x599a2c=_[_0xa6d2('0x6b')](_0x45ba91,'id');var _0x351f00;var _0x2764e6=squel[_0xa6d2('0x6c')]();_0x2764e6[_0xa6d2('0x6d')](_0x3fa261['table']);for(var _0x33f8e=0x0;_0x33f8e<_0x3dcbfe['length'];_0x33f8e+=0x1){_0x351f00=_0x3dcbfe[_0x33f8e]['MetricId']?_0x599a2c[_0x3dcbfe[_0x33f8e]['MetricId']][_0xa6d2('0x6e')]:_0x3dcbfe[_0x33f8e][_0xa6d2('0x64')];_0x351f00=_0x3dcbfe[_0x33f8e][_0xa6d2('0x6f')]?_[_0xa6d2('0x70')](_0x557f28[_0x3dcbfe[_0x33f8e][_0xa6d2('0x6f')]],'%s',_0x351f00):_0x351f00;_0x351f00=_0x3dcbfe[_0x33f8e][_0xa6d2('0x71')]?_['replace'](_0x2c8a1b[_0x3dcbfe[_0x33f8e]['format']],'%s',_0x351f00):_0x351f00;if(_0x3dcbfe[_0x33f8e][_0xa6d2('0x72')]){_0x2764e6['group'](_0x351f00);}_0x3dcbfe[_0x33f8e][_0xa6d2('0x73')]&&_0x2764e6[_0xa6d2('0x39')](_0x351f00,_0x3dcbfe[_0x33f8e][_0xa6d2('0x73')]===_0xa6d2('0x74')?![]:!![]);_0x2764e6[_0xa6d2('0x64')](_0x351f00,_0x3dcbfe[_0x33f8e][_0xa6d2('0x75')]||_0x351f00);}if(_0x3fa261[_0xa6d2('0x76')]){_0x3fa261[_0xa6d2('0x76')]=JSON[_0xa6d2('0x77')](_0x3fa261[_0xa6d2('0x76')]);for(var _0x1c51e2=0x0;_0x1c51e2<_0x3fa261[_0xa6d2('0x76')][_0xa6d2('0x37')];_0x1c51e2+=0x1){if(_0x3fa261[_0xa6d2('0x76')][_0x1c51e2][_0xa6d2('0x30')]&&_['includes'](_0x4bb9b3,_0x3fa261[_0xa6d2('0x76')][_0x1c51e2][_0xa6d2('0x30')])&&_0x3fa261[_0xa6d2('0x76')][_0x1c51e2][_0xa6d2('0x78')]&&_0x3fa261[_0xa6d2('0x76')][_0x1c51e2]['foreignTable']&&_0x3fa261['joins'][_0x1c51e2]['foreignKey']){_0x2764e6[_0x3fa261[_0xa6d2('0x76')][_0x1c51e2][_0xa6d2('0x30')]](_0x3fa261[_0xa6d2('0x76')][_0x1c51e2][_0xa6d2('0x79')],null,util[_0xa6d2('0x71')](_0xa6d2('0x7a'),_0x3fa261[_0xa6d2('0x7b')],_0x3fa261['joins'][_0x1c51e2][_0xa6d2('0x78')],_0x3fa261[_0xa6d2('0x76')][_0x1c51e2]['foreignTable'],_0x3fa261['joins'][_0x1c51e2]['foreignKey']));}}}if(_0x3fa261['conditions']){_0x3fa261[_0xa6d2('0x7c')]=JSON['parse'](_0x3fa261[_0xa6d2('0x7c')]);_0x2764e6[_0xa6d2('0x3b')](_0x282915(_0x3fa261[_0xa6d2('0x7c')][_0xa6d2('0x63')]));}_0x4fbd82=_0x2764e6['clone']();_0x2764e6[_0xa6d2('0x1d')](_0xc3c533);_0x2764e6[_0xa6d2('0x1b')](0x0);logger['debug'](_0xa6d2('0x7d'),_0x2764e6['toString']());return dbH[_0xa6d2('0x7e')][_0xa6d2('0x31')](_0x2764e6[_0xa6d2('0x7f')](),{'type':dbH[_0xa6d2('0x7e')]['QueryTypes']['SELECT']});}})[_0xa6d2('0x22')](respondWithResult(_0xb0f01a,null))[_0xa6d2('0x43')](handleError(_0xb0f01a,null));};function runReport(_0x4fe291,_0x2da5bd,_0x3d9787){var _0x3d409c=_0x2da5bd[_0xa6d2('0x29')];var _0x47f970=0xa;var _0x354eca=[_0xa6d2('0x80'),'left_join',_0xa6d2('0x81'),_0xa6d2('0x52')];var _0x288612={'SUM':_0xa6d2('0x53'),'COUNT':_0xa6d2('0x54'),'COUNT DISTINCT':_0xa6d2('0x55'),'MAX':'MAX(%s)','MIN':_0xa6d2('0x82'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xa6d2('0x83')};var _0x4995f7={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0xa6d2('0x5b'),'UNIX_TIMESTAMP':_0xa6d2('0x5c')};var _0x32eb40=function(_0x24d532){return!_['includes'](['IS\x20NULL','IS\x20NOT\x20NULL',_0xa6d2('0x60'),_0xa6d2('0x84')],_0x24d532);};var _0xc1ebbb=function(_0x51b214){if(!_0x51b214||!_0x51b214[_0xa6d2('0x61')]['length']){return'';}for(var _0x30f8a1='(',_0x1dd4e3=0x0;_0x1dd4e3<_0x51b214[_0xa6d2('0x61')][_0xa6d2('0x37')];_0x1dd4e3+=0x1){_0x1dd4e3>0x0&&(_0x30f8a1+='\x20'+_0x51b214['operator']+'\x20');_0x30f8a1+=_0x51b214[_0xa6d2('0x61')][_0x1dd4e3][_0xa6d2('0x63')]?_0xc1ebbb(_0x51b214[_0xa6d2('0x61')][_0x1dd4e3][_0xa6d2('0x63')]):_0x51b214['rules'][_0x1dd4e3]['field']+'\x20'+_0x51b214['rules'][_0x1dd4e3][_0xa6d2('0x65')]+(_0x32eb40(_0x51b214[_0xa6d2('0x61')][_0x1dd4e3]['condition'])?'\x20'+_0x51b214[_0xa6d2('0x61')][_0x1dd4e3][_0xa6d2('0x66')]:'');}return _0x30f8a1+')';};var _0x3ace46={'where':{'id':_0x4fe291['id']}},_0xd45258,_0x5647ac,_0x394709,_0x53e303,_0x2ea398;_0x3ace46=_[_0xa6d2('0x3e')]({},_0x3ace46,_0x3d9787);return db['AnalyticCustomReport'][_0xa6d2('0x46')](_0x3ace46)[_0xa6d2('0x22')](function(_0x33c47d){if(_0x33c47d){_0xd45258=_0x33c47d;return _0x33c47d[_0xa6d2('0x67')]();}return null;})['then'](function(_0x33ed3f){if(_0x33ed3f){if(!_0x33ed3f['length']){throw new db[(_0xa6d2('0x85'))][(_0xa6d2('0x68'))](_0xa6d2('0x86'),0x193);}_0x5647ac=_0x33ed3f;return db[_0xa6d2('0x69')]['findAll']({'raw':!![]});}return null;})['then'](function(_0x254a2b){if(_0x254a2b){_0x394709=_['keyBy'](_0x254a2b,'id');var _0x858ed6;var _0x59cf68=squel[_0xa6d2('0x6c')]();_0x59cf68[_0xa6d2('0x6d')](_0xd45258['table']);for(var _0x2f6a9d=0x0;_0x2f6a9d<_0x5647ac['length'];_0x2f6a9d+=0x1){_0x858ed6=_0x5647ac[_0x2f6a9d]['MetricId']?_0x394709[_0x5647ac[_0x2f6a9d][_0xa6d2('0x87')]][_0xa6d2('0x6e')]:_0x5647ac[_0x2f6a9d][_0xa6d2('0x64')];_0x858ed6=_0x5647ac[_0x2f6a9d][_0xa6d2('0x6f')]?_[_0xa6d2('0x70')](_0x288612[_0x5647ac[_0x2f6a9d][_0xa6d2('0x6f')]],'%s',_0x858ed6):_0x858ed6;_0x858ed6=_0x5647ac[_0x2f6a9d][_0xa6d2('0x71')]?_[_0xa6d2('0x70')](_0x4995f7[_0x5647ac[_0x2f6a9d][_0xa6d2('0x71')]],'%s',_0x858ed6):_0x858ed6;if(_0x5647ac[_0x2f6a9d]['groupBy']){_0x59cf68[_0xa6d2('0x63')](_0x858ed6);}_0x5647ac[_0x2f6a9d][_0xa6d2('0x73')]&&_0x59cf68[_0xa6d2('0x39')](_0x858ed6,_0x5647ac[_0x2f6a9d]['orderBy']==='DESC'?![]:!![]);_0x59cf68[_0xa6d2('0x64')](_0x858ed6,_0x5647ac[_0x2f6a9d][_0xa6d2('0x75')]||_0x858ed6);}if(_0xd45258[_0xa6d2('0x76')]){_0xd45258[_0xa6d2('0x76')]=JSON[_0xa6d2('0x77')](_0xd45258[_0xa6d2('0x76')]);for(var _0x41cb03=0x0;_0x41cb03<_0xd45258['joins']['length'];_0x41cb03+=0x1){if(_0xd45258[_0xa6d2('0x76')][_0x41cb03][_0xa6d2('0x30')]&&_[_0xa6d2('0x5d')](_0x354eca,_0xd45258[_0xa6d2('0x76')][_0x41cb03][_0xa6d2('0x30')])&&_0xd45258[_0xa6d2('0x76')][_0x41cb03]['parentKey']&&_0xd45258['joins'][_0x41cb03]['foreignTable']&&_0xd45258[_0xa6d2('0x76')][_0x41cb03]['foreignKey']){_0x59cf68[_0xd45258[_0xa6d2('0x76')][_0x41cb03]['type']](_0xd45258['joins'][_0x41cb03][_0xa6d2('0x79')],null,util[_0xa6d2('0x71')](_0xa6d2('0x7a'),_0xd45258['table'],_0xd45258[_0xa6d2('0x76')][_0x41cb03][_0xa6d2('0x78')],_0xd45258[_0xa6d2('0x76')][_0x41cb03][_0xa6d2('0x79')],_0xd45258[_0xa6d2('0x76')][_0x41cb03][_0xa6d2('0x88')]));}}}if(_0xd45258['conditions']){_0xd45258[_0xa6d2('0x7c')]=JSON[_0xa6d2('0x77')](_0xd45258[_0xa6d2('0x7c')]);_0x59cf68[_0xa6d2('0x3b')](_0xc1ebbb(_0xd45258['conditions'][_0xa6d2('0x63')]));}_0x2ea398=_0x59cf68[_0xa6d2('0x89')]();_0x59cf68[_0xa6d2('0x1d')](_0x47f970);_0x59cf68[_0xa6d2('0x1b')](0x0);return;}})[_0xa6d2('0x22')](function(){if(_0x2da5bd[_0xa6d2('0x8a')]==='web'){return null;}var _0x1a8672=_[_0xa6d2('0x3e')](_0x2da5bd,{'name':_0x2da5bd[_0xa6d2('0x8b')]||_0x2da5bd[_0xa6d2('0x29')]||_0xd45258[_0xa6d2('0x29')],'basename':_0x3d409c,'savename':util[_0xa6d2('0x71')](_0xa6d2('0x8c'),_0x2da5bd['name']||_0xd45258[_0xa6d2('0x29')],require(_0xa6d2('0x8d'))[_0xa6d2('0x8e')](0x4),_0x2da5bd[_0xa6d2('0x8a')]||_0xa6d2('0x8f')),'reportId':_0xd45258['id'],'reportType':_0xa6d2('0x90')});return db['AnalyticExtractedReport']['create'](_0x1a8672,{'raw':!![]});})[_0xa6d2('0x22')](function(_0x3d687e){if(_0xd45258[_0xa6d2('0x7b')]===_0xa6d2('0x91')){_0x2ea398[_0xa6d2('0x3b')](_0xd45258[_0xa6d2('0x7b')]+_0xa6d2('0x92'),_0x2da5bd[_0xa6d2('0x93')],_0x2da5bd['endDate']);}else{_0x2ea398[_0xa6d2('0x3b')](_0xd45258['table']+_0xa6d2('0x94'),_0x2da5bd['startDate'],_0x2da5bd[_0xa6d2('0x95')]);}if(_0x3d687e){logger[_0xa6d2('0x96')](_0xa6d2('0x97'),_0x2ea398[_0xa6d2('0x7f')]());require(_0xa6d2('0x98'))[_0xa6d2('0x99')](path['join'](__dirname,_0xa6d2('0x9a'),_0x3d687e['output']),[_0x3d687e['id'],_0x2ea398[_0xa6d2('0x7f')](),path[_0xa6d2('0x80')](__dirname,_0xa6d2('0x9b'),_0x3d687e[_0xa6d2('0x9c')]),_0x3d409c]);return _0x3d687e;}else{var _0xced477=squel[_0xa6d2('0x6c')]();_0xced477[_0xa6d2('0x6d')]('('+_0x2ea398['toString']()+')',_0xa6d2('0x9d'));_0xced477['field'](_0xa6d2('0x9e'),_0xa6d2('0x1c'));_0x2ea398['limit'](_0x2da5bd[_0xa6d2('0x1d')]||_0x47f970);_0x2ea398[_0xa6d2('0x1b')](_0x2da5bd[_0xa6d2('0x1b')]||0x0);return dbH['sequelize'][_0xa6d2('0x31')](_0xced477[_0xa6d2('0x7f')](),{'type':dbH[_0xa6d2('0x7e')]['QueryTypes'][_0xa6d2('0x9f')]})['then'](function(_0xc2f24f){if(!_0xc2f24f[_0xa6d2('0x37')]){_0x53e303=0x0;}else{_0x53e303=_0xc2f24f[0x0][_0xa6d2('0x1c')]||0x0;}return dbH[_0xa6d2('0x7e')][_0xa6d2('0x31')](_0x2ea398[_0xa6d2('0x7f')](),{'type':dbH[_0xa6d2('0x7e')][_0xa6d2('0xa0')]['SELECT']});})[_0xa6d2('0x22')](function(_0x2e96ab){return{'rows':_0x2e96ab||[],'count':_0x53e303};});}});}exports[_0xa6d2('0xa1')]=function(_0x4b9eae,_0xb6f46c){return runReport(_0x4b9eae['params'],_0x4b9eae['query'],_0x4b9eae['options'])[_0xa6d2('0x22')](respondWithResult(_0xb6f46c,null))[_0xa6d2('0x43')](handleError(_0xb6f46c,null));};exports[_0xa6d2('0xa2')]=runReport;exports['query']=function(_0x2b7bb6,_0xdcfee4){var _0x1e9ca5=0xa;var _0x2f43c1=[_0xa6d2('0x80'),'left_join',_0xa6d2('0x81'),_0xa6d2('0x52')];var _0x29f2d9={'SUM':_0xa6d2('0x53'),'COUNT':_0xa6d2('0x54'),'COUNT DISTINCT':_0xa6d2('0x55'),'MAX':_0xa6d2('0xa3'),'MIN':_0xa6d2('0x82'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xa6d2('0xa4'),'GROUP_CONCAT ASC':_0xa6d2('0x57'),'GROUP_CONCAT DESC':_0xa6d2('0x83')};var _0x64fb94={'SEC_TO_TIME':_0xa6d2('0x58'),'DATE':_0xa6d2('0x59'),'HOUR':_0xa6d2('0x5a'),'ROUND':_0xa6d2('0x5b'),'UNIX_TIMESTAMP':_0xa6d2('0x5c')};var _0x19329b=function(_0x27f176){return!_['includes']([_0xa6d2('0x5e'),'IS\x20NOT\x20NULL',_0xa6d2('0x60'),_0xa6d2('0x84')],_0x27f176);};var _0x3f5e1c=function(_0x5c52ad){if(!_0x5c52ad||!_0x5c52ad[_0xa6d2('0x61')]['length']){return'';}for(var _0x4191a0='(',_0x2416c1=0x0;_0x2416c1<_0x5c52ad[_0xa6d2('0x61')][_0xa6d2('0x37')];_0x2416c1+=0x1){_0x2416c1>0x0&&(_0x4191a0+='\x20'+_0x5c52ad[_0xa6d2('0x62')]+'\x20');_0x4191a0+=_0x5c52ad['rules'][_0x2416c1][_0xa6d2('0x63')]?_0x3f5e1c(_0x5c52ad[_0xa6d2('0x61')][_0x2416c1][_0xa6d2('0x63')]):_0x5c52ad[_0xa6d2('0x61')][_0x2416c1][_0xa6d2('0x64')]+'\x20'+_0x5c52ad[_0xa6d2('0x61')][_0x2416c1][_0xa6d2('0x65')]+(_0x19329b(_0x5c52ad[_0xa6d2('0x61')][_0x2416c1][_0xa6d2('0x65')])?'\x20'+_0x5c52ad['rules'][_0x2416c1][_0xa6d2('0x66')]:'');}return _0x4191a0+')';};var _0x56d45d={'where':{'id':_0x2b7bb6[_0xa6d2('0x45')]['id']}},_0x28e9b9,_0x457555,_0x3e8299,_0x48928f,_0x26a192;_0x56d45d=_[_0xa6d2('0x3e')]({},_0x56d45d,_0x2b7bb6['options']);return db['AnalyticCustomReport'][_0xa6d2('0x46')](_0x56d45d)[_0xa6d2('0x22')](function(_0x311ec3){if(_0x311ec3){_0x28e9b9=_0x311ec3;return _0x311ec3[_0xa6d2('0x67')]();}return null;})['then'](function(_0x1956d1){if(_0x1956d1){if(!_0x1956d1[_0xa6d2('0x37')]){throw new db[(_0xa6d2('0x85'))][(_0xa6d2('0x68'))](_0xa6d2('0x86'),0x193);}_0x457555=_0x1956d1;return db[_0xa6d2('0x69')][_0xa6d2('0x6a')]({'raw':!![]});}return null;})[_0xa6d2('0x22')](function(_0x5e7de4){if(_0x5e7de4){_0x3e8299=_[_0xa6d2('0x6b')](_0x5e7de4,'id');var _0x4c73be;var _0x524c9e=squel[_0xa6d2('0x6c')]();_0x524c9e[_0xa6d2('0x6d')](_0x28e9b9[_0xa6d2('0x7b')]);for(var _0x731c47=0x0;_0x731c47<_0x457555[_0xa6d2('0x37')];_0x731c47+=0x1){_0x4c73be=_0x457555[_0x731c47][_0xa6d2('0x87')]?_0x3e8299[_0x457555[_0x731c47][_0xa6d2('0x87')]][_0xa6d2('0x6e')]:_0x457555[_0x731c47]['field'];_0x4c73be=_0x457555[_0x731c47][_0xa6d2('0x6f')]?_['replace'](_0x29f2d9[_0x457555[_0x731c47][_0xa6d2('0x6f')]],'%s',_0x4c73be):_0x4c73be;_0x4c73be=_0x457555[_0x731c47]['format']?_['replace'](_0x64fb94[_0x457555[_0x731c47]['format']],'%s',_0x4c73be):_0x4c73be;if(_0x457555[_0x731c47][_0xa6d2('0x72')]){_0x524c9e['group'](_0x4c73be);}_0x457555[_0x731c47][_0xa6d2('0x73')]&&_0x524c9e[_0xa6d2('0x39')](_0x4c73be,_0x457555[_0x731c47][_0xa6d2('0x73')]===_0xa6d2('0x74')?![]:!![]);_0x524c9e['field'](_0x4c73be,_0x457555[_0x731c47][_0xa6d2('0x75')]||_0x4c73be);}if(_0x28e9b9[_0xa6d2('0x76')]){_0x28e9b9[_0xa6d2('0x76')]=JSON['parse'](_0x28e9b9[_0xa6d2('0x76')]);for(var _0x2ac20c=0x0;_0x2ac20c<_0x28e9b9[_0xa6d2('0x76')][_0xa6d2('0x37')];_0x2ac20c+=0x1){if(_0x28e9b9[_0xa6d2('0x76')][_0x2ac20c][_0xa6d2('0x30')]&&_[_0xa6d2('0x5d')](_0x2f43c1,_0x28e9b9[_0xa6d2('0x76')][_0x2ac20c][_0xa6d2('0x30')])&&_0x28e9b9[_0xa6d2('0x76')][_0x2ac20c][_0xa6d2('0x78')]&&_0x28e9b9[_0xa6d2('0x76')][_0x2ac20c][_0xa6d2('0x79')]&&_0x28e9b9[_0xa6d2('0x76')][_0x2ac20c]['foreignKey']){_0x524c9e[_0x28e9b9[_0xa6d2('0x76')][_0x2ac20c][_0xa6d2('0x30')]](_0x28e9b9['joins'][_0x2ac20c][_0xa6d2('0x79')],null,util[_0xa6d2('0x71')](_0xa6d2('0x7a'),_0x28e9b9[_0xa6d2('0x7b')],_0x28e9b9[_0xa6d2('0x76')][_0x2ac20c][_0xa6d2('0x78')],_0x28e9b9[_0xa6d2('0x76')][_0x2ac20c][_0xa6d2('0x79')],_0x28e9b9['joins'][_0x2ac20c][_0xa6d2('0x88')]));}}}if(_0x28e9b9[_0xa6d2('0x7c')]){_0x28e9b9['conditions']=JSON[_0xa6d2('0x77')](_0x28e9b9[_0xa6d2('0x7c')]);_0x524c9e[_0xa6d2('0x3b')](_0x3f5e1c(_0x28e9b9[_0xa6d2('0x7c')][_0xa6d2('0x63')]));}_0x26a192=_0x524c9e[_0xa6d2('0x89')]();_0x524c9e[_0xa6d2('0x1d')](_0x1e9ca5);_0x524c9e[_0xa6d2('0x1b')](0x0);logger[_0xa6d2('0xa5')]('Limited\x20Query:',_0x524c9e[_0xa6d2('0x7f')]());return dbH[_0xa6d2('0x7e')][_0xa6d2('0x31')](_0x524c9e['toString'](),{'type':dbH[_0xa6d2('0x7e')][_0xa6d2('0xa0')][_0xa6d2('0x9f')]});}})[_0xa6d2('0x22')](function(){return{'sql':_0x26a192[_0xa6d2('0x7f')]()};})[_0xa6d2('0x22')](respondWithResult(_0xdcfee4,null))['catch'](handleError(_0xdcfee4,null));};