Built motion from commit da617fac.|2.6.6
[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 _0x29ae=['rules','operator','group','field','condition','value','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','debug','Limited\x20Query:','toString','sequelize','SELECT','SUM(%s)','ROUND(%s)','ValidationErrorItem','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','../../components/export/','countTable','COUNT(*)','QueryTypes','run','runReport','left_join','MAX(%s)','DESC','clone','rimraf','moment','bluebird','mustache','util','path','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','then','destroy','get','CustomReports','stack','name','send','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','keys','filters','intersection','model','query','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','rows','catch','show','params','include','options','find','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','preview','join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%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)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0x29ae,0x17e));var _0xe29a=function(_0x2da9fb,_0x3af2d0){_0x2da9fb=_0x2da9fb-0x0;var _0x5345a5=_0x29ae[_0x2da9fb];return _0x5345a5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe29a('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xe29a('0x1'));var BPromise=require(_0xe29a('0x2'));var Mustache=require(_0xe29a('0x3'));var util=require(_0xe29a('0x4'));var path=require(_0xe29a('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe29a('0x6'));var squel=require(_0xe29a('0x7'));var crypto=require(_0xe29a('0x8'));var jsforce=require(_0xe29a('0x9'));var deskjs=require(_0xe29a('0xa'));var toCsv=require(_0xe29a('0xb'));var querystring=require(_0xe29a('0xc'));var Papa=require(_0xe29a('0xd'));var Redis=require(_0xe29a('0xe'));var authService=require(_0xe29a('0xf'));var qs=require(_0xe29a('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe29a('0x11'));var logger=require('../../config/logger')(_0xe29a('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xe29a('0x13'));var db=require(_0xe29a('0x14'))['db'];var dbH=require('../../mysqldb')[_0xe29a('0x15')];function respondWithStatusCode(_0x356e36,_0x599402){_0x599402=_0x599402||0xcc;return function(_0x5993de){if(_0x5993de){return _0x356e36[_0xe29a('0x16')](_0x599402);}return _0x356e36[_0xe29a('0x17')](_0x599402)[_0xe29a('0x18')]();};}function respondWithResult(_0x4d7a36,_0x2d609a){_0x2d609a=_0x2d609a||0xc8;return function(_0xbb8ab2){if(_0xbb8ab2){return _0x4d7a36[_0xe29a('0x17')](_0x2d609a)['json'](_0xbb8ab2);}};}function respondWithFilteredResult(_0x4599c2,_0x89a241){return function(_0x1a527d){if(_0x1a527d){var _0x3d178f=typeof _0x89a241['offset']===_0xe29a('0x19')&&typeof _0x89a241[_0xe29a('0x1a')]===_0xe29a('0x19');var _0x3fb2fe=_0x1a527d[_0xe29a('0x1b')];var _0x3a8d25=_0x3d178f?0x0:_0x89a241[_0xe29a('0x1c')];var _0x2ef75a=_0x3d178f?_0x1a527d['count']:_0x89a241['offset']+_0x89a241[_0xe29a('0x1a')];var _0xfa844e;if(_0x2ef75a>=_0x3fb2fe){_0x2ef75a=_0x3fb2fe;_0xfa844e=0xc8;}else{_0xfa844e=0xce;}_0x4599c2[_0xe29a('0x17')](_0xfa844e);return _0x4599c2[_0xe29a('0x1d')](_0xe29a('0x1e'),_0x3a8d25+'-'+_0x2ef75a+'/'+_0x3fb2fe)[_0xe29a('0x1f')](_0x1a527d);}return null;};}function patchUpdates(_0x23b056){return function(_0x2a9b7a){try{jsonpatch[_0xe29a('0x20')](_0x2a9b7a,_0x23b056,!![]);}catch(_0x5288ce){return BPromise[_0xe29a('0x21')](_0x5288ce);}return _0x2a9b7a['save']();};}function saveUpdates(_0xeedbe1,_0x3d7571){return function(_0x31f5b6){if(_0x31f5b6){return _0x31f5b6['update'](_0xeedbe1)[_0xe29a('0x22')](function(_0x2a583b){return _0x2a583b;});}return null;};}function removeEntity(_0x47d4c8,_0x47cc5c){return function(_0x5201db){if(_0x5201db){return _0x5201db[_0xe29a('0x23')]()[_0xe29a('0x22')](function(){var _0x53649b=_0x5201db[_0xe29a('0x24')]({'plain':!![]});var _0x3b20bb=_0xe29a('0x25');return db['UserProfileResource'][_0xe29a('0x23')]({'where':{'type':_0x3b20bb,'resourceId':_0x53649b['id']}})[_0xe29a('0x22')](function(){return _0x5201db;});})[_0xe29a('0x22')](function(){_0x47d4c8[_0xe29a('0x17')](0xcc)[_0xe29a('0x18')]();});}};}function handleEntityNotFound(_0x5d1293,_0x28e550){return function(_0x5ec50f){if(!_0x5ec50f){_0x5d1293[_0xe29a('0x16')](0x194);}return _0x5ec50f;};}function handleError(_0x13a72f,_0x45a93d){_0x45a93d=_0x45a93d||0x1f4;return function(_0xeb7880){logger['error'](_0xeb7880[_0xe29a('0x26')]);if(_0xeb7880[_0xe29a('0x27')]){delete _0xeb7880['name'];}_0x13a72f[_0xe29a('0x17')](_0x45a93d)[_0xe29a('0x28')](_0xeb7880);};}exports['index']=function(_0x4fbfa1,_0x413ab7){var _0x39b30e={},_0x4c823c={},_0x28a740={'count':0x0,'rows':[]};var _0x3528c3=_[_0xe29a('0x29')](db[_0xe29a('0x2a')][_0xe29a('0x2b')],function(_0x299f4c){return{'name':_0x299f4c[_0xe29a('0x2c')],'type':_0x299f4c[_0xe29a('0x2d')][_0xe29a('0x2e')]};});_0x4c823c['model']=_[_0xe29a('0x29')](_0x3528c3,'name');_0x4c823c['query']=_[_0xe29a('0x2f')](_0x4fbfa1['query']);_0x4c823c[_0xe29a('0x30')]=_[_0xe29a('0x31')](_0x4c823c[_0xe29a('0x32')],_0x4c823c[_0xe29a('0x33')]);_0x39b30e[_0xe29a('0x34')]=_[_0xe29a('0x31')](_0x4c823c[_0xe29a('0x32')],qs[_0xe29a('0x35')](_0x4fbfa1['query']['fields']));_0x39b30e[_0xe29a('0x34')]=_0x39b30e[_0xe29a('0x34')][_0xe29a('0x36')]?_0x39b30e[_0xe29a('0x34')]:_0x4c823c[_0xe29a('0x32')];if(!_0x4fbfa1[_0xe29a('0x33')][_0xe29a('0x37')]('nolimit')){_0x39b30e[_0xe29a('0x1a')]=qs['limit'](_0x4fbfa1[_0xe29a('0x33')]['limit']);_0x39b30e[_0xe29a('0x1c')]=qs[_0xe29a('0x1c')](_0x4fbfa1[_0xe29a('0x33')][_0xe29a('0x1c')]);}_0x39b30e[_0xe29a('0x38')]=qs[_0xe29a('0x39')](_0x4fbfa1[_0xe29a('0x33')][_0xe29a('0x39')]);_0x39b30e[_0xe29a('0x3a')]=qs[_0xe29a('0x30')](_[_0xe29a('0x3b')](_0x4fbfa1[_0xe29a('0x33')],_0x4c823c[_0xe29a('0x30')]),_0x3528c3);if(_0x4fbfa1[_0xe29a('0x33')][_0xe29a('0x3c')]){_0x39b30e[_0xe29a('0x3a')]=_[_0xe29a('0x3d')](_0x39b30e[_0xe29a('0x3a')],{'$or':_[_0xe29a('0x29')](_0x3528c3,function(_0x2a68bc){if(_0x2a68bc[_0xe29a('0x2d')]!==_0xe29a('0x3e')){var _0xb8d229={};_0xb8d229[_0x2a68bc[_0xe29a('0x27')]]={'$like':'%'+_0x4fbfa1[_0xe29a('0x33')]['filter']+'%'};return _0xb8d229;}})});}_0x39b30e=_[_0xe29a('0x3d')]({},_0x39b30e,_0x4fbfa1['options']);var _0x5c8e86={'where':_0x39b30e[_0xe29a('0x3a')]};return db[_0xe29a('0x2a')]['count'](_0x5c8e86)[_0xe29a('0x22')](function(_0x47798e){_0x28a740[_0xe29a('0x1b')]=_0x47798e;if(_0x4fbfa1[_0xe29a('0x33')][_0xe29a('0x3f')]){_0x39b30e['include']=[{'all':!![]}];}return db[_0xe29a('0x2a')]['findAll'](_0x39b30e);})[_0xe29a('0x22')](function(_0x5bcfc0){_0x28a740[_0xe29a('0x40')]=_0x5bcfc0;return _0x28a740;})['then'](respondWithFilteredResult(_0x413ab7,_0x39b30e))[_0xe29a('0x41')](handleError(_0x413ab7,null));};exports[_0xe29a('0x42')]=function(_0x571664,_0x5e40d4){var _0x978afd={'raw':![],'where':{'id':_0x571664[_0xe29a('0x43')]['id']}},_0x460765={};_0x460765[_0xe29a('0x32')]=_[_0xe29a('0x2f')](db[_0xe29a('0x2a')][_0xe29a('0x2b')]);_0x460765[_0xe29a('0x33')]=_[_0xe29a('0x2f')](_0x571664[_0xe29a('0x33')]);_0x460765[_0xe29a('0x30')]=_[_0xe29a('0x31')](_0x460765['model'],_0x460765[_0xe29a('0x33')]);_0x978afd[_0xe29a('0x34')]=_[_0xe29a('0x31')](_0x460765[_0xe29a('0x32')],qs['fields'](_0x571664['query'][_0xe29a('0x35')]));_0x978afd[_0xe29a('0x34')]=_0x978afd[_0xe29a('0x34')][_0xe29a('0x36')]?_0x978afd['attributes']:_0x460765[_0xe29a('0x32')];if(_0x571664[_0xe29a('0x33')][_0xe29a('0x3f')]){_0x978afd[_0xe29a('0x44')]=[{'all':!![]}];}_0x978afd=_[_0xe29a('0x3d')]({},_0x978afd,_0x571664[_0xe29a('0x45')]);return db['AnalyticCustomReport'][_0xe29a('0x46')](_0x978afd)[_0xe29a('0x22')](handleEntityNotFound(_0x5e40d4,null))[_0xe29a('0x22')](respondWithResult(_0x5e40d4,null))[_0xe29a('0x41')](handleError(_0x5e40d4,null));};exports['create']=function(_0x502611,_0x2296c0){return db[_0xe29a('0x2a')]['create'](_0x502611[_0xe29a('0x47')],{})[_0xe29a('0x22')](function(_0x334233){var _0x35be4a=_0x502611[_0xe29a('0x48')][_0xe29a('0x24')]({'plain':!![]});if(!_0x35be4a)throw new Error(_0xe29a('0x49'));if(_0x35be4a[_0xe29a('0x4a')]===_0xe29a('0x48')){var _0xee339e=_0x334233['get']({'plain':!![]});var _0x49660f=_0xe29a('0x4b');return db['UserProfileSection'][_0xe29a('0x46')]({'where':{'name':_0x49660f,'userProfileId':_0x35be4a[_0xe29a('0x4c')]},'raw':!![]})[_0xe29a('0x22')](function(_0x4c2383){if(_0x4c2383&&_0x4c2383[_0xe29a('0x4d')]===0x0){return db['UserProfileResource'][_0xe29a('0x4e')]({'name':_0xee339e[_0xe29a('0x27')],'resourceId':_0xee339e['id'],'type':_0xe29a('0x25'),'sectionId':_0x4c2383['id']},{})['then'](function(){return _0x334233;});}else{return _0x334233;}})[_0xe29a('0x41')](function(_0x1f5c78){logger['error'](_0xe29a('0x4f'),_0x1f5c78);throw _0x1f5c78;});}return _0x334233;})[_0xe29a('0x22')](respondWithResult(_0x2296c0,0xc9))[_0xe29a('0x41')](handleError(_0x2296c0,null));};exports[_0xe29a('0x50')]=function(_0x2329ba,_0x41614a){if(_0x2329ba['body']['id']){delete _0x2329ba['body']['id'];}return db['AnalyticCustomReport'][_0xe29a('0x46')]({'where':{'id':_0x2329ba[_0xe29a('0x43')]['id']}})[_0xe29a('0x22')](handleEntityNotFound(_0x41614a,null))[_0xe29a('0x22')](saveUpdates(_0x2329ba[_0xe29a('0x47')],null))[_0xe29a('0x22')](respondWithResult(_0x41614a,null))[_0xe29a('0x41')](handleError(_0x41614a,null));};exports[_0xe29a('0x23')]=function(_0x7d988f,_0x42e894){return db[_0xe29a('0x2a')][_0xe29a('0x46')]({'where':{'id':_0x7d988f[_0xe29a('0x43')]['id']}})[_0xe29a('0x22')](handleEntityNotFound(_0x42e894,null))[_0xe29a('0x22')](removeEntity(_0x42e894,null))[_0xe29a('0x41')](handleError(_0x42e894,null));};exports[_0xe29a('0x51')]=function(_0x554e0b,_0x2a6921){var _0xf96d6d=0xa;var _0x26603c=[_0xe29a('0x52'),'left_join',_0xe29a('0x53'),_0xe29a('0x54')];var _0x203e07={'SUM':'SUM(%s)','COUNT':_0xe29a('0x55'),'COUNT DISTINCT':_0xe29a('0x56'),'MAX':'MAX(%s)','MIN':_0xe29a('0x57'),'AVG':_0xe29a('0x58'),'GROUP_CONCAT':_0xe29a('0x59'),'GROUP_CONCAT ASC':_0xe29a('0x5a'),'GROUP_CONCAT DESC':_0xe29a('0x5b')};var _0x29baad={'SEC_TO_TIME':_0xe29a('0x5c'),'DATE':_0xe29a('0x5d'),'HOUR':_0xe29a('0x5e'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xe29a('0x5f')};var _0x2e3554=function(_0x2e6a6e){return!_[_0xe29a('0x60')]([_0xe29a('0x61'),_0xe29a('0x62'),_0xe29a('0x63'),_0xe29a('0x64')],_0x2e6a6e);};var _0x4e881f=function(_0x2aa3dc){if(!_0x2aa3dc||!_0x2aa3dc['rules'][_0xe29a('0x36')]){return'';}for(var _0x565e9a='(',_0x2a3c53=0x0;_0x2a3c53<_0x2aa3dc[_0xe29a('0x65')][_0xe29a('0x36')];_0x2a3c53+=0x1){_0x2a3c53>0x0&&(_0x565e9a+='\x20'+_0x2aa3dc[_0xe29a('0x66')]+'\x20');_0x565e9a+=_0x2aa3dc[_0xe29a('0x65')][_0x2a3c53][_0xe29a('0x67')]?_0x4e881f(_0x2aa3dc[_0xe29a('0x65')][_0x2a3c53][_0xe29a('0x67')]):_0x2aa3dc[_0xe29a('0x65')][_0x2a3c53][_0xe29a('0x68')]+'\x20'+_0x2aa3dc[_0xe29a('0x65')][_0x2a3c53][_0xe29a('0x69')]+(_0x2e3554(_0x2aa3dc[_0xe29a('0x65')][_0x2a3c53][_0xe29a('0x69')])?'\x20'+_0x2aa3dc[_0xe29a('0x65')][_0x2a3c53][_0xe29a('0x6a')]:'');}return _0x565e9a+')';};var _0x5daca2={'where':{'id':_0x554e0b[_0xe29a('0x43')]['id']}},_0x378b8b,_0x89fe8d,_0x5b8229,_0x3fc891,_0xdc7a87;_0x5daca2=_['merge']({},_0x5daca2,_0x554e0b[_0xe29a('0x45')]);return db[_0xe29a('0x2a')]['find'](_0x5daca2)[_0xe29a('0x22')](function(_0x570ea1){if(_0x570ea1){_0x378b8b=_0x570ea1;return _0x570ea1[_0xe29a('0x6b')]();}return null;})[_0xe29a('0x22')](function(_0x569c4e){if(_0x569c4e){if(!_0x569c4e['length']){throw new db[(_0xe29a('0x6c'))]['ValidationErrorItem'](_0xe29a('0x6d'),0x193);}_0x89fe8d=_0x569c4e;return db[_0xe29a('0x6e')][_0xe29a('0x6f')]({'raw':!![]});}return null;})['then'](function(_0x5bf39f){if(_0x5bf39f){_0x5b8229=_[_0xe29a('0x70')](_0x5bf39f,'id');var _0x43f363;var _0x4e65df=squel[_0xe29a('0x71')]();_0x4e65df[_0xe29a('0x72')](_0x378b8b[_0xe29a('0x73')]);for(var _0xe126c8=0x0;_0xe126c8<_0x89fe8d['length'];_0xe126c8+=0x1){_0x43f363=_0x89fe8d[_0xe126c8]['MetricId']?_0x5b8229[_0x89fe8d[_0xe126c8][_0xe29a('0x74')]][_0xe29a('0x75')]:_0x89fe8d[_0xe126c8][_0xe29a('0x68')];_0x43f363=_0x89fe8d[_0xe126c8][_0xe29a('0x76')]?_[_0xe29a('0x77')](_0x203e07[_0x89fe8d[_0xe126c8][_0xe29a('0x76')]],'%s',_0x43f363):_0x43f363;_0x43f363=_0x89fe8d[_0xe126c8][_0xe29a('0x78')]?_[_0xe29a('0x77')](_0x29baad[_0x89fe8d[_0xe126c8]['format']],'%s',_0x43f363):_0x43f363;if(_0x89fe8d[_0xe126c8][_0xe29a('0x79')]){_0x4e65df[_0xe29a('0x67')](_0x43f363);}_0x89fe8d[_0xe126c8][_0xe29a('0x7a')]&&_0x4e65df[_0xe29a('0x38')](_0x43f363,_0x89fe8d[_0xe126c8][_0xe29a('0x7a')]==='DESC'?![]:!![]);_0x4e65df[_0xe29a('0x68')](_0x43f363,_0x89fe8d[_0xe126c8][_0xe29a('0x7b')]||_0x43f363);}if(_0x378b8b['joins']){_0x378b8b[_0xe29a('0x7c')]=JSON[_0xe29a('0x7d')](_0x378b8b[_0xe29a('0x7c')]);for(var _0x55b00a=0x0;_0x55b00a<_0x378b8b['joins'][_0xe29a('0x36')];_0x55b00a+=0x1){if(_0x378b8b[_0xe29a('0x7c')][_0x55b00a][_0xe29a('0x2d')]&&_['includes'](_0x26603c,_0x378b8b[_0xe29a('0x7c')][_0x55b00a][_0xe29a('0x2d')])&&_0x378b8b['joins'][_0x55b00a][_0xe29a('0x7e')]&&_0x378b8b['joins'][_0x55b00a][_0xe29a('0x7f')]&&_0x378b8b['joins'][_0x55b00a][_0xe29a('0x80')]){_0x4e65df[_0x378b8b['joins'][_0x55b00a]['type']](_0x378b8b[_0xe29a('0x7c')][_0x55b00a][_0xe29a('0x7f')],null,util['format'](_0xe29a('0x81'),_0x378b8b[_0xe29a('0x73')],_0x378b8b[_0xe29a('0x7c')][_0x55b00a][_0xe29a('0x7e')],_0x378b8b[_0xe29a('0x7c')][_0x55b00a]['foreignTable'],_0x378b8b[_0xe29a('0x7c')][_0x55b00a][_0xe29a('0x80')]));}}}if(_0x378b8b[_0xe29a('0x82')]){_0x378b8b[_0xe29a('0x82')]=JSON[_0xe29a('0x7d')](_0x378b8b['conditions']);_0x4e65df['where'](_0x4e881f(_0x378b8b[_0xe29a('0x82')][_0xe29a('0x67')]));}_0xdc7a87=_0x4e65df['clone']();_0x4e65df[_0xe29a('0x1a')](_0xf96d6d);_0x4e65df['offset'](0x0);logger[_0xe29a('0x83')](_0xe29a('0x84'),_0x4e65df[_0xe29a('0x85')]());return dbH['sequelize']['query'](_0x4e65df[_0xe29a('0x85')](),{'type':dbH[_0xe29a('0x86')]['QueryTypes'][_0xe29a('0x87')]});}})[_0xe29a('0x22')](respondWithResult(_0x2a6921,null))['catch'](handleError(_0x2a6921,null));};function runReport(_0x4b3503,_0x574507,_0x35a20e){var _0xe6433e=_0x574507[_0xe29a('0x27')];var _0x51fa3f=0xa;var _0xa45fbb=[_0xe29a('0x52'),'left_join',_0xe29a('0x53'),_0xe29a('0x54')];var _0x2a66e1={'SUM':_0xe29a('0x88'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0xe29a('0x56'),'MAX':'MAX(%s)','MIN':_0xe29a('0x57'),'AVG':_0xe29a('0x58'),'GROUP_CONCAT':_0xe29a('0x59'),'GROUP_CONCAT ASC':_0xe29a('0x5a'),'GROUP_CONCAT DESC':_0xe29a('0x5b')};var _0x11d293={'SEC_TO_TIME':_0xe29a('0x5c'),'DATE':_0xe29a('0x5d'),'HOUR':'HOUR(%s)','ROUND':_0xe29a('0x89'),'UNIX_TIMESTAMP':_0xe29a('0x5f')};var _0xf82449=function(_0x59902f){return!_['includes']([_0xe29a('0x61'),_0xe29a('0x62'),_0xe29a('0x63'),_0xe29a('0x64')],_0x59902f);};var _0x482671=function(_0x49632d){if(!_0x49632d||!_0x49632d[_0xe29a('0x65')][_0xe29a('0x36')]){return'';}for(var _0x5b41d9='(',_0x25cc9d=0x0;_0x25cc9d<_0x49632d[_0xe29a('0x65')][_0xe29a('0x36')];_0x25cc9d+=0x1){_0x25cc9d>0x0&&(_0x5b41d9+='\x20'+_0x49632d[_0xe29a('0x66')]+'\x20');_0x5b41d9+=_0x49632d[_0xe29a('0x65')][_0x25cc9d][_0xe29a('0x67')]?_0x482671(_0x49632d[_0xe29a('0x65')][_0x25cc9d]['group']):_0x49632d['rules'][_0x25cc9d][_0xe29a('0x68')]+'\x20'+_0x49632d['rules'][_0x25cc9d][_0xe29a('0x69')]+(_0xf82449(_0x49632d[_0xe29a('0x65')][_0x25cc9d][_0xe29a('0x69')])?'\x20'+_0x49632d[_0xe29a('0x65')][_0x25cc9d][_0xe29a('0x6a')]:'');}return _0x5b41d9+')';};var _0xb96b61={'where':{'id':_0x4b3503['id']}},_0x3ce1c9,_0x4a0c31,_0x10eb44,_0x3be73b,_0x4ca52f;_0xb96b61=_[_0xe29a('0x3d')]({},_0xb96b61,_0x35a20e);return db['AnalyticCustomReport'][_0xe29a('0x46')](_0xb96b61)['then'](function(_0xf1adf5){if(_0xf1adf5){_0x3ce1c9=_0xf1adf5;return _0xf1adf5[_0xe29a('0x6b')]();}return null;})[_0xe29a('0x22')](function(_0x40df2e){if(_0x40df2e){if(!_0x40df2e[_0xe29a('0x36')]){throw new db[(_0xe29a('0x6c'))][(_0xe29a('0x8a'))](_0xe29a('0x6d'),0x193);}_0x4a0c31=_0x40df2e;return db[_0xe29a('0x6e')][_0xe29a('0x6f')]({'raw':!![]});}return null;})['then'](function(_0x3500ea){if(_0x3500ea){_0x10eb44=_[_0xe29a('0x70')](_0x3500ea,'id');var _0x25c688;var _0x4df4ef=squel[_0xe29a('0x71')]();_0x4df4ef['from'](_0x3ce1c9[_0xe29a('0x73')]);for(var _0x31034c=0x0;_0x31034c<_0x4a0c31[_0xe29a('0x36')];_0x31034c+=0x1){_0x25c688=_0x4a0c31[_0x31034c]['MetricId']?_0x10eb44[_0x4a0c31[_0x31034c][_0xe29a('0x74')]][_0xe29a('0x75')]:_0x4a0c31[_0x31034c][_0xe29a('0x68')];_0x25c688=_0x4a0c31[_0x31034c][_0xe29a('0x76')]?_[_0xe29a('0x77')](_0x2a66e1[_0x4a0c31[_0x31034c]['function']],'%s',_0x25c688):_0x25c688;_0x25c688=_0x4a0c31[_0x31034c][_0xe29a('0x78')]?_[_0xe29a('0x77')](_0x11d293[_0x4a0c31[_0x31034c][_0xe29a('0x78')]],'%s',_0x25c688):_0x25c688;if(_0x4a0c31[_0x31034c][_0xe29a('0x79')]){_0x4df4ef[_0xe29a('0x67')](_0x25c688);}_0x4a0c31[_0x31034c][_0xe29a('0x7a')]&&_0x4df4ef[_0xe29a('0x38')](_0x25c688,_0x4a0c31[_0x31034c][_0xe29a('0x7a')]==='DESC'?![]:!![]);_0x4df4ef[_0xe29a('0x68')](_0x25c688,_0x4a0c31[_0x31034c][_0xe29a('0x7b')]||_0x25c688);}if(_0x3ce1c9[_0xe29a('0x7c')]){_0x3ce1c9[_0xe29a('0x7c')]=JSON['parse'](_0x3ce1c9['joins']);for(var _0x40ca4d=0x0;_0x40ca4d<_0x3ce1c9['joins'][_0xe29a('0x36')];_0x40ca4d+=0x1){if(_0x3ce1c9[_0xe29a('0x7c')][_0x40ca4d][_0xe29a('0x2d')]&&_['includes'](_0xa45fbb,_0x3ce1c9[_0xe29a('0x7c')][_0x40ca4d][_0xe29a('0x2d')])&&_0x3ce1c9[_0xe29a('0x7c')][_0x40ca4d]['parentKey']&&_0x3ce1c9[_0xe29a('0x7c')][_0x40ca4d][_0xe29a('0x7f')]&&_0x3ce1c9['joins'][_0x40ca4d][_0xe29a('0x80')]){_0x4df4ef[_0x3ce1c9['joins'][_0x40ca4d]['type']](_0x3ce1c9[_0xe29a('0x7c')][_0x40ca4d][_0xe29a('0x7f')],null,util[_0xe29a('0x78')](_0xe29a('0x81'),_0x3ce1c9[_0xe29a('0x73')],_0x3ce1c9[_0xe29a('0x7c')][_0x40ca4d]['parentKey'],_0x3ce1c9[_0xe29a('0x7c')][_0x40ca4d]['foreignTable'],_0x3ce1c9[_0xe29a('0x7c')][_0x40ca4d][_0xe29a('0x80')]));}}}if(_0x3ce1c9[_0xe29a('0x82')]){_0x3ce1c9[_0xe29a('0x82')]=JSON[_0xe29a('0x7d')](_0x3ce1c9[_0xe29a('0x82')]);_0x4df4ef[_0xe29a('0x3a')](_0x482671(_0x3ce1c9[_0xe29a('0x82')][_0xe29a('0x67')]));}_0x4ca52f=_0x4df4ef['clone']();_0x4df4ef[_0xe29a('0x1a')](_0x51fa3f);_0x4df4ef[_0xe29a('0x1c')](0x0);return;}})[_0xe29a('0x22')](function(){if(_0x574507[_0xe29a('0x8b')]===_0xe29a('0x8c')){return null;}var _0x32e3d3=_[_0xe29a('0x3d')](_0x574507,{'name':_0x574507[_0xe29a('0x8d')]||_0x574507['name']||_0x3ce1c9['name'],'basename':_0xe6433e,'savename':util[_0xe29a('0x78')](_0xe29a('0x8e'),_0x574507['name']||_0x3ce1c9[_0xe29a('0x27')],require(_0xe29a('0x8f'))[_0xe29a('0x90')](0x4),_0x574507['output']||_0xe29a('0x91')),'reportId':_0x3ce1c9['id'],'reportType':'custom'});return db[_0xe29a('0x92')][_0xe29a('0x4e')](_0x32e3d3,{'raw':!![]});})[_0xe29a('0x22')](function(_0x5aece1){if(_0x3ce1c9[_0xe29a('0x73')]===_0xe29a('0x93')){_0x4ca52f['where'](_0x3ce1c9[_0xe29a('0x73')]+_0xe29a('0x94'),_0x574507[_0xe29a('0x95')],_0x574507[_0xe29a('0x96')]);}else{_0x4ca52f[_0xe29a('0x3a')](_0x3ce1c9[_0xe29a('0x73')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x574507['startDate'],_0x574507[_0xe29a('0x96')]);}if(_0x5aece1){logger['info']('Run\x20Query:',_0x4ca52f['toString']());require('child_process')['fork'](path[_0xe29a('0x52')](__dirname,_0xe29a('0x97'),_0x5aece1['output']),[_0x5aece1['id'],_0x4ca52f['toString'](),path[_0xe29a('0x52')](__dirname,'../../files/reports',_0x5aece1['savename']),_0xe6433e]);return _0x5aece1;}else{var _0x410f64=squel[_0xe29a('0x71')]();_0x410f64['from']('('+_0x4ca52f[_0xe29a('0x85')]()+')',_0xe29a('0x98'));_0x410f64['field'](_0xe29a('0x99'),_0xe29a('0x1b'));_0x4ca52f[_0xe29a('0x1a')](_0x574507[_0xe29a('0x1a')]||_0x51fa3f);_0x4ca52f['offset'](_0x574507[_0xe29a('0x1c')]||0x0);return dbH['sequelize']['query'](_0x410f64[_0xe29a('0x85')](),{'type':dbH[_0xe29a('0x86')][_0xe29a('0x9a')][_0xe29a('0x87')]})[_0xe29a('0x22')](function(_0x36a2e7){if(!_0x36a2e7[_0xe29a('0x36')]){_0x3be73b=0x0;}else{_0x3be73b=_0x36a2e7[0x0]['count']||0x0;}return dbH[_0xe29a('0x86')][_0xe29a('0x33')](_0x4ca52f[_0xe29a('0x85')](),{'type':dbH['sequelize']['QueryTypes'][_0xe29a('0x87')]});})[_0xe29a('0x22')](function(_0x5a588c){return{'rows':_0x5a588c||[],'count':_0x3be73b};});}});}exports[_0xe29a('0x9b')]=function(_0x486fbd,_0x59e054){return runReport(_0x486fbd[_0xe29a('0x43')],_0x486fbd[_0xe29a('0x33')],_0x486fbd['options'])['then'](respondWithResult(_0x59e054,null))['catch'](handleError(_0x59e054,null));};exports[_0xe29a('0x9c')]=runReport;exports['query']=function(_0x52f969,_0x11f407){var _0x269cfa=0xa;var _0x4a0943=['join',_0xe29a('0x9d'),'right_join','cross_join'];var _0x1f9546={'SUM':_0xe29a('0x88'),'COUNT':_0xe29a('0x55'),'COUNT DISTINCT':_0xe29a('0x56'),'MAX':_0xe29a('0x9e'),'MIN':'MIN(%s)','AVG':_0xe29a('0x58'),'GROUP_CONCAT':_0xe29a('0x59'),'GROUP_CONCAT ASC':_0xe29a('0x5a'),'GROUP_CONCAT DESC':_0xe29a('0x5b')};var _0x305f3a={'SEC_TO_TIME':_0xe29a('0x5c'),'DATE':_0xe29a('0x5d'),'HOUR':'HOUR(%s)','ROUND':_0xe29a('0x89'),'UNIX_TIMESTAMP':_0xe29a('0x5f')};var _0x3a0f33=function(_0x5ee41f){return!_[_0xe29a('0x60')]([_0xe29a('0x61'),_0xe29a('0x62'),_0xe29a('0x63'),_0xe29a('0x64')],_0x5ee41f);};var _0x19a9d1=function(_0x4d8ad4){if(!_0x4d8ad4||!_0x4d8ad4[_0xe29a('0x65')]['length']){return'';}for(var _0x4a92d7='(',_0x47d125=0x0;_0x47d125<_0x4d8ad4[_0xe29a('0x65')][_0xe29a('0x36')];_0x47d125+=0x1){_0x47d125>0x0&&(_0x4a92d7+='\x20'+_0x4d8ad4[_0xe29a('0x66')]+'\x20');_0x4a92d7+=_0x4d8ad4[_0xe29a('0x65')][_0x47d125][_0xe29a('0x67')]?_0x19a9d1(_0x4d8ad4[_0xe29a('0x65')][_0x47d125][_0xe29a('0x67')]):_0x4d8ad4['rules'][_0x47d125][_0xe29a('0x68')]+'\x20'+_0x4d8ad4['rules'][_0x47d125]['condition']+(_0x3a0f33(_0x4d8ad4[_0xe29a('0x65')][_0x47d125]['condition'])?'\x20'+_0x4d8ad4[_0xe29a('0x65')][_0x47d125][_0xe29a('0x6a')]:'');}return _0x4a92d7+')';};var _0x2ffbf2={'where':{'id':_0x52f969[_0xe29a('0x43')]['id']}},_0x21ab8e,_0xc18bc3,_0x496afd,_0x172aad,_0x30dfb0;_0x2ffbf2=_[_0xe29a('0x3d')]({},_0x2ffbf2,_0x52f969[_0xe29a('0x45')]);return db[_0xe29a('0x2a')]['find'](_0x2ffbf2)[_0xe29a('0x22')](function(_0x5cd893){if(_0x5cd893){_0x21ab8e=_0x5cd893;return _0x5cd893['getFields']();}return null;})[_0xe29a('0x22')](function(_0x13ffc7){if(_0x13ffc7){if(!_0x13ffc7[_0xe29a('0x36')]){throw new db['Sequelize']['ValidationErrorItem'](_0xe29a('0x6d'),0x193);}_0xc18bc3=_0x13ffc7;return db[_0xe29a('0x6e')][_0xe29a('0x6f')]({'raw':!![]});}return null;})[_0xe29a('0x22')](function(_0x4017d0){if(_0x4017d0){_0x496afd=_[_0xe29a('0x70')](_0x4017d0,'id');var _0x3969e9;var _0x3d66f1=squel[_0xe29a('0x71')]();_0x3d66f1[_0xe29a('0x72')](_0x21ab8e[_0xe29a('0x73')]);for(var _0x3ef721=0x0;_0x3ef721<_0xc18bc3[_0xe29a('0x36')];_0x3ef721+=0x1){_0x3969e9=_0xc18bc3[_0x3ef721][_0xe29a('0x74')]?_0x496afd[_0xc18bc3[_0x3ef721][_0xe29a('0x74')]][_0xe29a('0x75')]:_0xc18bc3[_0x3ef721][_0xe29a('0x68')];_0x3969e9=_0xc18bc3[_0x3ef721][_0xe29a('0x76')]?_[_0xe29a('0x77')](_0x1f9546[_0xc18bc3[_0x3ef721][_0xe29a('0x76')]],'%s',_0x3969e9):_0x3969e9;_0x3969e9=_0xc18bc3[_0x3ef721]['format']?_['replace'](_0x305f3a[_0xc18bc3[_0x3ef721][_0xe29a('0x78')]],'%s',_0x3969e9):_0x3969e9;if(_0xc18bc3[_0x3ef721][_0xe29a('0x79')]){_0x3d66f1[_0xe29a('0x67')](_0x3969e9);}_0xc18bc3[_0x3ef721][_0xe29a('0x7a')]&&_0x3d66f1[_0xe29a('0x38')](_0x3969e9,_0xc18bc3[_0x3ef721]['orderBy']===_0xe29a('0x9f')?![]:!![]);_0x3d66f1[_0xe29a('0x68')](_0x3969e9,_0xc18bc3[_0x3ef721][_0xe29a('0x7b')]||_0x3969e9);}if(_0x21ab8e[_0xe29a('0x7c')]){_0x21ab8e['joins']=JSON[_0xe29a('0x7d')](_0x21ab8e['joins']);for(var _0xf06b6a=0x0;_0xf06b6a<_0x21ab8e[_0xe29a('0x7c')][_0xe29a('0x36')];_0xf06b6a+=0x1){if(_0x21ab8e[_0xe29a('0x7c')][_0xf06b6a][_0xe29a('0x2d')]&&_[_0xe29a('0x60')](_0x4a0943,_0x21ab8e[_0xe29a('0x7c')][_0xf06b6a]['type'])&&_0x21ab8e['joins'][_0xf06b6a][_0xe29a('0x7e')]&&_0x21ab8e[_0xe29a('0x7c')][_0xf06b6a][_0xe29a('0x7f')]&&_0x21ab8e[_0xe29a('0x7c')][_0xf06b6a][_0xe29a('0x80')]){_0x3d66f1[_0x21ab8e[_0xe29a('0x7c')][_0xf06b6a][_0xe29a('0x2d')]](_0x21ab8e[_0xe29a('0x7c')][_0xf06b6a][_0xe29a('0x7f')],null,util[_0xe29a('0x78')]('%s.%s\x20=\x20%s.%s',_0x21ab8e[_0xe29a('0x73')],_0x21ab8e[_0xe29a('0x7c')][_0xf06b6a][_0xe29a('0x7e')],_0x21ab8e[_0xe29a('0x7c')][_0xf06b6a][_0xe29a('0x7f')],_0x21ab8e['joins'][_0xf06b6a][_0xe29a('0x80')]));}}}if(_0x21ab8e[_0xe29a('0x82')]){_0x21ab8e[_0xe29a('0x82')]=JSON[_0xe29a('0x7d')](_0x21ab8e[_0xe29a('0x82')]);_0x3d66f1[_0xe29a('0x3a')](_0x19a9d1(_0x21ab8e[_0xe29a('0x82')][_0xe29a('0x67')]));}_0x30dfb0=_0x3d66f1[_0xe29a('0xa0')]();_0x3d66f1['limit'](_0x269cfa);_0x3d66f1[_0xe29a('0x1c')](0x0);logger[_0xe29a('0x83')](_0xe29a('0x84'),_0x3d66f1[_0xe29a('0x85')]());return dbH[_0xe29a('0x86')][_0xe29a('0x33')](_0x3d66f1[_0xe29a('0x85')](),{'type':dbH[_0xe29a('0x86')][_0xe29a('0x9a')][_0xe29a('0x87')]});}})['then'](function(){return{'sql':_0x30dfb0[_0xe29a('0x85')]()};})[_0xe29a('0x22')](respondWithResult(_0x11f407,null))['catch'](handleError(_0x11f407,null));};