22c5337780011e5b070c26542bdacc9728ea5c00
[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 _0x3ea4=['DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','AnalyticMetric','keyBy','select','from','table','MetricId','metric','replace','function','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','debug','toString','sequelize','QueryTypes','SELECT','COUNT(%s)','MAX(%s)','operator','Please\x20insert\x20at\x20least\x20one\x20field','output','web','fullPath','%s-%s.%s','randomstring','generate','AnalyticExtractedReport','cdr','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','IS\x20NOT\x20NULL','clone','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','json','undefined','limit','count','offset','reject','save','update','destroy','get','CustomReports','then','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','type','key','keys','query','filters','model','attributes','fields','hasOwnProperty','order','sort','pick','merge','where','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','intersection','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','cross_join','SUM(%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)'];(function(_0x24ec1d,_0x428592){var _0x2905db=function(_0x2cdc75){while(--_0x2cdc75){_0x24ec1d['push'](_0x24ec1d['shift']());}};_0x2905db(++_0x428592);}(_0x3ea4,0x18a));var _0x43ea=function(_0x2d3a4d,_0x47561e){_0x2d3a4d=_0x2d3a4d-0x0;var _0x3a94a3=_0x3ea4[_0x2d3a4d];return _0x3a94a3;};'use strict';var emlformat=require(_0x43ea('0x0'));var rimraf=require(_0x43ea('0x1'));var zipdir=require(_0x43ea('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x43ea('0x3'));var moment=require(_0x43ea('0x4'));var BPromise=require(_0x43ea('0x5'));var Mustache=require(_0x43ea('0x6'));var util=require(_0x43ea('0x7'));var path=require(_0x43ea('0x8'));var sox=require(_0x43ea('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x43ea('0xa'));var squel=require('squel');var crypto=require(_0x43ea('0xb'));var jsforce=require(_0x43ea('0xc'));var deskjs=require(_0x43ea('0xd'));var toCsv=require('to-csv');var querystring=require(_0x43ea('0xe'));var Papa=require('papaparse');var Redis=require(_0x43ea('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x43ea('0x10'));var as=require(_0x43ea('0x11'));var hardwareService=require(_0x43ea('0x12'));var logger=require(_0x43ea('0x13'))(_0x43ea('0x14'));var utils=require('../../config/utils');var config=require(_0x43ea('0x15'));var licenseUtil=require(_0x43ea('0x16'));var db=require(_0x43ea('0x17'))['db'];var dbH=require(_0x43ea('0x17'))[_0x43ea('0x18')];function respondWithStatusCode(_0x15c6e8,_0x5a00de){_0x5a00de=_0x5a00de||0xcc;return function(_0x9e0372){if(_0x9e0372){return _0x15c6e8[_0x43ea('0x19')](_0x5a00de);}return _0x15c6e8[_0x43ea('0x1a')](_0x5a00de)['end']();};}function respondWithResult(_0x52988f,_0x1dc11b){_0x1dc11b=_0x1dc11b||0xc8;return function(_0x1cb782){if(_0x1cb782){return _0x52988f[_0x43ea('0x1a')](_0x1dc11b)[_0x43ea('0x1b')](_0x1cb782);}};}function respondWithFilteredResult(_0xd55419,_0x3668eb){return function(_0x24a37f){if(_0x24a37f){var _0xbb2f00=typeof _0x3668eb['offset']===_0x43ea('0x1c')&&typeof _0x3668eb[_0x43ea('0x1d')]===_0x43ea('0x1c');var _0x10e8bd=_0x24a37f[_0x43ea('0x1e')];var _0x485931=_0xbb2f00?0x0:_0x3668eb[_0x43ea('0x1f')];var _0x5c651a=_0xbb2f00?_0x24a37f[_0x43ea('0x1e')]:_0x3668eb[_0x43ea('0x1f')]+_0x3668eb['limit'];var _0x4e7d79;if(_0x5c651a>=_0x10e8bd){_0x5c651a=_0x10e8bd;_0x4e7d79=0xc8;}else{_0x4e7d79=0xce;}_0xd55419[_0x43ea('0x1a')](_0x4e7d79);return _0xd55419['set']('Content-Range',_0x485931+'-'+_0x5c651a+'/'+_0x10e8bd)[_0x43ea('0x1b')](_0x24a37f);}return null;};}function patchUpdates(_0x12e043){return function(_0x26f83f){try{jsonpatch['apply'](_0x26f83f,_0x12e043,!![]);}catch(_0x187ce2){return BPromise[_0x43ea('0x20')](_0x187ce2);}return _0x26f83f[_0x43ea('0x21')]();};}function saveUpdates(_0x2e9991,_0x32580e){return function(_0x2a8d96){if(_0x2a8d96){return _0x2a8d96[_0x43ea('0x22')](_0x2e9991)['then'](function(_0x2f9eb2){return _0x2f9eb2;});}return null;};}function removeEntity(_0x1e7442,_0x457f29){return function(_0x418c90){if(_0x418c90){return _0x418c90[_0x43ea('0x23')]()['then'](function(){var _0x599645=_0x418c90[_0x43ea('0x24')]({'plain':!![]});var _0xe69dec=_0x43ea('0x25');return db['UserProfileResource'][_0x43ea('0x23')]({'where':{'type':_0xe69dec,'resourceId':_0x599645['id']}})[_0x43ea('0x26')](function(){return _0x418c90;});})['then'](function(){_0x1e7442[_0x43ea('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2f3242,_0x3c4255){return function(_0x47987e){if(!_0x47987e){_0x2f3242[_0x43ea('0x19')](0x194);}return _0x47987e;};}function handleError(_0x5669c0,_0x248bdf){_0x248bdf=_0x248bdf||0x1f4;return function(_0x383446){logger[_0x43ea('0x27')](_0x383446[_0x43ea('0x28')]);if(_0x383446[_0x43ea('0x29')]){delete _0x383446[_0x43ea('0x29')];}_0x5669c0[_0x43ea('0x1a')](_0x248bdf)[_0x43ea('0x2a')](_0x383446);};}exports[_0x43ea('0x2b')]=function(_0x4a5907,_0x433260){var _0x57af36={},_0x4a628c={},_0x1bc9c1={'count':0x0,'rows':[]};var _0x5e0cae=_[_0x43ea('0x2c')](db[_0x43ea('0x2d')][_0x43ea('0x2e')],function(_0x25d9d3){return{'name':_0x25d9d3['fieldName'],'type':_0x25d9d3[_0x43ea('0x2f')][_0x43ea('0x30')]};});_0x4a628c['model']=_[_0x43ea('0x2c')](_0x5e0cae,_0x43ea('0x29'));_0x4a628c['query']=_[_0x43ea('0x31')](_0x4a5907[_0x43ea('0x32')]);_0x4a628c[_0x43ea('0x33')]=_['intersection'](_0x4a628c[_0x43ea('0x34')],_0x4a628c[_0x43ea('0x32')]);_0x57af36[_0x43ea('0x35')]=_['intersection'](_0x4a628c[_0x43ea('0x34')],qs[_0x43ea('0x36')](_0x4a5907[_0x43ea('0x32')][_0x43ea('0x36')]));_0x57af36[_0x43ea('0x35')]=_0x57af36[_0x43ea('0x35')]['length']?_0x57af36[_0x43ea('0x35')]:_0x4a628c[_0x43ea('0x34')];if(!_0x4a5907[_0x43ea('0x32')][_0x43ea('0x37')]('nolimit')){_0x57af36['limit']=qs[_0x43ea('0x1d')](_0x4a5907[_0x43ea('0x32')][_0x43ea('0x1d')]);_0x57af36[_0x43ea('0x1f')]=qs[_0x43ea('0x1f')](_0x4a5907[_0x43ea('0x32')]['offset']);}_0x57af36[_0x43ea('0x38')]=qs[_0x43ea('0x39')](_0x4a5907[_0x43ea('0x32')][_0x43ea('0x39')]);_0x57af36['where']=qs['filters'](_[_0x43ea('0x3a')](_0x4a5907[_0x43ea('0x32')],_0x4a628c[_0x43ea('0x33')]),_0x5e0cae);if(_0x4a5907[_0x43ea('0x32')]['filter']){_0x57af36['where']=_[_0x43ea('0x3b')](_0x57af36[_0x43ea('0x3c')],{'$or':_[_0x43ea('0x2c')](_0x5e0cae,function(_0x1e6288){if(_0x1e6288[_0x43ea('0x2f')]!==_0x43ea('0x3d')){var _0x358a1e={};_0x358a1e[_0x1e6288[_0x43ea('0x29')]]={'$like':'%'+_0x4a5907[_0x43ea('0x32')][_0x43ea('0x3e')]+'%'};return _0x358a1e;}})});}_0x57af36=_[_0x43ea('0x3b')]({},_0x57af36,_0x4a5907[_0x43ea('0x3f')]);var _0x5b5a44={'where':_0x57af36[_0x43ea('0x3c')]};return db[_0x43ea('0x2d')][_0x43ea('0x1e')](_0x5b5a44)[_0x43ea('0x26')](function(_0x2b8555){_0x1bc9c1[_0x43ea('0x1e')]=_0x2b8555;if(_0x4a5907[_0x43ea('0x32')][_0x43ea('0x40')]){_0x57af36[_0x43ea('0x41')]=[{'all':!![]}];}return db[_0x43ea('0x2d')][_0x43ea('0x42')](_0x57af36);})['then'](function(_0x1776a6){_0x1bc9c1[_0x43ea('0x43')]=_0x1776a6;return _0x1bc9c1;})[_0x43ea('0x26')](respondWithFilteredResult(_0x433260,_0x57af36))[_0x43ea('0x44')](handleError(_0x433260,null));};exports[_0x43ea('0x45')]=function(_0x8dab3f,_0x1499e3){var _0x481c5b={'raw':![],'where':{'id':_0x8dab3f[_0x43ea('0x46')]['id']}},_0x5714bf={};_0x5714bf['model']=_['keys'](db['AnalyticCustomReport']['rawAttributes']);_0x5714bf[_0x43ea('0x32')]=_['keys'](_0x8dab3f['query']);_0x5714bf['filters']=_[_0x43ea('0x47')](_0x5714bf['model'],_0x5714bf[_0x43ea('0x32')]);_0x481c5b[_0x43ea('0x35')]=_[_0x43ea('0x47')](_0x5714bf[_0x43ea('0x34')],qs[_0x43ea('0x36')](_0x8dab3f[_0x43ea('0x32')]['fields']));_0x481c5b['attributes']=_0x481c5b['attributes'][_0x43ea('0x48')]?_0x481c5b[_0x43ea('0x35')]:_0x5714bf['model'];if(_0x8dab3f[_0x43ea('0x32')]['includeAll']){_0x481c5b['include']=[{'all':!![]}];}_0x481c5b=_['merge']({},_0x481c5b,_0x8dab3f[_0x43ea('0x3f')]);return db[_0x43ea('0x2d')][_0x43ea('0x49')](_0x481c5b)[_0x43ea('0x26')](handleEntityNotFound(_0x1499e3,null))[_0x43ea('0x26')](respondWithResult(_0x1499e3,null))['catch'](handleError(_0x1499e3,null));};exports[_0x43ea('0x4a')]=function(_0x584837,_0x1ab484){return db[_0x43ea('0x2d')][_0x43ea('0x4a')](_0x584837[_0x43ea('0x4b')],{})[_0x43ea('0x26')](function(_0xac39d4){var _0x2d9c38=_0x584837[_0x43ea('0x4c')][_0x43ea('0x24')]({'plain':!![]});if(!_0x2d9c38)throw new Error(_0x43ea('0x4d'));if(_0x2d9c38['role']==='user'){var _0x1402ed=_0xac39d4[_0x43ea('0x24')]({'plain':!![]});var _0x337c06='Reports';return db[_0x43ea('0x4e')]['find']({'where':{'name':_0x337c06,'userProfileId':_0x2d9c38[_0x43ea('0x4f')]},'raw':!![]})[_0x43ea('0x26')](function(_0xae8734){if(_0xae8734&&_0xae8734['autoAssociation']===0x0){return db[_0x43ea('0x50')]['create']({'name':_0x1402ed[_0x43ea('0x29')],'resourceId':_0x1402ed['id'],'type':'CustomReports','sectionId':_0xae8734['id']},{})[_0x43ea('0x26')](function(){return _0xac39d4;});}else{return _0xac39d4;}})[_0x43ea('0x44')](function(_0x2b0416){logger[_0x43ea('0x27')](_0x43ea('0x51'),_0x2b0416);throw _0x2b0416;});}return _0xac39d4;})[_0x43ea('0x26')](respondWithResult(_0x1ab484,0xc9))[_0x43ea('0x44')](handleError(_0x1ab484,null));};exports['update']=function(_0x269c66,_0x4e09dc){if(_0x269c66[_0x43ea('0x4b')]['id']){delete _0x269c66[_0x43ea('0x4b')]['id'];}return db[_0x43ea('0x2d')]['find']({'where':{'id':_0x269c66[_0x43ea('0x46')]['id']}})['then'](handleEntityNotFound(_0x4e09dc,null))['then'](saveUpdates(_0x269c66[_0x43ea('0x4b')],null))[_0x43ea('0x26')](respondWithResult(_0x4e09dc,null))[_0x43ea('0x44')](handleError(_0x4e09dc,null));};exports[_0x43ea('0x23')]=function(_0x20805e,_0x5797e7){return db['AnalyticCustomReport'][_0x43ea('0x49')]({'where':{'id':_0x20805e[_0x43ea('0x46')]['id']}})[_0x43ea('0x26')](handleEntityNotFound(_0x5797e7,null))[_0x43ea('0x26')](removeEntity(_0x5797e7,null))[_0x43ea('0x44')](handleError(_0x5797e7,null));};exports[_0x43ea('0x52')]=function(_0x1fdf0d,_0x36024f){var _0x4e0b00=0xa;var _0x597fd0=[_0x43ea('0x53'),_0x43ea('0x54'),_0x43ea('0x55'),_0x43ea('0x56')];var _0x1efb9d={'SUM':_0x43ea('0x57'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x43ea('0x58'),'MAX':'MAX(%s)','MIN':_0x43ea('0x59'),'AVG':_0x43ea('0x5a'),'GROUP_CONCAT':_0x43ea('0x5b'),'GROUP_CONCAT ASC':_0x43ea('0x5c'),'GROUP_CONCAT DESC':_0x43ea('0x5d')};var _0x4c68b6={'SEC_TO_TIME':_0x43ea('0x5e'),'DATE':_0x43ea('0x5f'),'HOUR':_0x43ea('0x60'),'ROUND':_0x43ea('0x61'),'UNIX_TIMESTAMP':_0x43ea('0x62')};var _0x266e30=function(_0x16c30b){return!_[_0x43ea('0x63')]([_0x43ea('0x64'),'IS\x20NOT\x20NULL',_0x43ea('0x65'),_0x43ea('0x66')],_0x16c30b);};var _0x36cdc2=function(_0x5bd9d3){if(!_0x5bd9d3||!_0x5bd9d3[_0x43ea('0x67')]['length']){return'';}for(var _0x213a38='(',_0x5bd436=0x0;_0x5bd436<_0x5bd9d3['rules']['length'];_0x5bd436+=0x1){_0x5bd436>0x0&&(_0x213a38+='\x20'+_0x5bd9d3['operator']+'\x20');_0x213a38+=_0x5bd9d3[_0x43ea('0x67')][_0x5bd436]['group']?_0x36cdc2(_0x5bd9d3[_0x43ea('0x67')][_0x5bd436][_0x43ea('0x68')]):_0x5bd9d3[_0x43ea('0x67')][_0x5bd436][_0x43ea('0x69')]+'\x20'+_0x5bd9d3[_0x43ea('0x67')][_0x5bd436]['condition']+(_0x266e30(_0x5bd9d3[_0x43ea('0x67')][_0x5bd436][_0x43ea('0x6a')])?'\x20'+_0x5bd9d3[_0x43ea('0x67')][_0x5bd436][_0x43ea('0x6b')]:'');}return _0x213a38+')';};var _0x1884e7={'where':{'id':_0x1fdf0d['params']['id']}},_0x12ecd5,_0x512e74,_0x4f0050,_0x11dca9,_0x6a2461;_0x1884e7=_[_0x43ea('0x3b')]({},_0x1884e7,_0x1fdf0d[_0x43ea('0x3f')]);return db['AnalyticCustomReport']['find'](_0x1884e7)['then'](function(_0x1b74bb){if(_0x1b74bb){_0x12ecd5=_0x1b74bb;return _0x1b74bb[_0x43ea('0x6c')]();}return null;})['then'](function(_0x15a3eb){if(_0x15a3eb){if(!_0x15a3eb[_0x43ea('0x48')]){throw new db[(_0x43ea('0x6d'))][(_0x43ea('0x6e'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x512e74=_0x15a3eb;return db[_0x43ea('0x6f')][_0x43ea('0x42')]({'raw':!![]});}return null;})[_0x43ea('0x26')](function(_0x18f29c){if(_0x18f29c){_0x4f0050=_[_0x43ea('0x70')](_0x18f29c,'id');var _0x2b083c;var _0x193c15=squel[_0x43ea('0x71')]();_0x193c15[_0x43ea('0x72')](_0x12ecd5[_0x43ea('0x73')]);for(var _0x1b06dd=0x0;_0x1b06dd<_0x512e74['length'];_0x1b06dd+=0x1){_0x2b083c=_0x512e74[_0x1b06dd][_0x43ea('0x74')]?_0x4f0050[_0x512e74[_0x1b06dd][_0x43ea('0x74')]][_0x43ea('0x75')]:_0x512e74[_0x1b06dd][_0x43ea('0x69')];_0x2b083c=_0x512e74[_0x1b06dd]['function']?_[_0x43ea('0x76')](_0x1efb9d[_0x512e74[_0x1b06dd][_0x43ea('0x77')]],'%s',_0x2b083c):_0x2b083c;_0x2b083c=_0x512e74[_0x1b06dd]['format']?_[_0x43ea('0x76')](_0x4c68b6[_0x512e74[_0x1b06dd][_0x43ea('0x78')]],'%s',_0x2b083c):_0x2b083c;if(_0x512e74[_0x1b06dd][_0x43ea('0x79')]){_0x193c15[_0x43ea('0x68')](_0x2b083c);}_0x512e74[_0x1b06dd]['orderBy']&&_0x193c15[_0x43ea('0x38')](_0x2b083c,_0x512e74[_0x1b06dd][_0x43ea('0x7a')]===_0x43ea('0x7b')?![]:!![]);_0x193c15[_0x43ea('0x69')](_0x2b083c,_0x512e74[_0x1b06dd][_0x43ea('0x7c')]||_0x2b083c);}if(_0x12ecd5[_0x43ea('0x7d')]){_0x12ecd5['joins']=JSON[_0x43ea('0x7e')](_0x12ecd5[_0x43ea('0x7d')]);for(var _0x140939=0x0;_0x140939<_0x12ecd5[_0x43ea('0x7d')][_0x43ea('0x48')];_0x140939+=0x1){if(_0x12ecd5[_0x43ea('0x7d')][_0x140939][_0x43ea('0x2f')]&&_[_0x43ea('0x63')](_0x597fd0,_0x12ecd5[_0x43ea('0x7d')][_0x140939]['type'])&&_0x12ecd5[_0x43ea('0x7d')][_0x140939][_0x43ea('0x7f')]&&_0x12ecd5['joins'][_0x140939][_0x43ea('0x80')]&&_0x12ecd5['joins'][_0x140939][_0x43ea('0x81')]){_0x193c15[_0x12ecd5[_0x43ea('0x7d')][_0x140939][_0x43ea('0x2f')]](_0x12ecd5[_0x43ea('0x7d')][_0x140939][_0x43ea('0x80')],null,util[_0x43ea('0x78')](_0x43ea('0x82'),_0x12ecd5['table'],_0x12ecd5[_0x43ea('0x7d')][_0x140939]['parentKey'],_0x12ecd5[_0x43ea('0x7d')][_0x140939][_0x43ea('0x80')],_0x12ecd5['joins'][_0x140939][_0x43ea('0x81')]));}}}if(_0x12ecd5[_0x43ea('0x83')]){_0x12ecd5[_0x43ea('0x83')]=JSON[_0x43ea('0x7e')](_0x12ecd5[_0x43ea('0x83')]);_0x193c15[_0x43ea('0x3c')](_0x36cdc2(_0x12ecd5['conditions'][_0x43ea('0x68')]));}_0x6a2461=_0x193c15['clone']();_0x193c15['limit'](_0x4e0b00);_0x193c15['offset'](0x0);logger[_0x43ea('0x84')]('Limited\x20Query:',_0x193c15[_0x43ea('0x85')]());return dbH[_0x43ea('0x86')]['query'](_0x193c15['toString'](),{'type':dbH[_0x43ea('0x86')][_0x43ea('0x87')][_0x43ea('0x88')]});}})[_0x43ea('0x26')](respondWithResult(_0x36024f,null))['catch'](handleError(_0x36024f,null));};function runReport(_0x1f10c5,_0x3524d3,_0x42f012){var _0x18b392=_0x3524d3[_0x43ea('0x29')];var _0x51d158=0xa;var _0x5b071b=[_0x43ea('0x53'),'left_join',_0x43ea('0x55'),_0x43ea('0x56')];var _0x204311={'SUM':_0x43ea('0x57'),'COUNT':_0x43ea('0x89'),'COUNT DISTINCT':_0x43ea('0x58'),'MAX':_0x43ea('0x8a'),'MIN':_0x43ea('0x59'),'AVG':_0x43ea('0x5a'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x43ea('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x21f9da={'SEC_TO_TIME':_0x43ea('0x5e'),'DATE':_0x43ea('0x5f'),'HOUR':_0x43ea('0x60'),'ROUND':_0x43ea('0x61'),'UNIX_TIMESTAMP':_0x43ea('0x62')};var _0x370ef6=function(_0x3013a1){return!_[_0x43ea('0x63')](['IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY',_0x43ea('0x66')],_0x3013a1);};var _0x1fca5d=function(_0x583762){if(!_0x583762||!_0x583762[_0x43ea('0x67')][_0x43ea('0x48')]){return'';}for(var _0x4e315c='(',_0x108a51=0x0;_0x108a51<_0x583762[_0x43ea('0x67')][_0x43ea('0x48')];_0x108a51+=0x1){_0x108a51>0x0&&(_0x4e315c+='\x20'+_0x583762[_0x43ea('0x8b')]+'\x20');_0x4e315c+=_0x583762['rules'][_0x108a51][_0x43ea('0x68')]?_0x1fca5d(_0x583762[_0x43ea('0x67')][_0x108a51][_0x43ea('0x68')]):_0x583762[_0x43ea('0x67')][_0x108a51][_0x43ea('0x69')]+'\x20'+_0x583762[_0x43ea('0x67')][_0x108a51][_0x43ea('0x6a')]+(_0x370ef6(_0x583762[_0x43ea('0x67')][_0x108a51][_0x43ea('0x6a')])?'\x20'+_0x583762['rules'][_0x108a51][_0x43ea('0x6b')]:'');}return _0x4e315c+')';};var _0x24c97b={'where':{'id':_0x1f10c5['id']}},_0xd4b77e,_0x15c715,_0x426a46,_0x32550b,_0x3d4e15;_0x24c97b=_[_0x43ea('0x3b')]({},_0x24c97b,_0x42f012);return db[_0x43ea('0x2d')][_0x43ea('0x49')](_0x24c97b)['then'](function(_0x550170){if(_0x550170){_0xd4b77e=_0x550170;return _0x550170[_0x43ea('0x6c')]();}return null;})['then'](function(_0x18706c){if(_0x18706c){if(!_0x18706c['length']){throw new db[(_0x43ea('0x6d'))][(_0x43ea('0x6e'))](_0x43ea('0x8c'),0x193);}_0x15c715=_0x18706c;return db['AnalyticMetric'][_0x43ea('0x42')]({'raw':!![]});}return null;})[_0x43ea('0x26')](function(_0x2abb3b){if(_0x2abb3b){_0x426a46=_[_0x43ea('0x70')](_0x2abb3b,'id');var _0x56a25b;var _0x5304d1=squel[_0x43ea('0x71')]();_0x5304d1[_0x43ea('0x72')](_0xd4b77e[_0x43ea('0x73')]);for(var _0x485344=0x0;_0x485344<_0x15c715[_0x43ea('0x48')];_0x485344+=0x1){_0x56a25b=_0x15c715[_0x485344][_0x43ea('0x74')]?_0x426a46[_0x15c715[_0x485344][_0x43ea('0x74')]][_0x43ea('0x75')]:_0x15c715[_0x485344]['field'];_0x56a25b=_0x15c715[_0x485344]['function']?_[_0x43ea('0x76')](_0x204311[_0x15c715[_0x485344][_0x43ea('0x77')]],'%s',_0x56a25b):_0x56a25b;_0x56a25b=_0x15c715[_0x485344][_0x43ea('0x78')]?_[_0x43ea('0x76')](_0x21f9da[_0x15c715[_0x485344][_0x43ea('0x78')]],'%s',_0x56a25b):_0x56a25b;if(_0x15c715[_0x485344][_0x43ea('0x79')]){_0x5304d1[_0x43ea('0x68')](_0x56a25b);}_0x15c715[_0x485344]['orderBy']&&_0x5304d1[_0x43ea('0x38')](_0x56a25b,_0x15c715[_0x485344][_0x43ea('0x7a')]===_0x43ea('0x7b')?![]:!![]);_0x5304d1[_0x43ea('0x69')](_0x56a25b,_0x15c715[_0x485344][_0x43ea('0x7c')]||_0x56a25b);}if(_0xd4b77e['joins']){_0xd4b77e['joins']=JSON[_0x43ea('0x7e')](_0xd4b77e['joins']);for(var _0x178705=0x0;_0x178705<_0xd4b77e[_0x43ea('0x7d')][_0x43ea('0x48')];_0x178705+=0x1){if(_0xd4b77e[_0x43ea('0x7d')][_0x178705][_0x43ea('0x2f')]&&_[_0x43ea('0x63')](_0x5b071b,_0xd4b77e[_0x43ea('0x7d')][_0x178705][_0x43ea('0x2f')])&&_0xd4b77e['joins'][_0x178705][_0x43ea('0x7f')]&&_0xd4b77e[_0x43ea('0x7d')][_0x178705][_0x43ea('0x80')]&&_0xd4b77e['joins'][_0x178705][_0x43ea('0x81')]){_0x5304d1[_0xd4b77e[_0x43ea('0x7d')][_0x178705][_0x43ea('0x2f')]](_0xd4b77e[_0x43ea('0x7d')][_0x178705][_0x43ea('0x80')],null,util[_0x43ea('0x78')](_0x43ea('0x82'),_0xd4b77e[_0x43ea('0x73')],_0xd4b77e[_0x43ea('0x7d')][_0x178705][_0x43ea('0x7f')],_0xd4b77e[_0x43ea('0x7d')][_0x178705][_0x43ea('0x80')],_0xd4b77e[_0x43ea('0x7d')][_0x178705][_0x43ea('0x81')]));}}}if(_0xd4b77e[_0x43ea('0x83')]){_0xd4b77e[_0x43ea('0x83')]=JSON[_0x43ea('0x7e')](_0xd4b77e['conditions']);_0x5304d1[_0x43ea('0x3c')](_0x1fca5d(_0xd4b77e[_0x43ea('0x83')][_0x43ea('0x68')]));}_0x3d4e15=_0x5304d1['clone']();_0x5304d1['limit'](_0x51d158);_0x5304d1[_0x43ea('0x1f')](0x0);return;}})['then'](function(){if(_0x3524d3[_0x43ea('0x8d')]===_0x43ea('0x8e')){return null;}var _0x41991b=_[_0x43ea('0x3b')](_0x3524d3,{'name':_0x3524d3[_0x43ea('0x8f')]||_0x3524d3[_0x43ea('0x29')]||_0xd4b77e[_0x43ea('0x29')],'basename':_0x18b392,'savename':util[_0x43ea('0x78')](_0x43ea('0x90'),_0x3524d3['name']||_0xd4b77e['name'],require(_0x43ea('0x91'))[_0x43ea('0x92')](0x4),_0x3524d3[_0x43ea('0x8d')]||'csv'),'reportId':_0xd4b77e['id'],'reportType':'custom'});return db[_0x43ea('0x93')][_0x43ea('0x4a')](_0x41991b,{'raw':!![]});})[_0x43ea('0x26')](function(_0x27b2cf){if(_0xd4b77e[_0x43ea('0x73')]===_0x43ea('0x94')){_0x3d4e15[_0x43ea('0x3c')](_0xd4b77e['table']+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x3524d3['startDate'],_0x3524d3[_0x43ea('0x95')]);}else{_0x3d4e15['where'](_0xd4b77e['table']+_0x43ea('0x96'),_0x3524d3['startDate'],_0x3524d3['endDate']);}if(_0x27b2cf){logger[_0x43ea('0x97')](_0x43ea('0x98'),_0x3d4e15[_0x43ea('0x85')]());require(_0x43ea('0x99'))['fork'](path['join'](__dirname,_0x43ea('0x9a'),_0x27b2cf[_0x43ea('0x8d')]),[_0x27b2cf['id'],_0x3d4e15[_0x43ea('0x85')](),path[_0x43ea('0x53')](__dirname,_0x43ea('0x9b'),_0x27b2cf[_0x43ea('0x9c')]),_0x18b392]);return _0x27b2cf;}else{var _0x36f761=squel[_0x43ea('0x71')]();_0x36f761[_0x43ea('0x72')]('('+_0x3d4e15[_0x43ea('0x85')]()+')',_0x43ea('0x9d'));_0x36f761[_0x43ea('0x69')](_0x43ea('0x9e'),_0x43ea('0x1e'));_0x3d4e15[_0x43ea('0x1d')](_0x3524d3['limit']||_0x51d158);_0x3d4e15['offset'](_0x3524d3[_0x43ea('0x1f')]||0x0);return dbH[_0x43ea('0x86')][_0x43ea('0x32')](_0x36f761['toString'](),{'type':dbH[_0x43ea('0x86')][_0x43ea('0x87')][_0x43ea('0x88')]})[_0x43ea('0x26')](function(_0xda6a9){if(!_0xda6a9[_0x43ea('0x48')]){_0x32550b=0x0;}else{_0x32550b=_0xda6a9[0x0][_0x43ea('0x1e')]||0x0;}return dbH[_0x43ea('0x86')][_0x43ea('0x32')](_0x3d4e15[_0x43ea('0x85')](),{'type':dbH[_0x43ea('0x86')][_0x43ea('0x87')][_0x43ea('0x88')]});})[_0x43ea('0x26')](function(_0x2e78bc){return{'rows':_0x2e78bc||[],'count':_0x32550b};});}});}exports[_0x43ea('0x9f')]=function(_0x38b6f9,_0x4f8e1a){return runReport(_0x38b6f9[_0x43ea('0x46')],_0x38b6f9[_0x43ea('0x32')],_0x38b6f9[_0x43ea('0x3f')])[_0x43ea('0x26')](respondWithResult(_0x4f8e1a,null))[_0x43ea('0x44')](handleError(_0x4f8e1a,null));};exports[_0x43ea('0xa0')]=runReport;exports['query']=function(_0x266d38,_0x200123){var _0x4ceb6e=0xa;var _0x3ba001=['join','left_join',_0x43ea('0x55'),_0x43ea('0x56')];var _0x4e8bf3={'SUM':_0x43ea('0x57'),'COUNT':_0x43ea('0x89'),'COUNT DISTINCT':_0x43ea('0x58'),'MAX':_0x43ea('0x8a'),'MIN':'MIN(%s)','AVG':_0x43ea('0x5a'),'GROUP_CONCAT':_0x43ea('0x5b'),'GROUP_CONCAT ASC':_0x43ea('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x3d9813={'SEC_TO_TIME':_0x43ea('0x5e'),'DATE':'DATE(%s)','HOUR':_0x43ea('0x60'),'ROUND':_0x43ea('0x61'),'UNIX_TIMESTAMP':_0x43ea('0x62')};var _0x34df71=function(_0x2d1d76){return!_[_0x43ea('0x63')]([_0x43ea('0x64'),_0x43ea('0xa1'),_0x43ea('0x65'),_0x43ea('0x66')],_0x2d1d76);};var _0x491210=function(_0x3375cd){if(!_0x3375cd||!_0x3375cd[_0x43ea('0x67')][_0x43ea('0x48')]){return'';}for(var _0xdcd9ab='(',_0x4da195=0x0;_0x4da195<_0x3375cd[_0x43ea('0x67')][_0x43ea('0x48')];_0x4da195+=0x1){_0x4da195>0x0&&(_0xdcd9ab+='\x20'+_0x3375cd[_0x43ea('0x8b')]+'\x20');_0xdcd9ab+=_0x3375cd[_0x43ea('0x67')][_0x4da195][_0x43ea('0x68')]?_0x491210(_0x3375cd['rules'][_0x4da195][_0x43ea('0x68')]):_0x3375cd[_0x43ea('0x67')][_0x4da195]['field']+'\x20'+_0x3375cd[_0x43ea('0x67')][_0x4da195]['condition']+(_0x34df71(_0x3375cd[_0x43ea('0x67')][_0x4da195][_0x43ea('0x6a')])?'\x20'+_0x3375cd[_0x43ea('0x67')][_0x4da195][_0x43ea('0x6b')]:'');}return _0xdcd9ab+')';};var _0x17b70c={'where':{'id':_0x266d38[_0x43ea('0x46')]['id']}},_0x3cfe83,_0x343425,_0x4d9327,_0x15c51a,_0x4fac53;_0x17b70c=_[_0x43ea('0x3b')]({},_0x17b70c,_0x266d38[_0x43ea('0x3f')]);return db[_0x43ea('0x2d')]['find'](_0x17b70c)[_0x43ea('0x26')](function(_0x169479){if(_0x169479){_0x3cfe83=_0x169479;return _0x169479[_0x43ea('0x6c')]();}return null;})[_0x43ea('0x26')](function(_0x5c8df0){if(_0x5c8df0){if(!_0x5c8df0[_0x43ea('0x48')]){throw new db[(_0x43ea('0x6d'))][(_0x43ea('0x6e'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x343425=_0x5c8df0;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0x43ea('0x26')](function(_0x3f02d2){if(_0x3f02d2){_0x4d9327=_[_0x43ea('0x70')](_0x3f02d2,'id');var _0x42e72a;var _0x156d72=squel['select']();_0x156d72[_0x43ea('0x72')](_0x3cfe83['table']);for(var _0x25bd86=0x0;_0x25bd86<_0x343425[_0x43ea('0x48')];_0x25bd86+=0x1){_0x42e72a=_0x343425[_0x25bd86][_0x43ea('0x74')]?_0x4d9327[_0x343425[_0x25bd86][_0x43ea('0x74')]][_0x43ea('0x75')]:_0x343425[_0x25bd86]['field'];_0x42e72a=_0x343425[_0x25bd86]['function']?_[_0x43ea('0x76')](_0x4e8bf3[_0x343425[_0x25bd86]['function']],'%s',_0x42e72a):_0x42e72a;_0x42e72a=_0x343425[_0x25bd86][_0x43ea('0x78')]?_[_0x43ea('0x76')](_0x3d9813[_0x343425[_0x25bd86][_0x43ea('0x78')]],'%s',_0x42e72a):_0x42e72a;if(_0x343425[_0x25bd86][_0x43ea('0x79')]){_0x156d72[_0x43ea('0x68')](_0x42e72a);}_0x343425[_0x25bd86][_0x43ea('0x7a')]&&_0x156d72[_0x43ea('0x38')](_0x42e72a,_0x343425[_0x25bd86]['orderBy']===_0x43ea('0x7b')?![]:!![]);_0x156d72['field'](_0x42e72a,_0x343425[_0x25bd86][_0x43ea('0x7c')]||_0x42e72a);}if(_0x3cfe83[_0x43ea('0x7d')]){_0x3cfe83[_0x43ea('0x7d')]=JSON[_0x43ea('0x7e')](_0x3cfe83[_0x43ea('0x7d')]);for(var _0x5c029b=0x0;_0x5c029b<_0x3cfe83['joins'][_0x43ea('0x48')];_0x5c029b+=0x1){if(_0x3cfe83['joins'][_0x5c029b]['type']&&_['includes'](_0x3ba001,_0x3cfe83[_0x43ea('0x7d')][_0x5c029b][_0x43ea('0x2f')])&&_0x3cfe83[_0x43ea('0x7d')][_0x5c029b][_0x43ea('0x7f')]&&_0x3cfe83[_0x43ea('0x7d')][_0x5c029b]['foreignTable']&&_0x3cfe83[_0x43ea('0x7d')][_0x5c029b][_0x43ea('0x81')]){_0x156d72[_0x3cfe83['joins'][_0x5c029b][_0x43ea('0x2f')]](_0x3cfe83['joins'][_0x5c029b][_0x43ea('0x80')],null,util[_0x43ea('0x78')](_0x43ea('0x82'),_0x3cfe83['table'],_0x3cfe83[_0x43ea('0x7d')][_0x5c029b]['parentKey'],_0x3cfe83[_0x43ea('0x7d')][_0x5c029b]['foreignTable'],_0x3cfe83[_0x43ea('0x7d')][_0x5c029b][_0x43ea('0x81')]));}}}if(_0x3cfe83[_0x43ea('0x83')]){_0x3cfe83[_0x43ea('0x83')]=JSON[_0x43ea('0x7e')](_0x3cfe83['conditions']);_0x156d72[_0x43ea('0x3c')](_0x491210(_0x3cfe83[_0x43ea('0x83')]['group']));}_0x4fac53=_0x156d72[_0x43ea('0xa2')]();_0x156d72[_0x43ea('0x1d')](_0x4ceb6e);_0x156d72[_0x43ea('0x1f')](0x0);logger[_0x43ea('0x84')]('Limited\x20Query:',_0x156d72[_0x43ea('0x85')]());return dbH['sequelize'][_0x43ea('0x32')](_0x156d72[_0x43ea('0x85')](),{'type':dbH[_0x43ea('0x86')][_0x43ea('0x87')][_0x43ea('0x88')]});}})[_0x43ea('0x26')](function(){return{'sql':_0x4fac53[_0x43ea('0x85')]()};})[_0x43ea('0x26')](respondWithResult(_0x200123,null))[_0x43ea('0x44')](handleError(_0x200123,null));};