b2ca1ffcd2be98e5a1fb8b0899f9f0df9b3753f7
[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 _0x4a07=['end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','CustomReports','sendStatus','error','stack','name','index','map','AnalyticCustomReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','right_join','SUM(%s)','COUNT(%s)','MAX(%s)','MIN(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','group','field','condition','value','options','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','table','MetricId','metric','function','format','replace','groupBy','orderBy','DESC','alias','joins','parse','includes','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','foreignKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','cross_join','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20EMPTY','from','output','web','fullPath','%s-%s.%s','generate','csv','custom','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','startDate','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','COUNT(DISTINCT\x20%s)','AVG(%s)','SEC_TO_TIME(%s)','getFields','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status'];(function(_0xb50908,_0x34bae3){var _0x5bee69=function(_0x2b9b20){while(--_0x2b9b20){_0xb50908['push'](_0xb50908['shift']());}};_0x5bee69(++_0x34bae3);}(_0x4a07,0x1dd));var _0x74a0=function(_0x55447c,_0x4f6396){_0x55447c=_0x55447c-0x0;var _0xbc20a6=_0x4a07[_0x55447c];return _0xbc20a6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x74a0('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x74a0('0x1'));var rp=require(_0x74a0('0x2'));var moment=require('moment');var BPromise=require(_0x74a0('0x3'));var Mustache=require(_0x74a0('0x4'));var util=require(_0x74a0('0x5'));var path=require(_0x74a0('0x6'));var sox=require('sox');var csv=require(_0x74a0('0x7'));var ejs=require(_0x74a0('0x8'));var fs=require('fs');var fs_extra=require(_0x74a0('0x9'));var _=require(_0x74a0('0xa'));var squel=require(_0x74a0('0xb'));var crypto=require(_0x74a0('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x74a0('0xd'));var toCsv=require(_0x74a0('0x7'));var querystring=require(_0x74a0('0xe'));var Papa=require(_0x74a0('0xf'));var Redis=require('ioredis');var authService=require(_0x74a0('0x10'));var qs=require(_0x74a0('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x74a0('0x12'));var logger=require('../../config/logger')(_0x74a0('0x13'));var utils=require(_0x74a0('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x74a0('0x15'));var db=require(_0x74a0('0x16'))['db'];var dbH=require('../../mysqldb')['dbH'];function respondWithStatusCode(_0x2c65eb,_0x354598){_0x354598=_0x354598||0xcc;return function(_0x13a63a){if(_0x13a63a){return _0x2c65eb['sendStatus'](_0x354598);}return _0x2c65eb[_0x74a0('0x17')](_0x354598)[_0x74a0('0x18')]();};}function respondWithResult(_0x3110fb,_0x539ab0){_0x539ab0=_0x539ab0||0xc8;return function(_0x13b3a5){if(_0x13b3a5){return _0x3110fb[_0x74a0('0x17')](_0x539ab0)[_0x74a0('0x19')](_0x13b3a5);}};}function respondWithFilteredResult(_0x3d8296,_0x587d80){return function(_0x6fbdd9){if(_0x6fbdd9){var _0x9acb27=typeof _0x587d80[_0x74a0('0x1a')]===_0x74a0('0x1b')&&typeof _0x587d80['limit']===_0x74a0('0x1b');var _0x39ccbd=_0x6fbdd9[_0x74a0('0x1c')];var _0x1ed33d=_0x9acb27?0x0:_0x587d80[_0x74a0('0x1a')];var _0x48cf1d=_0x9acb27?_0x6fbdd9[_0x74a0('0x1c')]:_0x587d80[_0x74a0('0x1a')]+_0x587d80[_0x74a0('0x1d')];var _0x1cf37b;if(_0x48cf1d>=_0x39ccbd){_0x48cf1d=_0x39ccbd;_0x1cf37b=0xc8;}else{_0x1cf37b=0xce;}_0x3d8296[_0x74a0('0x17')](_0x1cf37b);return _0x3d8296[_0x74a0('0x1e')](_0x74a0('0x1f'),_0x1ed33d+'-'+_0x48cf1d+'/'+_0x39ccbd)['json'](_0x6fbdd9);}return null;};}function patchUpdates(_0x13dfb1){return function(_0x3718a3){try{jsonpatch[_0x74a0('0x20')](_0x3718a3,_0x13dfb1,!![]);}catch(_0x26af9e){return BPromise[_0x74a0('0x21')](_0x26af9e);}return _0x3718a3[_0x74a0('0x22')]();};}function saveUpdates(_0x2abe3e,_0x47165b){return function(_0x5a858a){if(_0x5a858a){return _0x5a858a[_0x74a0('0x23')](_0x2abe3e)[_0x74a0('0x24')](function(_0x647b36){return _0x647b36;});}return null;};}function removeEntity(_0x4797a9,_0x36387a){return function(_0x106ece){if(_0x106ece){return _0x106ece[_0x74a0('0x25')]()[_0x74a0('0x24')](function(){var _0x1b521f=_0x106ece[_0x74a0('0x26')]({'plain':!![]});var _0x1a5f44=_0x74a0('0x27');return db['UserProfileResource'][_0x74a0('0x25')]({'where':{'type':_0x1a5f44,'resourceId':_0x1b521f['id']}})[_0x74a0('0x24')](function(){return _0x106ece;});})[_0x74a0('0x24')](function(){_0x4797a9[_0x74a0('0x17')](0xcc)[_0x74a0('0x18')]();});}};}function handleEntityNotFound(_0x4ad79b,_0x2459f0){return function(_0x41b298){if(!_0x41b298){_0x4ad79b[_0x74a0('0x28')](0x194);}return _0x41b298;};}function handleError(_0x24135f,_0x32b0bf){_0x32b0bf=_0x32b0bf||0x1f4;return function(_0x33a8bf){logger[_0x74a0('0x29')](_0x33a8bf[_0x74a0('0x2a')]);if(_0x33a8bf[_0x74a0('0x2b')]){delete _0x33a8bf[_0x74a0('0x2b')];}_0x24135f[_0x74a0('0x17')](_0x32b0bf)['send'](_0x33a8bf);};}exports[_0x74a0('0x2c')]=function(_0x949f81,_0x5e73f2){var _0x40d964={},_0x5ab8c5={},_0x37a975={'count':0x0,'rows':[]};var _0x29704b=_[_0x74a0('0x2d')](db[_0x74a0('0x2e')][_0x74a0('0x2f')],function(_0x365495){return{'name':_0x365495['fieldName'],'type':_0x365495[_0x74a0('0x30')][_0x74a0('0x31')]};});_0x5ab8c5[_0x74a0('0x32')]=_[_0x74a0('0x2d')](_0x29704b,_0x74a0('0x2b'));_0x5ab8c5[_0x74a0('0x33')]=_[_0x74a0('0x34')](_0x949f81[_0x74a0('0x33')]);_0x5ab8c5[_0x74a0('0x35')]=_[_0x74a0('0x36')](_0x5ab8c5[_0x74a0('0x32')],_0x5ab8c5[_0x74a0('0x33')]);_0x40d964[_0x74a0('0x37')]=_[_0x74a0('0x36')](_0x5ab8c5[_0x74a0('0x32')],qs['fields'](_0x949f81['query'][_0x74a0('0x38')]));_0x40d964[_0x74a0('0x37')]=_0x40d964['attributes']['length']?_0x40d964['attributes']:_0x5ab8c5['model'];if(!_0x949f81[_0x74a0('0x33')][_0x74a0('0x39')](_0x74a0('0x3a'))){_0x40d964['limit']=qs[_0x74a0('0x1d')](_0x949f81[_0x74a0('0x33')][_0x74a0('0x1d')]);_0x40d964[_0x74a0('0x1a')]=qs[_0x74a0('0x1a')](_0x949f81['query'][_0x74a0('0x1a')]);}_0x40d964[_0x74a0('0x3b')]=qs['sort'](_0x949f81['query'][_0x74a0('0x3c')]);_0x40d964[_0x74a0('0x3d')]=qs[_0x74a0('0x35')](_[_0x74a0('0x3e')](_0x949f81['query'],_0x5ab8c5[_0x74a0('0x35')]),_0x29704b);if(_0x949f81[_0x74a0('0x33')][_0x74a0('0x3f')]){_0x40d964[_0x74a0('0x3d')]=_[_0x74a0('0x40')](_0x40d964[_0x74a0('0x3d')],{'$or':_['map'](_0x29704b,function(_0x4148b3){if(_0x4148b3[_0x74a0('0x30')]!=='VIRTUAL'){var _0x2878a4={};_0x2878a4[_0x4148b3[_0x74a0('0x2b')]]={'$like':'%'+_0x949f81[_0x74a0('0x33')][_0x74a0('0x3f')]+'%'};return _0x2878a4;}})});}_0x40d964=_[_0x74a0('0x40')]({},_0x40d964,_0x949f81['options']);var _0x4173a7={'where':_0x40d964[_0x74a0('0x3d')]};return db[_0x74a0('0x2e')][_0x74a0('0x1c')](_0x4173a7)[_0x74a0('0x24')](function(_0x13fb1a){_0x37a975[_0x74a0('0x1c')]=_0x13fb1a;if(_0x949f81[_0x74a0('0x33')][_0x74a0('0x41')]){_0x40d964[_0x74a0('0x42')]=[{'all':!![]}];}return db[_0x74a0('0x2e')][_0x74a0('0x43')](_0x40d964);})[_0x74a0('0x24')](function(_0x3ddaab){_0x37a975[_0x74a0('0x44')]=_0x3ddaab;return _0x37a975;})[_0x74a0('0x24')](respondWithFilteredResult(_0x5e73f2,_0x40d964))[_0x74a0('0x45')](handleError(_0x5e73f2,null));};exports[_0x74a0('0x46')]=function(_0x54f5cf,_0x384309){var _0x5b48a0={'raw':![],'where':{'id':_0x54f5cf[_0x74a0('0x47')]['id']}},_0x3222e9={};_0x3222e9[_0x74a0('0x32')]=_[_0x74a0('0x34')](db[_0x74a0('0x2e')][_0x74a0('0x2f')]);_0x3222e9[_0x74a0('0x33')]=_[_0x74a0('0x34')](_0x54f5cf['query']);_0x3222e9[_0x74a0('0x35')]=_['intersection'](_0x3222e9[_0x74a0('0x32')],_0x3222e9['query']);_0x5b48a0[_0x74a0('0x37')]=_[_0x74a0('0x36')](_0x3222e9[_0x74a0('0x32')],qs['fields'](_0x54f5cf['query']['fields']));_0x5b48a0['attributes']=_0x5b48a0[_0x74a0('0x37')][_0x74a0('0x48')]?_0x5b48a0[_0x74a0('0x37')]:_0x3222e9[_0x74a0('0x32')];if(_0x54f5cf[_0x74a0('0x33')][_0x74a0('0x41')]){_0x5b48a0['include']=[{'all':!![]}];}_0x5b48a0=_[_0x74a0('0x40')]({},_0x5b48a0,_0x54f5cf['options']);return db[_0x74a0('0x2e')][_0x74a0('0x49')](_0x5b48a0)[_0x74a0('0x24')](handleEntityNotFound(_0x384309,null))[_0x74a0('0x24')](respondWithResult(_0x384309,null))['catch'](handleError(_0x384309,null));};exports['create']=function(_0x2060d0,_0x5e84db){return db[_0x74a0('0x2e')][_0x74a0('0x4a')](_0x2060d0[_0x74a0('0x4b')],{})['then'](function(_0x375aaf){var _0x26487a=_0x2060d0[_0x74a0('0x4c')][_0x74a0('0x26')]({'plain':!![]});if(!_0x26487a)throw new Error(_0x74a0('0x4d'));if(_0x26487a[_0x74a0('0x4e')]===_0x74a0('0x4c')){var _0x59e21d=_0x375aaf[_0x74a0('0x26')]({'plain':!![]});var _0x25f3b0=_0x74a0('0x4f');return db['UserProfileSection']['find']({'where':{'name':_0x25f3b0,'userProfileId':_0x26487a[_0x74a0('0x50')]},'raw':!![]})['then'](function(_0x14aa3e){if(_0x14aa3e&&_0x14aa3e[_0x74a0('0x51')]===0x0){return db[_0x74a0('0x52')][_0x74a0('0x4a')]({'name':_0x59e21d[_0x74a0('0x2b')],'resourceId':_0x59e21d['id'],'type':'CustomReports','sectionId':_0x14aa3e['id']},{})[_0x74a0('0x24')](function(){return _0x375aaf;});}else{return _0x375aaf;}})['catch'](function(_0x2d665b){logger['error'](_0x74a0('0x53'),_0x2d665b);throw _0x2d665b;});}return _0x375aaf;})[_0x74a0('0x24')](respondWithResult(_0x5e84db,0xc9))[_0x74a0('0x45')](handleError(_0x5e84db,null));};exports[_0x74a0('0x23')]=function(_0x20a61e,_0x275fe1){if(_0x20a61e['body']['id']){delete _0x20a61e['body']['id'];}return db[_0x74a0('0x2e')][_0x74a0('0x49')]({'where':{'id':_0x20a61e['params']['id']}})[_0x74a0('0x24')](handleEntityNotFound(_0x275fe1,null))[_0x74a0('0x24')](saveUpdates(_0x20a61e[_0x74a0('0x4b')],null))[_0x74a0('0x24')](respondWithResult(_0x275fe1,null))['catch'](handleError(_0x275fe1,null));};exports[_0x74a0('0x25')]=function(_0x19fe8e,_0x14a49c){return db[_0x74a0('0x2e')][_0x74a0('0x49')]({'where':{'id':_0x19fe8e['params']['id']}})[_0x74a0('0x24')](handleEntityNotFound(_0x14a49c,null))[_0x74a0('0x24')](removeEntity(_0x14a49c,null))[_0x74a0('0x45')](handleError(_0x14a49c,null));};exports['preview']=function(_0x4bec31,_0x3e5c73){var _0x1f05da=0xa;var _0x24a1ae=[_0x74a0('0x54'),'left_join',_0x74a0('0x55'),'cross_join'];var _0x2948ce={'SUM':_0x74a0('0x56'),'COUNT':_0x74a0('0x57'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x74a0('0x58'),'MIN':_0x74a0('0x59'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x371c02={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x74a0('0x5a'),'HOUR':_0x74a0('0x5b'),'ROUND':_0x74a0('0x5c'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x459c11=function(_0x17dca0){return!_['includes']([_0x74a0('0x5d'),_0x74a0('0x5e'),_0x74a0('0x5f'),'IS\x20NOT\x20EMPTY'],_0x17dca0);};var _0x270b73=function(_0x3c1199){if(!_0x3c1199||!_0x3c1199['rules'][_0x74a0('0x48')]){return'';}for(var _0x33facc='(',_0x5ea079=0x0;_0x5ea079<_0x3c1199[_0x74a0('0x60')]['length'];_0x5ea079+=0x1){_0x5ea079>0x0&&(_0x33facc+='\x20'+_0x3c1199[_0x74a0('0x61')]+'\x20');_0x33facc+=_0x3c1199[_0x74a0('0x60')][_0x5ea079][_0x74a0('0x62')]?_0x270b73(_0x3c1199['rules'][_0x5ea079][_0x74a0('0x62')]):_0x3c1199['rules'][_0x5ea079][_0x74a0('0x63')]+'\x20'+_0x3c1199['rules'][_0x5ea079][_0x74a0('0x64')]+(_0x459c11(_0x3c1199[_0x74a0('0x60')][_0x5ea079][_0x74a0('0x64')])?'\x20'+_0x3c1199[_0x74a0('0x60')][_0x5ea079][_0x74a0('0x65')]:'');}return _0x33facc+')';};var _0x53c6b5={'where':{'id':_0x4bec31[_0x74a0('0x47')]['id']}},_0x25c726,_0xfffdd,_0x1ecd40,_0x4c962a,_0x3cd5df;_0x53c6b5=_[_0x74a0('0x40')]({},_0x53c6b5,_0x4bec31[_0x74a0('0x66')]);return db['AnalyticCustomReport'][_0x74a0('0x49')](_0x53c6b5)[_0x74a0('0x24')](function(_0x448b65){if(_0x448b65){_0x25c726=_0x448b65;return _0x448b65['getFields']();}return null;})['then'](function(_0x49af7b){if(_0x49af7b){if(!_0x49af7b[_0x74a0('0x48')]){throw new db[(_0x74a0('0x67'))][(_0x74a0('0x68'))](_0x74a0('0x69'),0x193);}_0xfffdd=_0x49af7b;return db[_0x74a0('0x6a')][_0x74a0('0x43')]({'raw':!![]});}return null;})[_0x74a0('0x24')](function(_0xafd82f){if(_0xafd82f){_0x1ecd40=_[_0x74a0('0x6b')](_0xafd82f,'id');var _0x5a0843;var _0x1012fa=squel[_0x74a0('0x6c')]();_0x1012fa['from'](_0x25c726[_0x74a0('0x6d')]);for(var _0x49c535=0x0;_0x49c535<_0xfffdd[_0x74a0('0x48')];_0x49c535+=0x1){_0x5a0843=_0xfffdd[_0x49c535]['MetricId']?_0x1ecd40[_0xfffdd[_0x49c535][_0x74a0('0x6e')]][_0x74a0('0x6f')]:_0xfffdd[_0x49c535][_0x74a0('0x63')];_0x5a0843=_0xfffdd[_0x49c535][_0x74a0('0x70')]?_['replace'](_0x2948ce[_0xfffdd[_0x49c535][_0x74a0('0x70')]],'%s',_0x5a0843):_0x5a0843;_0x5a0843=_0xfffdd[_0x49c535][_0x74a0('0x71')]?_[_0x74a0('0x72')](_0x371c02[_0xfffdd[_0x49c535][_0x74a0('0x71')]],'%s',_0x5a0843):_0x5a0843;if(_0xfffdd[_0x49c535][_0x74a0('0x73')]){_0x1012fa['group'](_0x5a0843);}_0xfffdd[_0x49c535][_0x74a0('0x74')]&&_0x1012fa['order'](_0x5a0843,_0xfffdd[_0x49c535][_0x74a0('0x74')]===_0x74a0('0x75')?![]:!![]);_0x1012fa['field'](_0x5a0843,_0xfffdd[_0x49c535][_0x74a0('0x76')]||_0x5a0843);}if(_0x25c726[_0x74a0('0x77')]){_0x25c726[_0x74a0('0x77')]=JSON[_0x74a0('0x78')](_0x25c726[_0x74a0('0x77')]);for(var _0xcc9342=0x0;_0xcc9342<_0x25c726['joins']['length'];_0xcc9342+=0x1){if(_0x25c726[_0x74a0('0x77')][_0xcc9342][_0x74a0('0x30')]&&_[_0x74a0('0x79')](_0x24a1ae,_0x25c726['joins'][_0xcc9342][_0x74a0('0x30')])&&_0x25c726[_0x74a0('0x77')][_0xcc9342][_0x74a0('0x7a')]&&_0x25c726[_0x74a0('0x77')][_0xcc9342][_0x74a0('0x7b')]&&_0x25c726['joins'][_0xcc9342]['foreignKey']){_0x1012fa[_0x25c726[_0x74a0('0x77')][_0xcc9342][_0x74a0('0x30')]](_0x25c726[_0x74a0('0x77')][_0xcc9342][_0x74a0('0x7b')],null,util[_0x74a0('0x71')](_0x74a0('0x7c'),_0x25c726['table'],_0x25c726[_0x74a0('0x77')][_0xcc9342][_0x74a0('0x7a')],_0x25c726[_0x74a0('0x77')][_0xcc9342][_0x74a0('0x7b')],_0x25c726[_0x74a0('0x77')][_0xcc9342][_0x74a0('0x7d')]));}}}if(_0x25c726[_0x74a0('0x7e')]){_0x25c726[_0x74a0('0x7e')]=JSON[_0x74a0('0x78')](_0x25c726[_0x74a0('0x7e')]);_0x1012fa[_0x74a0('0x3d')](_0x270b73(_0x25c726[_0x74a0('0x7e')]['group']));}_0x3cd5df=_0x1012fa[_0x74a0('0x7f')]();_0x1012fa['limit'](_0x1f05da);_0x1012fa[_0x74a0('0x1a')](0x0);logger[_0x74a0('0x80')](_0x74a0('0x81'),_0x1012fa[_0x74a0('0x82')]());return dbH['sequelize'][_0x74a0('0x33')](_0x1012fa[_0x74a0('0x82')](),{'type':dbH[_0x74a0('0x83')][_0x74a0('0x84')][_0x74a0('0x85')]});}})[_0x74a0('0x24')](respondWithResult(_0x3e5c73,null))['catch'](handleError(_0x3e5c73,null));};function runReport(_0x5397a7,_0x840718,_0x403db3){var _0x4fe5a2=_0x840718[_0x74a0('0x2b')];var _0x5cf91b=0xa;var _0xb562f=[_0x74a0('0x54'),_0x74a0('0x86'),_0x74a0('0x55'),_0x74a0('0x87')];var _0x5532dd={'SUM':'SUM(%s)','COUNT':_0x74a0('0x57'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x74a0('0x59'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x74a0('0x88'),'GROUP_CONCAT ASC':_0x74a0('0x89'),'GROUP_CONCAT DESC':_0x74a0('0x8a')};var _0x4822bc={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x74a0('0x5a'),'HOUR':_0x74a0('0x5b'),'ROUND':_0x74a0('0x5c'),'UNIX_TIMESTAMP':_0x74a0('0x8b')};var _0x4b93e1=function(_0x1e5b27){return!_[_0x74a0('0x79')]([_0x74a0('0x5d'),_0x74a0('0x5e'),'IS\x20EMPTY',_0x74a0('0x8c')],_0x1e5b27);};var _0x11c1ef=function(_0x1761bd){if(!_0x1761bd||!_0x1761bd['rules'][_0x74a0('0x48')]){return'';}for(var _0x520805='(',_0x141236=0x0;_0x141236<_0x1761bd['rules'][_0x74a0('0x48')];_0x141236+=0x1){_0x141236>0x0&&(_0x520805+='\x20'+_0x1761bd['operator']+'\x20');_0x520805+=_0x1761bd[_0x74a0('0x60')][_0x141236][_0x74a0('0x62')]?_0x11c1ef(_0x1761bd[_0x74a0('0x60')][_0x141236][_0x74a0('0x62')]):_0x1761bd[_0x74a0('0x60')][_0x141236]['field']+'\x20'+_0x1761bd['rules'][_0x141236][_0x74a0('0x64')]+(_0x4b93e1(_0x1761bd[_0x74a0('0x60')][_0x141236][_0x74a0('0x64')])?'\x20'+_0x1761bd['rules'][_0x141236][_0x74a0('0x65')]:'');}return _0x520805+')';};var _0x3d9dba={'where':{'id':_0x5397a7['id']}},_0x236b89,_0x10e67f,_0x516309,_0x1240e0,_0x2ccb91;_0x3d9dba=_[_0x74a0('0x40')]({},_0x3d9dba,_0x403db3);return db[_0x74a0('0x2e')][_0x74a0('0x49')](_0x3d9dba)[_0x74a0('0x24')](function(_0x3f3a85){if(_0x3f3a85){_0x236b89=_0x3f3a85;return _0x3f3a85['getFields']();}return null;})[_0x74a0('0x24')](function(_0x2051ed){if(_0x2051ed){if(!_0x2051ed['length']){throw new db[(_0x74a0('0x67'))][(_0x74a0('0x68'))](_0x74a0('0x69'),0x193);}_0x10e67f=_0x2051ed;return db[_0x74a0('0x6a')]['findAll']({'raw':!![]});}return null;})[_0x74a0('0x24')](function(_0x317911){if(_0x317911){_0x516309=_[_0x74a0('0x6b')](_0x317911,'id');var _0x570bc0;var _0x5597bf=squel['select']();_0x5597bf[_0x74a0('0x8d')](_0x236b89[_0x74a0('0x6d')]);for(var _0x58635d=0x0;_0x58635d<_0x10e67f[_0x74a0('0x48')];_0x58635d+=0x1){_0x570bc0=_0x10e67f[_0x58635d]['MetricId']?_0x516309[_0x10e67f[_0x58635d]['MetricId']][_0x74a0('0x6f')]:_0x10e67f[_0x58635d][_0x74a0('0x63')];_0x570bc0=_0x10e67f[_0x58635d]['function']?_[_0x74a0('0x72')](_0x5532dd[_0x10e67f[_0x58635d][_0x74a0('0x70')]],'%s',_0x570bc0):_0x570bc0;_0x570bc0=_0x10e67f[_0x58635d][_0x74a0('0x71')]?_['replace'](_0x4822bc[_0x10e67f[_0x58635d][_0x74a0('0x71')]],'%s',_0x570bc0):_0x570bc0;if(_0x10e67f[_0x58635d]['groupBy']){_0x5597bf[_0x74a0('0x62')](_0x570bc0);}_0x10e67f[_0x58635d][_0x74a0('0x74')]&&_0x5597bf[_0x74a0('0x3b')](_0x570bc0,_0x10e67f[_0x58635d]['orderBy']===_0x74a0('0x75')?![]:!![]);_0x5597bf['field'](_0x570bc0,_0x10e67f[_0x58635d]['alias']||_0x570bc0);}if(_0x236b89['joins']){_0x236b89[_0x74a0('0x77')]=JSON[_0x74a0('0x78')](_0x236b89[_0x74a0('0x77')]);for(var _0x3cb020=0x0;_0x3cb020<_0x236b89[_0x74a0('0x77')][_0x74a0('0x48')];_0x3cb020+=0x1){if(_0x236b89['joins'][_0x3cb020][_0x74a0('0x30')]&&_[_0x74a0('0x79')](_0xb562f,_0x236b89[_0x74a0('0x77')][_0x3cb020]['type'])&&_0x236b89[_0x74a0('0x77')][_0x3cb020][_0x74a0('0x7a')]&&_0x236b89[_0x74a0('0x77')][_0x3cb020]['foreignTable']&&_0x236b89['joins'][_0x3cb020][_0x74a0('0x7d')]){_0x5597bf[_0x236b89[_0x74a0('0x77')][_0x3cb020][_0x74a0('0x30')]](_0x236b89[_0x74a0('0x77')][_0x3cb020][_0x74a0('0x7b')],null,util[_0x74a0('0x71')]('%s.%s\x20=\x20%s.%s',_0x236b89[_0x74a0('0x6d')],_0x236b89[_0x74a0('0x77')][_0x3cb020][_0x74a0('0x7a')],_0x236b89[_0x74a0('0x77')][_0x3cb020][_0x74a0('0x7b')],_0x236b89[_0x74a0('0x77')][_0x3cb020][_0x74a0('0x7d')]));}}}if(_0x236b89[_0x74a0('0x7e')]){_0x236b89['conditions']=JSON[_0x74a0('0x78')](_0x236b89['conditions']);_0x5597bf[_0x74a0('0x3d')](_0x11c1ef(_0x236b89['conditions'][_0x74a0('0x62')]));}_0x2ccb91=_0x5597bf['clone']();_0x5597bf[_0x74a0('0x1d')](_0x5cf91b);_0x5597bf[_0x74a0('0x1a')](0x0);return;}})[_0x74a0('0x24')](function(){if(_0x840718[_0x74a0('0x8e')]===_0x74a0('0x8f')){return null;}var _0xcf7d83=_[_0x74a0('0x40')](_0x840718,{'name':_0x840718[_0x74a0('0x90')]||_0x840718[_0x74a0('0x2b')]||_0x236b89['name'],'basename':_0x4fe5a2,'savename':util[_0x74a0('0x71')](_0x74a0('0x91'),_0x840718[_0x74a0('0x2b')]||_0x236b89[_0x74a0('0x2b')],require('randomstring')[_0x74a0('0x92')](0x4),_0x840718['output']||_0x74a0('0x93')),'reportId':_0x236b89['id'],'reportType':_0x74a0('0x94')});return db['AnalyticExtractedReport'][_0x74a0('0x4a')](_0xcf7d83,{'raw':!![]});})[_0x74a0('0x24')](function(_0x281827){if(_0x236b89[_0x74a0('0x6d')]===_0x74a0('0x95')){_0x2ccb91[_0x74a0('0x3d')](_0x236b89['table']+_0x74a0('0x96'),_0x840718['startDate'],_0x840718[_0x74a0('0x97')]);}else{_0x2ccb91[_0x74a0('0x3d')](_0x236b89['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x840718[_0x74a0('0x98')],_0x840718[_0x74a0('0x97')]);}if(_0x281827){logger['info'](_0x74a0('0x99'),_0x2ccb91[_0x74a0('0x82')]());require(_0x74a0('0x9a'))[_0x74a0('0x9b')](path['join'](__dirname,_0x74a0('0x9c'),_0x281827[_0x74a0('0x8e')]),[_0x281827['id'],_0x2ccb91['toString'](),path[_0x74a0('0x54')](__dirname,_0x74a0('0x9d'),_0x281827[_0x74a0('0x9e')]),_0x4fe5a2]);return _0x281827;}else{var _0x502a20=squel[_0x74a0('0x6c')]();_0x502a20['from']('('+_0x2ccb91[_0x74a0('0x82')]()+')',_0x74a0('0x9f'));_0x502a20['field'](_0x74a0('0xa0'),_0x74a0('0x1c'));_0x2ccb91[_0x74a0('0x1d')](_0x840718[_0x74a0('0x1d')]||_0x5cf91b);_0x2ccb91['offset'](_0x840718['offset']||0x0);return dbH[_0x74a0('0x83')][_0x74a0('0x33')](_0x502a20[_0x74a0('0x82')](),{'type':dbH[_0x74a0('0x83')][_0x74a0('0x84')][_0x74a0('0x85')]})[_0x74a0('0x24')](function(_0x4b914f){if(!_0x4b914f[_0x74a0('0x48')]){_0x1240e0=0x0;}else{_0x1240e0=_0x4b914f[0x0][_0x74a0('0x1c')]||0x0;}return dbH['sequelize'][_0x74a0('0x33')](_0x2ccb91['toString'](),{'type':dbH[_0x74a0('0x83')]['QueryTypes']['SELECT']});})[_0x74a0('0x24')](function(_0x40a97a){return{'rows':_0x40a97a||[],'count':_0x1240e0};});}});}exports[_0x74a0('0xa1')]=function(_0x24fe50,_0x3808f3){return runReport(_0x24fe50[_0x74a0('0x47')],_0x24fe50[_0x74a0('0x33')],_0x24fe50['options'])['then'](respondWithResult(_0x3808f3,null))['catch'](handleError(_0x3808f3,null));};exports[_0x74a0('0xa2')]=runReport;exports[_0x74a0('0x33')]=function(_0x5d6585,_0x2b28ec){var _0xa59baa=0xa;var _0x25b58c=['join',_0x74a0('0x86'),_0x74a0('0x55'),_0x74a0('0x87')];var _0x45aebd={'SUM':_0x74a0('0x56'),'COUNT':_0x74a0('0x57'),'COUNT DISTINCT':_0x74a0('0xa3'),'MAX':_0x74a0('0x58'),'MIN':_0x74a0('0x59'),'AVG':_0x74a0('0xa4'),'GROUP_CONCAT':_0x74a0('0x88'),'GROUP_CONCAT ASC':_0x74a0('0x89'),'GROUP_CONCAT DESC':_0x74a0('0x8a')};var _0x484fcf={'SEC_TO_TIME':_0x74a0('0xa5'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x74a0('0x8b')};var _0x4cab23=function(_0x4952a8){return!_[_0x74a0('0x79')](['IS\x20NULL',_0x74a0('0x5e'),_0x74a0('0x5f'),'IS\x20NOT\x20EMPTY'],_0x4952a8);};var _0x383624=function(_0x587771){if(!_0x587771||!_0x587771[_0x74a0('0x60')][_0x74a0('0x48')]){return'';}for(var _0x1ae48b='(',_0x12c387=0x0;_0x12c387<_0x587771['rules'][_0x74a0('0x48')];_0x12c387+=0x1){_0x12c387>0x0&&(_0x1ae48b+='\x20'+_0x587771['operator']+'\x20');_0x1ae48b+=_0x587771[_0x74a0('0x60')][_0x12c387][_0x74a0('0x62')]?_0x383624(_0x587771[_0x74a0('0x60')][_0x12c387][_0x74a0('0x62')]):_0x587771[_0x74a0('0x60')][_0x12c387][_0x74a0('0x63')]+'\x20'+_0x587771[_0x74a0('0x60')][_0x12c387][_0x74a0('0x64')]+(_0x4cab23(_0x587771[_0x74a0('0x60')][_0x12c387]['condition'])?'\x20'+_0x587771[_0x74a0('0x60')][_0x12c387][_0x74a0('0x65')]:'');}return _0x1ae48b+')';};var _0x208861={'where':{'id':_0x5d6585['params']['id']}},_0xf995b2,_0x11f0f4,_0x4d428b,_0x28b645,_0x183657;_0x208861=_['merge']({},_0x208861,_0x5d6585[_0x74a0('0x66')]);return db[_0x74a0('0x2e')][_0x74a0('0x49')](_0x208861)[_0x74a0('0x24')](function(_0x4a2635){if(_0x4a2635){_0xf995b2=_0x4a2635;return _0x4a2635[_0x74a0('0xa6')]();}return null;})[_0x74a0('0x24')](function(_0x2fc16d){if(_0x2fc16d){if(!_0x2fc16d[_0x74a0('0x48')]){throw new db[(_0x74a0('0x67'))]['ValidationErrorItem'](_0x74a0('0x69'),0x193);}_0x11f0f4=_0x2fc16d;return db[_0x74a0('0x6a')][_0x74a0('0x43')]({'raw':!![]});}return null;})[_0x74a0('0x24')](function(_0x296309){if(_0x296309){_0x4d428b=_[_0x74a0('0x6b')](_0x296309,'id');var _0x550cba;var _0x4437fe=squel[_0x74a0('0x6c')]();_0x4437fe[_0x74a0('0x8d')](_0xf995b2[_0x74a0('0x6d')]);for(var _0x1ff84a=0x0;_0x1ff84a<_0x11f0f4['length'];_0x1ff84a+=0x1){_0x550cba=_0x11f0f4[_0x1ff84a][_0x74a0('0x6e')]?_0x4d428b[_0x11f0f4[_0x1ff84a]['MetricId']][_0x74a0('0x6f')]:_0x11f0f4[_0x1ff84a]['field'];_0x550cba=_0x11f0f4[_0x1ff84a]['function']?_[_0x74a0('0x72')](_0x45aebd[_0x11f0f4[_0x1ff84a]['function']],'%s',_0x550cba):_0x550cba;_0x550cba=_0x11f0f4[_0x1ff84a]['format']?_['replace'](_0x484fcf[_0x11f0f4[_0x1ff84a][_0x74a0('0x71')]],'%s',_0x550cba):_0x550cba;if(_0x11f0f4[_0x1ff84a]['groupBy']){_0x4437fe[_0x74a0('0x62')](_0x550cba);}_0x11f0f4[_0x1ff84a][_0x74a0('0x74')]&&_0x4437fe[_0x74a0('0x3b')](_0x550cba,_0x11f0f4[_0x1ff84a][_0x74a0('0x74')]===_0x74a0('0x75')?![]:!![]);_0x4437fe[_0x74a0('0x63')](_0x550cba,_0x11f0f4[_0x1ff84a][_0x74a0('0x76')]||_0x550cba);}if(_0xf995b2['joins']){_0xf995b2[_0x74a0('0x77')]=JSON[_0x74a0('0x78')](_0xf995b2[_0x74a0('0x77')]);for(var _0xc9331a=0x0;_0xc9331a<_0xf995b2[_0x74a0('0x77')][_0x74a0('0x48')];_0xc9331a+=0x1){if(_0xf995b2['joins'][_0xc9331a][_0x74a0('0x30')]&&_[_0x74a0('0x79')](_0x25b58c,_0xf995b2[_0x74a0('0x77')][_0xc9331a][_0x74a0('0x30')])&&_0xf995b2[_0x74a0('0x77')][_0xc9331a][_0x74a0('0x7a')]&&_0xf995b2['joins'][_0xc9331a][_0x74a0('0x7b')]&&_0xf995b2[_0x74a0('0x77')][_0xc9331a][_0x74a0('0x7d')]){_0x4437fe[_0xf995b2['joins'][_0xc9331a]['type']](_0xf995b2['joins'][_0xc9331a][_0x74a0('0x7b')],null,util['format'](_0x74a0('0x7c'),_0xf995b2[_0x74a0('0x6d')],_0xf995b2[_0x74a0('0x77')][_0xc9331a][_0x74a0('0x7a')],_0xf995b2[_0x74a0('0x77')][_0xc9331a][_0x74a0('0x7b')],_0xf995b2[_0x74a0('0x77')][_0xc9331a][_0x74a0('0x7d')]));}}}if(_0xf995b2[_0x74a0('0x7e')]){_0xf995b2['conditions']=JSON[_0x74a0('0x78')](_0xf995b2[_0x74a0('0x7e')]);_0x4437fe[_0x74a0('0x3d')](_0x383624(_0xf995b2[_0x74a0('0x7e')][_0x74a0('0x62')]));}_0x183657=_0x4437fe[_0x74a0('0x7f')]();_0x4437fe['limit'](_0xa59baa);_0x4437fe['offset'](0x0);logger[_0x74a0('0x80')]('Limited\x20Query:',_0x4437fe[_0x74a0('0x82')]());return dbH['sequelize']['query'](_0x4437fe[_0x74a0('0x82')](),{'type':dbH[_0x74a0('0x83')][_0x74a0('0x84')][_0x74a0('0x85')]});}})[_0x74a0('0x24')](function(){return{'sql':_0x183657['toString']()};})['then'](respondWithResult(_0x2b28ec,null))[_0x74a0('0x45')](handleError(_0x2b28ec,null));};