Built motion from commit (unavailable).|2.5.11
[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 _0x4c90=['type','map','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','where','merge','filter','count','includeAll','include','findAll','rows','show','params','options','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','find','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','preview','join','right_join','cross_join','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','ROUND(%s)','includes','IS\x20NOT\x20EMPTY','rules','operator','group','field','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','select','table','MetricId','replace','format','groupBy','orderBy','order','DESC','alias','joins','parse','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','foreignKey','conditions','clone','Limited\x20Query:','toString','sequelize','SELECT','left_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','DATE(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','condition','keyBy','function','debug','QueryTypes','output','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','fork','../../components/export/','../../files/reports','savename','from','countTable','run','runReport','value','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','crypto','jsforce','desk.js','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','offset','limit','set','Content-Range','save','then','destroy','get','CustomReports','UserProfileResource','stack','name','index','AnalyticCustomReport','rawAttributes'];(function(_0xc3248d,_0x40996c){var _0x18e9f4=function(_0x86a96f){while(--_0x86a96f){_0xc3248d['push'](_0xc3248d['shift']());}};_0x18e9f4(++_0x40996c);}(_0x4c90,0x73));var _0x04c9=function(_0x29cb68,_0x500f0b){_0x29cb68=_0x29cb68-0x0;var _0x4fb66c=_0x4c90[_0x29cb68];return _0x4fb66c;};'use strict';var pdf=require(_0x04c9('0x0'));var emlformat=require(_0x04c9('0x1'));var rimraf=require(_0x04c9('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x04c9('0x3'));var rp=require('request-promise');var moment=require(_0x04c9('0x4'));var BPromise=require(_0x04c9('0x5'));var Mustache=require(_0x04c9('0x6'));var util=require(_0x04c9('0x7'));var path=require(_0x04c9('0x8'));var sox=require('sox');var csv=require(_0x04c9('0x9'));var ejs=require(_0x04c9('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x04c9('0xb'));var jsforce=require(_0x04c9('0xc'));var deskjs=require(_0x04c9('0xd'));var toCsv=require(_0x04c9('0x9'));var querystring=require('querystring');var Papa=require(_0x04c9('0xe'));var Redis=require(_0x04c9('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x04c9('0x10'));var logger=require(_0x04c9('0x11'))(_0x04c9('0x12'));var utils=require('../../config/utils');var config=require(_0x04c9('0x13'));var licenseUtil=require(_0x04c9('0x14'));var db=require(_0x04c9('0x15'))['db'];var dbH=require('../../mysqldb')[_0x04c9('0x16')];function respondWithStatusCode(_0xf34736,_0x1ecfbf){_0x1ecfbf=_0x1ecfbf||0xcc;return function(_0x660fbc){if(_0x660fbc){return _0xf34736[_0x04c9('0x17')](_0x1ecfbf);}return _0xf34736[_0x04c9('0x18')](_0x1ecfbf)[_0x04c9('0x19')]();};}function respondWithResult(_0x3d2589,_0x531146){_0x531146=_0x531146||0xc8;return function(_0x42aea9){if(_0x42aea9){return _0x3d2589[_0x04c9('0x18')](_0x531146)[_0x04c9('0x1a')](_0x42aea9);}};}function respondWithFilteredResult(_0x418208,_0x48d0c4){return function(_0x2be721){if(_0x2be721){var _0x4cad6d=_0x2be721['count'],_0x541c6d=_0x48d0c4[_0x04c9('0x1b')],_0x3a7a91=_0x48d0c4[_0x04c9('0x1b')]+_0x48d0c4[_0x04c9('0x1c')],_0x49dd88;if(_0x3a7a91>=_0x4cad6d){_0x3a7a91=_0x4cad6d;_0x49dd88=0xc8;}else{_0x49dd88=0xce;}_0x418208['status'](_0x49dd88);return _0x418208[_0x04c9('0x1d')](_0x04c9('0x1e'),_0x541c6d+'-'+_0x3a7a91+'/'+_0x4cad6d)[_0x04c9('0x1a')](_0x2be721);}return null;};}function patchUpdates(_0x16307f){return function(_0x357344){try{jsonpatch['apply'](_0x357344,_0x16307f,!![]);}catch(_0x1555dc){return BPromise['reject'](_0x1555dc);}return _0x357344[_0x04c9('0x1f')]();};}function saveUpdates(_0x2d5691,_0xb3e0){return function(_0x1817c3){if(_0x1817c3){return _0x1817c3['update'](_0x2d5691)[_0x04c9('0x20')](function(_0x48cae2){return _0x48cae2;});}return null;};}function removeEntity(_0x2cd2bb,_0x37b337){return function(_0x1dc155){if(_0x1dc155){return _0x1dc155[_0x04c9('0x21')]()[_0x04c9('0x20')](function(){var _0x5889fc=_0x1dc155[_0x04c9('0x22')]({'plain':!![]});var _0x57fb99=_0x04c9('0x23');return db[_0x04c9('0x24')][_0x04c9('0x21')]({'where':{'type':_0x57fb99,'resourceId':_0x5889fc['id']}})[_0x04c9('0x20')](function(){return _0x1dc155;});})[_0x04c9('0x20')](function(){_0x2cd2bb[_0x04c9('0x18')](0xcc)[_0x04c9('0x19')]();});}};}function handleEntityNotFound(_0x4117d1,_0x393e9b){return function(_0x518417){if(!_0x518417){_0x4117d1[_0x04c9('0x17')](0x194);}return _0x518417;};}function handleError(_0x323655,_0x5bab3d){_0x5bab3d=_0x5bab3d||0x1f4;return function(_0x38de1f){logger['error'](_0x38de1f[_0x04c9('0x25')]);if(_0x38de1f[_0x04c9('0x26')]){delete _0x38de1f[_0x04c9('0x26')];}_0x323655['status'](_0x5bab3d)['send'](_0x38de1f);};}exports[_0x04c9('0x27')]=function(_0x303446,_0x1e7fde){var _0x2a3d6c={},_0x585ed4={},_0x275e3b={'count':0x0,'rows':[]};var _0x786dc2=_['map'](db[_0x04c9('0x28')][_0x04c9('0x29')],function(_0x5ea67a){return{'name':_0x5ea67a['fieldName'],'type':_0x5ea67a[_0x04c9('0x2a')]['key']};});_0x585ed4['model']=_[_0x04c9('0x2b')](_0x786dc2,_0x04c9('0x26'));_0x585ed4[_0x04c9('0x2c')]=_[_0x04c9('0x2d')](_0x303446['query']);_0x585ed4['filters']=_[_0x04c9('0x2e')](_0x585ed4[_0x04c9('0x2f')],_0x585ed4['query']);_0x2a3d6c[_0x04c9('0x30')]=_['intersection'](_0x585ed4[_0x04c9('0x2f')],qs[_0x04c9('0x31')](_0x303446[_0x04c9('0x2c')][_0x04c9('0x31')]));_0x2a3d6c[_0x04c9('0x30')]=_0x2a3d6c[_0x04c9('0x30')][_0x04c9('0x32')]?_0x2a3d6c[_0x04c9('0x30')]:_0x585ed4[_0x04c9('0x2f')];if(!_0x303446[_0x04c9('0x2c')][_0x04c9('0x33')](_0x04c9('0x34'))){_0x2a3d6c[_0x04c9('0x1c')]=qs[_0x04c9('0x1c')](_0x303446[_0x04c9('0x2c')]['limit']);_0x2a3d6c[_0x04c9('0x1b')]=qs[_0x04c9('0x1b')](_0x303446[_0x04c9('0x2c')][_0x04c9('0x1b')]);}_0x2a3d6c['order']=qs[_0x04c9('0x35')](_0x303446[_0x04c9('0x2c')][_0x04c9('0x35')]);_0x2a3d6c['where']=qs[_0x04c9('0x36')](_['pick'](_0x303446[_0x04c9('0x2c')],_0x585ed4[_0x04c9('0x36')]),_0x786dc2);if(_0x303446['query']['filter']){_0x2a3d6c[_0x04c9('0x37')]=_[_0x04c9('0x38')](_0x2a3d6c[_0x04c9('0x37')],{'$or':_[_0x04c9('0x2b')](_0x786dc2,function(_0x1b0054){if(_0x1b0054[_0x04c9('0x2a')]!=='VIRTUAL'){var _0x35366e={};_0x35366e[_0x1b0054[_0x04c9('0x26')]]={'$like':'%'+_0x303446['query'][_0x04c9('0x39')]+'%'};return _0x35366e;}})});}_0x2a3d6c=_[_0x04c9('0x38')]({},_0x2a3d6c,_0x303446['options']);var _0x3e4461={'where':_0x2a3d6c[_0x04c9('0x37')]};return db[_0x04c9('0x28')][_0x04c9('0x3a')](_0x3e4461)[_0x04c9('0x20')](function(_0x1cf2f4){_0x275e3b[_0x04c9('0x3a')]=_0x1cf2f4;if(_0x303446[_0x04c9('0x2c')][_0x04c9('0x3b')]){_0x2a3d6c[_0x04c9('0x3c')]=[{'all':!![]}];}return db[_0x04c9('0x28')][_0x04c9('0x3d')](_0x2a3d6c);})[_0x04c9('0x20')](function(_0x194272){_0x275e3b[_0x04c9('0x3e')]=_0x194272;return _0x275e3b;})[_0x04c9('0x20')](respondWithFilteredResult(_0x1e7fde,_0x2a3d6c))['catch'](handleError(_0x1e7fde,null));};exports[_0x04c9('0x3f')]=function(_0x26173b,_0x5b58ca){var _0x101172={'raw':![],'where':{'id':_0x26173b[_0x04c9('0x40')]['id']}},_0x2cd298={};_0x2cd298[_0x04c9('0x2f')]=_['keys'](db[_0x04c9('0x28')][_0x04c9('0x29')]);_0x2cd298[_0x04c9('0x2c')]=_[_0x04c9('0x2d')](_0x26173b[_0x04c9('0x2c')]);_0x2cd298[_0x04c9('0x36')]=_['intersection'](_0x2cd298[_0x04c9('0x2f')],_0x2cd298[_0x04c9('0x2c')]);_0x101172[_0x04c9('0x30')]=_[_0x04c9('0x2e')](_0x2cd298[_0x04c9('0x2f')],qs[_0x04c9('0x31')](_0x26173b['query']['fields']));_0x101172[_0x04c9('0x30')]=_0x101172['attributes']['length']?_0x101172[_0x04c9('0x30')]:_0x2cd298[_0x04c9('0x2f')];if(_0x26173b[_0x04c9('0x2c')][_0x04c9('0x3b')]){_0x101172[_0x04c9('0x3c')]=[{'all':!![]}];}_0x101172=_[_0x04c9('0x38')]({},_0x101172,_0x26173b[_0x04c9('0x41')]);return db['AnalyticCustomReport']['find'](_0x101172)[_0x04c9('0x20')](handleEntityNotFound(_0x5b58ca,null))['then'](respondWithResult(_0x5b58ca,null))[_0x04c9('0x42')](handleError(_0x5b58ca,null));};exports[_0x04c9('0x43')]=function(_0x2caf66,_0x5a2c42){return db[_0x04c9('0x28')][_0x04c9('0x43')](_0x2caf66['body'],{})[_0x04c9('0x20')](function(_0x4db042){var _0x1d13a4=_0x2caf66[_0x04c9('0x44')][_0x04c9('0x22')]({'plain':!![]});if(!_0x1d13a4)throw new Error(_0x04c9('0x45'));if(_0x1d13a4[_0x04c9('0x46')]===_0x04c9('0x44')){var _0x12105a=_0x4db042[_0x04c9('0x22')]({'plain':!![]});var _0x14f6d1=_0x04c9('0x47');return db['UserProfileSection'][_0x04c9('0x48')]({'where':{'name':_0x14f6d1,'userProfileId':_0x1d13a4[_0x04c9('0x49')]},'raw':!![]})[_0x04c9('0x20')](function(_0x1c8804){if(_0x1c8804&&_0x1c8804['autoAssociation']===0x0){return db['UserProfileResource'][_0x04c9('0x43')]({'name':_0x12105a['name'],'resourceId':_0x12105a['id'],'type':_0x04c9('0x23'),'sectionId':_0x1c8804['id']},{})[_0x04c9('0x20')](function(){return _0x4db042;});}else{return _0x4db042;}})[_0x04c9('0x42')](function(_0x32385e){logger[_0x04c9('0x4a')](_0x04c9('0x4b'),_0x32385e);throw _0x32385e;});}return _0x4db042;})[_0x04c9('0x20')](respondWithResult(_0x5a2c42,0xc9))['catch'](handleError(_0x5a2c42,null));};exports[_0x04c9('0x4c')]=function(_0xbcf23,_0x282e35){if(_0xbcf23['body']['id']){delete _0xbcf23['body']['id'];}return db['AnalyticCustomReport'][_0x04c9('0x48')]({'where':{'id':_0xbcf23['params']['id']}})['then'](handleEntityNotFound(_0x282e35,null))[_0x04c9('0x20')](saveUpdates(_0xbcf23[_0x04c9('0x4d')],null))[_0x04c9('0x20')](respondWithResult(_0x282e35,null))['catch'](handleError(_0x282e35,null));};exports[_0x04c9('0x21')]=function(_0x1e6316,_0x39aebc){return db[_0x04c9('0x28')][_0x04c9('0x48')]({'where':{'id':_0x1e6316[_0x04c9('0x40')]['id']}})[_0x04c9('0x20')](handleEntityNotFound(_0x39aebc,null))['then'](removeEntity(_0x39aebc,null))[_0x04c9('0x42')](handleError(_0x39aebc,null));};exports[_0x04c9('0x4e')]=function(_0x1b17e3,_0x24479f){var _0x53e9db=0xa;var _0x2b911a=[_0x04c9('0x4f'),'left_join',_0x04c9('0x50'),_0x04c9('0x51')];var _0x40a217={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x04c9('0x52'),'AVG':_0x04c9('0x53'),'GROUP_CONCAT':_0x04c9('0x54'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x04c9('0x55')};var _0x2d6b60={'SEC_TO_TIME':_0x04c9('0x56'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0x04c9('0x57'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x4e8afe=function(_0x5be214){return!_[_0x04c9('0x58')](['IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY',_0x04c9('0x59')],_0x5be214);};var _0x7ff07f=function(_0x5de580){if(!_0x5de580||!_0x5de580[_0x04c9('0x5a')][_0x04c9('0x32')]){return'';}for(var _0x454998='(',_0x2afc9c=0x0;_0x2afc9c<_0x5de580[_0x04c9('0x5a')][_0x04c9('0x32')];_0x2afc9c+=0x1){_0x2afc9c>0x0&&(_0x454998+='\x20'+_0x5de580[_0x04c9('0x5b')]+'\x20');_0x454998+=_0x5de580[_0x04c9('0x5a')][_0x2afc9c][_0x04c9('0x5c')]?_0x7ff07f(_0x5de580['rules'][_0x2afc9c][_0x04c9('0x5c')]):_0x5de580[_0x04c9('0x5a')][_0x2afc9c][_0x04c9('0x5d')]+'\x20'+_0x5de580[_0x04c9('0x5a')][_0x2afc9c]['condition']+(_0x4e8afe(_0x5de580[_0x04c9('0x5a')][_0x2afc9c]['condition'])?'\x20'+_0x5de580[_0x04c9('0x5a')][_0x2afc9c]['value']:'');}return _0x454998+')';};var _0x581dea={'where':{'id':_0x1b17e3[_0x04c9('0x40')]['id']}},_0x4c1505,_0x44d357,_0x24df7c,_0x1bb5a3,_0x44fd19;_0x581dea=_[_0x04c9('0x38')]({},_0x581dea,_0x1b17e3[_0x04c9('0x41')]);return db['AnalyticCustomReport'][_0x04c9('0x48')](_0x581dea)[_0x04c9('0x20')](function(_0x5e0a64){if(_0x5e0a64){_0x4c1505=_0x5e0a64;return _0x5e0a64[_0x04c9('0x5e')]();}return null;})['then'](function(_0xb7534c){if(_0xb7534c){if(!_0xb7534c['length']){throw new db[(_0x04c9('0x5f'))][(_0x04c9('0x60'))](_0x04c9('0x61'),0x193);}_0x44d357=_0xb7534c;return db[_0x04c9('0x62')]['findAll']({'raw':!![]});}return null;})[_0x04c9('0x20')](function(_0x3f012f){if(_0x3f012f){_0x24df7c=_['keyBy'](_0x3f012f,'id');var _0x790101;var _0x229e8f=squel[_0x04c9('0x63')]();_0x229e8f['from'](_0x4c1505[_0x04c9('0x64')]);for(var _0x27ff8d=0x0;_0x27ff8d<_0x44d357[_0x04c9('0x32')];_0x27ff8d+=0x1){_0x790101=_0x44d357[_0x27ff8d][_0x04c9('0x65')]?_0x24df7c[_0x44d357[_0x27ff8d][_0x04c9('0x65')]]['metric']:_0x44d357[_0x27ff8d]['field'];_0x790101=_0x44d357[_0x27ff8d]['function']?_[_0x04c9('0x66')](_0x40a217[_0x44d357[_0x27ff8d]['function']],'%s',_0x790101):_0x790101;_0x790101=_0x44d357[_0x27ff8d][_0x04c9('0x67')]?_[_0x04c9('0x66')](_0x2d6b60[_0x44d357[_0x27ff8d]['format']],'%s',_0x790101):_0x790101;if(_0x44d357[_0x27ff8d][_0x04c9('0x68')]){_0x229e8f[_0x04c9('0x5c')](_0x790101);}_0x44d357[_0x27ff8d][_0x04c9('0x69')]&&_0x229e8f[_0x04c9('0x6a')](_0x790101,_0x44d357[_0x27ff8d][_0x04c9('0x69')]===_0x04c9('0x6b')?![]:!![]);_0x229e8f['field'](_0x790101,_0x44d357[_0x27ff8d][_0x04c9('0x6c')]||_0x790101);}if(_0x4c1505[_0x04c9('0x6d')]){_0x4c1505[_0x04c9('0x6d')]=JSON[_0x04c9('0x6e')](_0x4c1505[_0x04c9('0x6d')]);for(var _0x3d980e=0x0;_0x3d980e<_0x4c1505['joins'][_0x04c9('0x32')];_0x3d980e+=0x1){if(_0x4c1505[_0x04c9('0x6d')][_0x3d980e][_0x04c9('0x2a')]&&_[_0x04c9('0x58')](_0x2b911a,_0x4c1505[_0x04c9('0x6d')][_0x3d980e][_0x04c9('0x2a')])&&_0x4c1505[_0x04c9('0x6d')][_0x3d980e][_0x04c9('0x6f')]&&_0x4c1505[_0x04c9('0x6d')][_0x3d980e]['foreignTable']&&_0x4c1505[_0x04c9('0x6d')][_0x3d980e]['foreignKey']){_0x229e8f[_0x4c1505[_0x04c9('0x6d')][_0x3d980e]['type']](_0x4c1505[_0x04c9('0x6d')][_0x3d980e][_0x04c9('0x70')],null,util[_0x04c9('0x67')](_0x04c9('0x71'),_0x4c1505[_0x04c9('0x64')],_0x4c1505[_0x04c9('0x6d')][_0x3d980e][_0x04c9('0x6f')],_0x4c1505['joins'][_0x3d980e][_0x04c9('0x70')],_0x4c1505[_0x04c9('0x6d')][_0x3d980e][_0x04c9('0x72')]));}}}if(_0x4c1505['conditions']){_0x4c1505[_0x04c9('0x73')]=JSON['parse'](_0x4c1505[_0x04c9('0x73')]);_0x229e8f[_0x04c9('0x37')](_0x7ff07f(_0x4c1505['conditions'][_0x04c9('0x5c')]));}_0x44fd19=_0x229e8f[_0x04c9('0x74')]();_0x229e8f[_0x04c9('0x1c')](_0x53e9db);_0x229e8f[_0x04c9('0x1b')](0x0);logger['debug'](_0x04c9('0x75'),_0x229e8f[_0x04c9('0x76')]());return db[_0x04c9('0x77')][_0x04c9('0x2c')](_0x229e8f['toString'](),{'type':db['sequelize']['QueryTypes'][_0x04c9('0x78')]});}})[_0x04c9('0x20')](respondWithResult(_0x24479f,null))['catch'](handleError(_0x24479f,null));};function runReport(_0x3417f0,_0x3be4c7,_0x3707db){var _0x233a9a=_0x3be4c7[_0x04c9('0x26')];var _0x462720=0xa;var _0x3840b3=[_0x04c9('0x4f'),_0x04c9('0x79'),_0x04c9('0x50'),_0x04c9('0x51')];var _0x5c3062={'SUM':_0x04c9('0x7a'),'COUNT':_0x04c9('0x7b'),'COUNT DISTINCT':_0x04c9('0x7c'),'MAX':_0x04c9('0x7d'),'MIN':_0x04c9('0x52'),'AVG':_0x04c9('0x53'),'GROUP_CONCAT':_0x04c9('0x54'),'GROUP_CONCAT ASC':_0x04c9('0x7e'),'GROUP_CONCAT DESC':_0x04c9('0x55')};var _0x5907ba={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x04c9('0x7f'),'HOUR':_0x04c9('0x80'),'ROUND':_0x04c9('0x57'),'UNIX_TIMESTAMP':_0x04c9('0x81')};var _0x5eae0a=function(_0x45c1df){return!_[_0x04c9('0x58')]([_0x04c9('0x82'),_0x04c9('0x83'),_0x04c9('0x84'),_0x04c9('0x59')],_0x45c1df);};var _0x40b929=function(_0x1248a3){if(!_0x1248a3||!_0x1248a3[_0x04c9('0x5a')][_0x04c9('0x32')]){return'';}for(var _0x5dbb33='(',_0x4ed340=0x0;_0x4ed340<_0x1248a3[_0x04c9('0x5a')]['length'];_0x4ed340+=0x1){_0x4ed340>0x0&&(_0x5dbb33+='\x20'+_0x1248a3[_0x04c9('0x5b')]+'\x20');_0x5dbb33+=_0x1248a3[_0x04c9('0x5a')][_0x4ed340][_0x04c9('0x5c')]?_0x40b929(_0x1248a3[_0x04c9('0x5a')][_0x4ed340][_0x04c9('0x5c')]):_0x1248a3['rules'][_0x4ed340][_0x04c9('0x5d')]+'\x20'+_0x1248a3[_0x04c9('0x5a')][_0x4ed340]['condition']+(_0x5eae0a(_0x1248a3[_0x04c9('0x5a')][_0x4ed340][_0x04c9('0x85')])?'\x20'+_0x1248a3['rules'][_0x4ed340]['value']:'');}return _0x5dbb33+')';};var _0x10c33e={'where':{'id':_0x3417f0['id']}},_0x379f4b,_0x3cc62b,_0x27f6a3,_0x3e1c87,_0x148d67;_0x10c33e=_['merge']({},_0x10c33e,_0x3707db);return db[_0x04c9('0x28')][_0x04c9('0x48')](_0x10c33e)[_0x04c9('0x20')](function(_0x31f4d3){if(_0x31f4d3){_0x379f4b=_0x31f4d3;return _0x31f4d3[_0x04c9('0x5e')]();}return null;})[_0x04c9('0x20')](function(_0x15f677){if(_0x15f677){if(!_0x15f677[_0x04c9('0x32')]){throw new db[(_0x04c9('0x5f'))][(_0x04c9('0x60'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x3cc62b=_0x15f677;return db['AnalyticMetric'][_0x04c9('0x3d')]({'raw':!![]});}return null;})[_0x04c9('0x20')](function(_0x661022){if(_0x661022){_0x27f6a3=_[_0x04c9('0x86')](_0x661022,'id');var _0x449b80;var _0x157707=squel[_0x04c9('0x63')]();_0x157707['from'](_0x379f4b['table']);for(var _0xc27adf=0x0;_0xc27adf<_0x3cc62b[_0x04c9('0x32')];_0xc27adf+=0x1){_0x449b80=_0x3cc62b[_0xc27adf][_0x04c9('0x65')]?_0x27f6a3[_0x3cc62b[_0xc27adf][_0x04c9('0x65')]]['metric']:_0x3cc62b[_0xc27adf][_0x04c9('0x5d')];_0x449b80=_0x3cc62b[_0xc27adf][_0x04c9('0x87')]?_[_0x04c9('0x66')](_0x5c3062[_0x3cc62b[_0xc27adf][_0x04c9('0x87')]],'%s',_0x449b80):_0x449b80;_0x449b80=_0x3cc62b[_0xc27adf][_0x04c9('0x67')]?_[_0x04c9('0x66')](_0x5907ba[_0x3cc62b[_0xc27adf]['format']],'%s',_0x449b80):_0x449b80;if(_0x3cc62b[_0xc27adf][_0x04c9('0x68')]){_0x157707[_0x04c9('0x5c')](_0x449b80);}_0x3cc62b[_0xc27adf][_0x04c9('0x69')]&&_0x157707[_0x04c9('0x6a')](_0x449b80,_0x3cc62b[_0xc27adf][_0x04c9('0x69')]===_0x04c9('0x6b')?![]:!![]);_0x157707[_0x04c9('0x5d')](_0x449b80,_0x3cc62b[_0xc27adf][_0x04c9('0x6c')]||_0x449b80);}if(_0x379f4b[_0x04c9('0x6d')]){_0x379f4b[_0x04c9('0x6d')]=JSON[_0x04c9('0x6e')](_0x379f4b[_0x04c9('0x6d')]);for(var _0x166ca8=0x0;_0x166ca8<_0x379f4b['joins']['length'];_0x166ca8+=0x1){if(_0x379f4b[_0x04c9('0x6d')][_0x166ca8][_0x04c9('0x2a')]&&_['includes'](_0x3840b3,_0x379f4b['joins'][_0x166ca8]['type'])&&_0x379f4b['joins'][_0x166ca8][_0x04c9('0x6f')]&&_0x379f4b['joins'][_0x166ca8][_0x04c9('0x70')]&&_0x379f4b[_0x04c9('0x6d')][_0x166ca8][_0x04c9('0x72')]){_0x157707[_0x379f4b[_0x04c9('0x6d')][_0x166ca8][_0x04c9('0x2a')]](_0x379f4b[_0x04c9('0x6d')][_0x166ca8][_0x04c9('0x70')],null,util[_0x04c9('0x67')](_0x04c9('0x71'),_0x379f4b[_0x04c9('0x64')],_0x379f4b['joins'][_0x166ca8]['parentKey'],_0x379f4b[_0x04c9('0x6d')][_0x166ca8]['foreignTable'],_0x379f4b[_0x04c9('0x6d')][_0x166ca8]['foreignKey']));}}}if(_0x379f4b[_0x04c9('0x73')]){_0x379f4b[_0x04c9('0x73')]=JSON[_0x04c9('0x6e')](_0x379f4b[_0x04c9('0x73')]);_0x157707['where'](_0x40b929(_0x379f4b[_0x04c9('0x73')][_0x04c9('0x5c')]));}_0x148d67=_0x157707[_0x04c9('0x74')]();_0x157707[_0x04c9('0x1c')](_0x462720);_0x157707[_0x04c9('0x1b')](0x0);logger[_0x04c9('0x88')](_0x04c9('0x75'),_0x157707[_0x04c9('0x76')]());return db[_0x04c9('0x77')][_0x04c9('0x2c')](_0x157707[_0x04c9('0x76')](),{'type':db[_0x04c9('0x77')][_0x04c9('0x89')][_0x04c9('0x78')]});}})[_0x04c9('0x20')](function(_0x387a51){if(!_0x387a51[_0x04c9('0x32')]){throw new db[(_0x04c9('0x5f'))]['ValidationErrorItem']('No\x20available\x20data',0xcc);}if(_0x3be4c7[_0x04c9('0x8a')]==='web'){return null;}var _0x3218b8=_[_0x04c9('0x38')](_0x3be4c7,{'name':_0x3be4c7['fullPath']||_0x3be4c7[_0x04c9('0x26')]||_0x379f4b['name'],'basename':_0x233a9a,'savename':util[_0x04c9('0x67')]('%s-%s.%s',_0x3be4c7['name']||_0x379f4b[_0x04c9('0x26')],require(_0x04c9('0x8b'))[_0x04c9('0x8c')](0x4),_0x3be4c7['output']||_0x04c9('0x8d')),'reportId':_0x379f4b['id'],'reportType':_0x04c9('0x8e')});return db[_0x04c9('0x8f')][_0x04c9('0x43')](_0x3218b8,{'raw':!![]});})[_0x04c9('0x20')](function(_0x5cd73e){if(_0x379f4b[_0x04c9('0x64')]===_0x04c9('0x90')){_0x148d67[_0x04c9('0x37')](_0x379f4b[_0x04c9('0x64')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x3be4c7['startDate'],_0x3be4c7[_0x04c9('0x91')]);}else{_0x148d67[_0x04c9('0x37')](_0x379f4b[_0x04c9('0x64')]+_0x04c9('0x92'),_0x3be4c7['startDate'],_0x3be4c7[_0x04c9('0x91')]);}if(_0x5cd73e){logger[_0x04c9('0x93')]('Run\x20Query:',_0x148d67[_0x04c9('0x76')]());require('child_process')[_0x04c9('0x94')](path['join'](__dirname,_0x04c9('0x95'),_0x5cd73e['output']),[_0x5cd73e['id'],_0x148d67[_0x04c9('0x76')](),path['join'](__dirname,_0x04c9('0x96'),_0x5cd73e[_0x04c9('0x97')]),_0x233a9a]);return _0x5cd73e;}else{var _0x3f2d8d=squel[_0x04c9('0x63')]();_0x3f2d8d[_0x04c9('0x98')]('('+_0x148d67[_0x04c9('0x76')]()+')',_0x04c9('0x99'));_0x3f2d8d[_0x04c9('0x5d')]('COUNT(*)',_0x04c9('0x3a'));_0x148d67[_0x04c9('0x1c')](_0x3be4c7[_0x04c9('0x1c')]||_0x462720);_0x148d67[_0x04c9('0x1b')](_0x3be4c7[_0x04c9('0x1b')]||0x0);return dbH[_0x04c9('0x77')][_0x04c9('0x2c')](_0x3f2d8d[_0x04c9('0x76')](),{'type':dbH[_0x04c9('0x77')][_0x04c9('0x89')]['SELECT']})[_0x04c9('0x20')](function(_0x43e40b){if(!_0x43e40b[_0x04c9('0x32')]){_0x3e1c87=0x0;}else{_0x3e1c87=_0x43e40b[0x0][_0x04c9('0x3a')]||0x0;}return dbH[_0x04c9('0x77')][_0x04c9('0x2c')](_0x148d67['toString'](),{'type':dbH[_0x04c9('0x77')]['QueryTypes'][_0x04c9('0x78')]});})[_0x04c9('0x20')](function(_0xbc5df5){return{'rows':_0xbc5df5||[],'count':_0x3e1c87};});}});}exports[_0x04c9('0x9a')]=function(_0x27e606,_0x53b98a){return runReport(_0x27e606[_0x04c9('0x40')],_0x27e606[_0x04c9('0x2c')],_0x27e606[_0x04c9('0x41')])[_0x04c9('0x20')](respondWithResult(_0x53b98a,null))[_0x04c9('0x42')](handleError(_0x53b98a,null));};exports[_0x04c9('0x9b')]=runReport;exports[_0x04c9('0x2c')]=function(_0xc191a1,_0x2df95f){var _0x5de507=0xa;var _0x4db27c=[_0x04c9('0x4f'),_0x04c9('0x79'),_0x04c9('0x50'),_0x04c9('0x51')];var _0x33cb57={'SUM':_0x04c9('0x7a'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x04c9('0x7c'),'MAX':_0x04c9('0x7d'),'MIN':_0x04c9('0x52'),'AVG':_0x04c9('0x53'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x04c9('0x55')};var _0xdf422c={'SEC_TO_TIME':_0x04c9('0x56'),'DATE':_0x04c9('0x7f'),'HOUR':_0x04c9('0x80'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x04c9('0x81')};var _0x4ae5b0=function(_0x2f5864){return!_[_0x04c9('0x58')]([_0x04c9('0x82'),_0x04c9('0x83'),_0x04c9('0x84'),_0x04c9('0x59')],_0x2f5864);};var _0x595822=function(_0x1d79fb){if(!_0x1d79fb||!_0x1d79fb[_0x04c9('0x5a')]['length']){return'';}for(var _0x5b7173='(',_0x2a592d=0x0;_0x2a592d<_0x1d79fb[_0x04c9('0x5a')][_0x04c9('0x32')];_0x2a592d+=0x1){_0x2a592d>0x0&&(_0x5b7173+='\x20'+_0x1d79fb[_0x04c9('0x5b')]+'\x20');_0x5b7173+=_0x1d79fb[_0x04c9('0x5a')][_0x2a592d]['group']?_0x595822(_0x1d79fb[_0x04c9('0x5a')][_0x2a592d][_0x04c9('0x5c')]):_0x1d79fb['rules'][_0x2a592d][_0x04c9('0x5d')]+'\x20'+_0x1d79fb[_0x04c9('0x5a')][_0x2a592d]['condition']+(_0x4ae5b0(_0x1d79fb[_0x04c9('0x5a')][_0x2a592d]['condition'])?'\x20'+_0x1d79fb[_0x04c9('0x5a')][_0x2a592d][_0x04c9('0x9c')]:'');}return _0x5b7173+')';};var _0x21a2f7={'where':{'id':_0xc191a1[_0x04c9('0x40')]['id']}},_0x199b0b,_0x4e88af,_0x356635,_0x467fa3,_0x37fed3;_0x21a2f7=_[_0x04c9('0x38')]({},_0x21a2f7,_0xc191a1[_0x04c9('0x41')]);return db[_0x04c9('0x28')][_0x04c9('0x48')](_0x21a2f7)[_0x04c9('0x20')](function(_0x19eddf){if(_0x19eddf){_0x199b0b=_0x19eddf;return _0x19eddf[_0x04c9('0x5e')]();}return null;})[_0x04c9('0x20')](function(_0x2f0c86){if(_0x2f0c86){if(!_0x2f0c86[_0x04c9('0x32')]){throw new db['Sequelize']['ValidationErrorItem'](_0x04c9('0x61'),0x193);}_0x4e88af=_0x2f0c86;return db[_0x04c9('0x62')][_0x04c9('0x3d')]({'raw':!![]});}return null;})[_0x04c9('0x20')](function(_0x4e1b6f){if(_0x4e1b6f){_0x356635=_['keyBy'](_0x4e1b6f,'id');var _0x303def;var _0x3d38e4=squel[_0x04c9('0x63')]();_0x3d38e4['from'](_0x199b0b[_0x04c9('0x64')]);for(var _0xbd5cd3=0x0;_0xbd5cd3<_0x4e88af[_0x04c9('0x32')];_0xbd5cd3+=0x1){_0x303def=_0x4e88af[_0xbd5cd3][_0x04c9('0x65')]?_0x356635[_0x4e88af[_0xbd5cd3][_0x04c9('0x65')]]['metric']:_0x4e88af[_0xbd5cd3][_0x04c9('0x5d')];_0x303def=_0x4e88af[_0xbd5cd3][_0x04c9('0x87')]?_[_0x04c9('0x66')](_0x33cb57[_0x4e88af[_0xbd5cd3][_0x04c9('0x87')]],'%s',_0x303def):_0x303def;_0x303def=_0x4e88af[_0xbd5cd3][_0x04c9('0x67')]?_[_0x04c9('0x66')](_0xdf422c[_0x4e88af[_0xbd5cd3][_0x04c9('0x67')]],'%s',_0x303def):_0x303def;if(_0x4e88af[_0xbd5cd3][_0x04c9('0x68')]){_0x3d38e4['group'](_0x303def);}_0x4e88af[_0xbd5cd3][_0x04c9('0x69')]&&_0x3d38e4[_0x04c9('0x6a')](_0x303def,_0x4e88af[_0xbd5cd3]['orderBy']==='DESC'?![]:!![]);_0x3d38e4['field'](_0x303def,_0x4e88af[_0xbd5cd3][_0x04c9('0x6c')]||_0x303def);}if(_0x199b0b[_0x04c9('0x6d')]){_0x199b0b['joins']=JSON[_0x04c9('0x6e')](_0x199b0b[_0x04c9('0x6d')]);for(var _0x3910c1=0x0;_0x3910c1<_0x199b0b[_0x04c9('0x6d')][_0x04c9('0x32')];_0x3910c1+=0x1){if(_0x199b0b[_0x04c9('0x6d')][_0x3910c1][_0x04c9('0x2a')]&&_[_0x04c9('0x58')](_0x4db27c,_0x199b0b['joins'][_0x3910c1][_0x04c9('0x2a')])&&_0x199b0b[_0x04c9('0x6d')][_0x3910c1][_0x04c9('0x6f')]&&_0x199b0b[_0x04c9('0x6d')][_0x3910c1][_0x04c9('0x70')]&&_0x199b0b['joins'][_0x3910c1][_0x04c9('0x72')]){_0x3d38e4[_0x199b0b['joins'][_0x3910c1][_0x04c9('0x2a')]](_0x199b0b[_0x04c9('0x6d')][_0x3910c1][_0x04c9('0x70')],null,util[_0x04c9('0x67')]('%s.%s\x20=\x20%s.%s',_0x199b0b[_0x04c9('0x64')],_0x199b0b[_0x04c9('0x6d')][_0x3910c1]['parentKey'],_0x199b0b[_0x04c9('0x6d')][_0x3910c1]['foreignTable'],_0x199b0b[_0x04c9('0x6d')][_0x3910c1]['foreignKey']));}}}if(_0x199b0b[_0x04c9('0x73')]){_0x199b0b[_0x04c9('0x73')]=JSON['parse'](_0x199b0b[_0x04c9('0x73')]);_0x3d38e4['where'](_0x595822(_0x199b0b[_0x04c9('0x73')][_0x04c9('0x5c')]));}_0x37fed3=_0x3d38e4['clone']();_0x3d38e4[_0x04c9('0x1c')](_0x5de507);_0x3d38e4['offset'](0x0);logger['debug'](_0x04c9('0x75'),_0x3d38e4[_0x04c9('0x76')]());return db[_0x04c9('0x77')][_0x04c9('0x2c')](_0x3d38e4[_0x04c9('0x76')](),{'type':db[_0x04c9('0x77')][_0x04c9('0x89')]['SELECT']});}})[_0x04c9('0x20')](function(){return{'sql':_0x37fed3[_0x04c9('0x76')]()};})['then'](respondWithResult(_0x2df95f,null))[_0x04c9('0x42')](handleError(_0x2df95f,null));};