0f8965b932dd60eb707dbe966188b467e85cbb64
[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 _0x63a1=['rules','operator','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','includes','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','COUNT(DISTINCT\x20%s)','Sequelize','AnalyticMetric','findAll','keyBy','web','generate','csv','custom','AnalyticExtractedReport','cdr','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','output','../../files/reports','savename','countTable','COUNT(*)','run','runReport','cross_join','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','offset','undefined','count','set','Content-Range','apply','reject','update','destroy','then','get','CustomReports','UserProfileResource','sendStatus','error','name','index','map','AnalyticCustomReport','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','limit','order','sort','pick','where','VIRTUAL','merge','includeAll','rows','show','params','include','options','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','preview','join','left_join','right_join','SUM(%s)','COUNT(%s)','MAX(%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)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY'];(function(_0x3810ff,_0x274190){var _0x1f0c3e=function(_0x2f739f){while(--_0x2f739f){_0x3810ff['push'](_0x3810ff['shift']());}};_0x1f0c3e(++_0x274190);}(_0x63a1,0xdf));var _0x163a=function(_0x651d72,_0x972802){_0x651d72=_0x651d72-0x0;var _0x2fa77e=_0x63a1[_0x651d72];return _0x2fa77e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x163a('0x0'));var zipdir=require(_0x163a('0x1'));var jsonpatch=require(_0x163a('0x2'));var rp=require(_0x163a('0x3'));var moment=require('moment');var BPromise=require(_0x163a('0x4'));var Mustache=require(_0x163a('0x5'));var util=require('util');var path=require(_0x163a('0x6'));var sox=require('sox');var csv=require(_0x163a('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x163a('0x8'));var squel=require(_0x163a('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x163a('0xa'));var toCsv=require(_0x163a('0x7'));var querystring=require(_0x163a('0xb'));var Papa=require(_0x163a('0xc'));var Redis=require(_0x163a('0xd'));var authService=require(_0x163a('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x163a('0xf'));var logger=require(_0x163a('0x10'))(_0x163a('0x11'));var utils=require(_0x163a('0x12'));var config=require(_0x163a('0x13'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require(_0x163a('0x14'))['dbH'];function respondWithStatusCode(_0x369636,_0x4ce051){_0x4ce051=_0x4ce051||0xcc;return function(_0x2f5edd){if(_0x2f5edd){return _0x369636['sendStatus'](_0x4ce051);}return _0x369636[_0x163a('0x15')](_0x4ce051)[_0x163a('0x16')]();};}function respondWithResult(_0x525e9c,_0x2fbb65){_0x2fbb65=_0x2fbb65||0xc8;return function(_0x4baa32){if(_0x4baa32){return _0x525e9c['status'](_0x2fbb65)['json'](_0x4baa32);}};}function respondWithFilteredResult(_0x1880c8,_0x19331d){return function(_0x14f423){if(_0x14f423){var _0x8623f=typeof _0x19331d[_0x163a('0x17')]===_0x163a('0x18')&&typeof _0x19331d['limit']===_0x163a('0x18');var _0xacca96=_0x14f423[_0x163a('0x19')];var _0x3010a0=_0x8623f?0x0:_0x19331d[_0x163a('0x17')];var _0x21a8bc=_0x8623f?_0x14f423[_0x163a('0x19')]:_0x19331d['offset']+_0x19331d['limit'];var _0x1b2d15;if(_0x21a8bc>=_0xacca96){_0x21a8bc=_0xacca96;_0x1b2d15=0xc8;}else{_0x1b2d15=0xce;}_0x1880c8[_0x163a('0x15')](_0x1b2d15);return _0x1880c8[_0x163a('0x1a')](_0x163a('0x1b'),_0x3010a0+'-'+_0x21a8bc+'/'+_0xacca96)['json'](_0x14f423);}return null;};}function patchUpdates(_0x27b37f){return function(_0x19180a){try{jsonpatch[_0x163a('0x1c')](_0x19180a,_0x27b37f,!![]);}catch(_0x53e5ee){return BPromise[_0x163a('0x1d')](_0x53e5ee);}return _0x19180a['save']();};}function saveUpdates(_0x148028,_0x4f7a40){return function(_0x325d8e){if(_0x325d8e){return _0x325d8e[_0x163a('0x1e')](_0x148028)['then'](function(_0x58f19e){return _0x58f19e;});}return null;};}function removeEntity(_0x1e489a,_0x4bd4d2){return function(_0x2280ac){if(_0x2280ac){return _0x2280ac[_0x163a('0x1f')]()[_0x163a('0x20')](function(){var _0x9bd4a0=_0x2280ac[_0x163a('0x21')]({'plain':!![]});var _0x23b2be=_0x163a('0x22');return db[_0x163a('0x23')][_0x163a('0x1f')]({'where':{'type':_0x23b2be,'resourceId':_0x9bd4a0['id']}})[_0x163a('0x20')](function(){return _0x2280ac;});})[_0x163a('0x20')](function(){_0x1e489a['status'](0xcc)[_0x163a('0x16')]();});}};}function handleEntityNotFound(_0x41ae0f,_0x50c342){return function(_0x470bdb){if(!_0x470bdb){_0x41ae0f[_0x163a('0x24')](0x194);}return _0x470bdb;};}function handleError(_0x1332c5,_0x4f9527){_0x4f9527=_0x4f9527||0x1f4;return function(_0x253360){logger[_0x163a('0x25')](_0x253360['stack']);if(_0x253360[_0x163a('0x26')]){delete _0x253360[_0x163a('0x26')];}_0x1332c5[_0x163a('0x15')](_0x4f9527)['send'](_0x253360);};}exports[_0x163a('0x27')]=function(_0xe1e7f6,_0x492781){var _0x150ef1={},_0x3d1132={},_0x4d3595={'count':0x0,'rows':[]};var _0x30d4fb=_[_0x163a('0x28')](db[_0x163a('0x29')][_0x163a('0x2a')],function(_0x1c0259){return{'name':_0x1c0259['fieldName'],'type':_0x1c0259[_0x163a('0x2b')][_0x163a('0x2c')]};});_0x3d1132[_0x163a('0x2d')]=_[_0x163a('0x28')](_0x30d4fb,_0x163a('0x26'));_0x3d1132[_0x163a('0x2e')]=_[_0x163a('0x2f')](_0xe1e7f6['query']);_0x3d1132[_0x163a('0x30')]=_[_0x163a('0x31')](_0x3d1132['model'],_0x3d1132['query']);_0x150ef1['attributes']=_[_0x163a('0x31')](_0x3d1132['model'],qs[_0x163a('0x32')](_0xe1e7f6['query']['fields']));_0x150ef1[_0x163a('0x33')]=_0x150ef1[_0x163a('0x33')][_0x163a('0x34')]?_0x150ef1[_0x163a('0x33')]:_0x3d1132[_0x163a('0x2d')];if(!_0xe1e7f6[_0x163a('0x2e')]['hasOwnProperty']('nolimit')){_0x150ef1[_0x163a('0x35')]=qs['limit'](_0xe1e7f6[_0x163a('0x2e')][_0x163a('0x35')]);_0x150ef1[_0x163a('0x17')]=qs[_0x163a('0x17')](_0xe1e7f6[_0x163a('0x2e')][_0x163a('0x17')]);}_0x150ef1[_0x163a('0x36')]=qs[_0x163a('0x37')](_0xe1e7f6['query'][_0x163a('0x37')]);_0x150ef1['where']=qs[_0x163a('0x30')](_[_0x163a('0x38')](_0xe1e7f6['query'],_0x3d1132[_0x163a('0x30')]),_0x30d4fb);if(_0xe1e7f6[_0x163a('0x2e')]['filter']){_0x150ef1[_0x163a('0x39')]=_['merge'](_0x150ef1[_0x163a('0x39')],{'$or':_[_0x163a('0x28')](_0x30d4fb,function(_0x1403a8){if(_0x1403a8[_0x163a('0x2b')]!==_0x163a('0x3a')){var _0x1dbbcf={};_0x1dbbcf[_0x1403a8['name']]={'$like':'%'+_0xe1e7f6['query']['filter']+'%'};return _0x1dbbcf;}})});}_0x150ef1=_[_0x163a('0x3b')]({},_0x150ef1,_0xe1e7f6['options']);var _0x4fc239={'where':_0x150ef1[_0x163a('0x39')]};return db[_0x163a('0x29')][_0x163a('0x19')](_0x4fc239)[_0x163a('0x20')](function(_0x503287){_0x4d3595['count']=_0x503287;if(_0xe1e7f6[_0x163a('0x2e')][_0x163a('0x3c')]){_0x150ef1['include']=[{'all':!![]}];}return db[_0x163a('0x29')]['findAll'](_0x150ef1);})[_0x163a('0x20')](function(_0x341794){_0x4d3595[_0x163a('0x3d')]=_0x341794;return _0x4d3595;})[_0x163a('0x20')](respondWithFilteredResult(_0x492781,_0x150ef1))['catch'](handleError(_0x492781,null));};exports[_0x163a('0x3e')]=function(_0x482dd8,_0x17a811){var _0x552090={'raw':![],'where':{'id':_0x482dd8[_0x163a('0x3f')]['id']}},_0x32fe03={};_0x32fe03[_0x163a('0x2d')]=_['keys'](db[_0x163a('0x29')][_0x163a('0x2a')]);_0x32fe03[_0x163a('0x2e')]=_[_0x163a('0x2f')](_0x482dd8['query']);_0x32fe03[_0x163a('0x30')]=_[_0x163a('0x31')](_0x32fe03[_0x163a('0x2d')],_0x32fe03[_0x163a('0x2e')]);_0x552090[_0x163a('0x33')]=_[_0x163a('0x31')](_0x32fe03[_0x163a('0x2d')],qs[_0x163a('0x32')](_0x482dd8[_0x163a('0x2e')]['fields']));_0x552090[_0x163a('0x33')]=_0x552090[_0x163a('0x33')][_0x163a('0x34')]?_0x552090[_0x163a('0x33')]:_0x32fe03['model'];if(_0x482dd8[_0x163a('0x2e')]['includeAll']){_0x552090[_0x163a('0x40')]=[{'all':!![]}];}_0x552090=_[_0x163a('0x3b')]({},_0x552090,_0x482dd8[_0x163a('0x41')]);return db['AnalyticCustomReport'][_0x163a('0x42')](_0x552090)[_0x163a('0x20')](handleEntityNotFound(_0x17a811,null))[_0x163a('0x20')](respondWithResult(_0x17a811,null))[_0x163a('0x43')](handleError(_0x17a811,null));};exports[_0x163a('0x44')]=function(_0x5a3985,_0x405d3f){return db['AnalyticCustomReport']['create'](_0x5a3985['body'],{})['then'](function(_0x51339b){var _0x3f9909=_0x5a3985[_0x163a('0x45')][_0x163a('0x21')]({'plain':!![]});if(!_0x3f9909)throw new Error(_0x163a('0x46'));if(_0x3f9909[_0x163a('0x47')]===_0x163a('0x45')){var _0x524f15=_0x51339b['get']({'plain':!![]});var _0x4c882b=_0x163a('0x48');return db[_0x163a('0x49')]['find']({'where':{'name':_0x4c882b,'userProfileId':_0x3f9909[_0x163a('0x4a')]},'raw':!![]})[_0x163a('0x20')](function(_0x56547c){if(_0x56547c&&_0x56547c[_0x163a('0x4b')]===0x0){return db[_0x163a('0x23')][_0x163a('0x44')]({'name':_0x524f15[_0x163a('0x26')],'resourceId':_0x524f15['id'],'type':'CustomReports','sectionId':_0x56547c['id']},{})[_0x163a('0x20')](function(){return _0x51339b;});}else{return _0x51339b;}})[_0x163a('0x43')](function(_0x6ee8f1){logger[_0x163a('0x25')](_0x163a('0x4c'),_0x6ee8f1);throw _0x6ee8f1;});}return _0x51339b;})[_0x163a('0x20')](respondWithResult(_0x405d3f,0xc9))['catch'](handleError(_0x405d3f,null));};exports[_0x163a('0x1e')]=function(_0x2ebde7,_0x131092){if(_0x2ebde7['body']['id']){delete _0x2ebde7['body']['id'];}return db[_0x163a('0x29')][_0x163a('0x42')]({'where':{'id':_0x2ebde7[_0x163a('0x3f')]['id']}})[_0x163a('0x20')](handleEntityNotFound(_0x131092,null))[_0x163a('0x20')](saveUpdates(_0x2ebde7[_0x163a('0x4d')],null))['then'](respondWithResult(_0x131092,null))[_0x163a('0x43')](handleError(_0x131092,null));};exports[_0x163a('0x1f')]=function(_0x303154,_0xa492dd){return db[_0x163a('0x29')][_0x163a('0x42')]({'where':{'id':_0x303154[_0x163a('0x3f')]['id']}})[_0x163a('0x20')](handleEntityNotFound(_0xa492dd,null))[_0x163a('0x20')](removeEntity(_0xa492dd,null))['catch'](handleError(_0xa492dd,null));};exports[_0x163a('0x4e')]=function(_0x2d4635,_0x1ecbdd){var _0x3df2e8=0xa;var _0x4fb7ef=[_0x163a('0x4f'),_0x163a('0x50'),_0x163a('0x51'),'cross_join'];var _0x423303={'SUM':_0x163a('0x52'),'COUNT':_0x163a('0x53'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x163a('0x54'),'MIN':_0x163a('0x55'),'AVG':_0x163a('0x56'),'GROUP_CONCAT':_0x163a('0x57'),'GROUP_CONCAT ASC':_0x163a('0x58'),'GROUP_CONCAT DESC':_0x163a('0x59')};var _0xef40ae={'SEC_TO_TIME':_0x163a('0x5a'),'DATE':_0x163a('0x5b'),'HOUR':_0x163a('0x5c'),'ROUND':_0x163a('0x5d'),'UNIX_TIMESTAMP':_0x163a('0x5e')};var _0x2f4413=function(_0x1f87f2){return!_['includes']([_0x163a('0x5f'),_0x163a('0x60'),_0x163a('0x61'),_0x163a('0x62')],_0x1f87f2);};var _0x4a29a4=function(_0x36e9fe){if(!_0x36e9fe||!_0x36e9fe[_0x163a('0x63')][_0x163a('0x34')]){return'';}for(var _0x5c3ac2='(',_0x5239e9=0x0;_0x5239e9<_0x36e9fe[_0x163a('0x63')]['length'];_0x5239e9+=0x1){_0x5239e9>0x0&&(_0x5c3ac2+='\x20'+_0x36e9fe[_0x163a('0x64')]+'\x20');_0x5c3ac2+=_0x36e9fe[_0x163a('0x63')][_0x5239e9][_0x163a('0x65')]?_0x4a29a4(_0x36e9fe[_0x163a('0x63')][_0x5239e9][_0x163a('0x65')]):_0x36e9fe[_0x163a('0x63')][_0x5239e9][_0x163a('0x66')]+'\x20'+_0x36e9fe[_0x163a('0x63')][_0x5239e9][_0x163a('0x67')]+(_0x2f4413(_0x36e9fe[_0x163a('0x63')][_0x5239e9][_0x163a('0x67')])?'\x20'+_0x36e9fe[_0x163a('0x63')][_0x5239e9][_0x163a('0x68')]:'');}return _0x5c3ac2+')';};var _0x36a5d8={'where':{'id':_0x2d4635[_0x163a('0x3f')]['id']}},_0x4558a0,_0x1098b8,_0x1bbee4,_0x1b0ba7,_0x9cb0f1;_0x36a5d8=_[_0x163a('0x3b')]({},_0x36a5d8,_0x2d4635[_0x163a('0x41')]);return db[_0x163a('0x29')][_0x163a('0x42')](_0x36a5d8)[_0x163a('0x20')](function(_0x50e6fb){if(_0x50e6fb){_0x4558a0=_0x50e6fb;return _0x50e6fb[_0x163a('0x69')]();}return null;})[_0x163a('0x20')](function(_0x1c1539){if(_0x1c1539){if(!_0x1c1539[_0x163a('0x34')]){throw new db['Sequelize'][(_0x163a('0x6a'))](_0x163a('0x6b'),0x193);}_0x1098b8=_0x1c1539;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0x163a('0x20')](function(_0x19b812){if(_0x19b812){_0x1bbee4=_['keyBy'](_0x19b812,'id');var _0xa16dd8;var _0x117e49=squel[_0x163a('0x6c')]();_0x117e49[_0x163a('0x6d')](_0x4558a0[_0x163a('0x6e')]);for(var _0x1f14f8=0x0;_0x1f14f8<_0x1098b8[_0x163a('0x34')];_0x1f14f8+=0x1){_0xa16dd8=_0x1098b8[_0x1f14f8]['MetricId']?_0x1bbee4[_0x1098b8[_0x1f14f8][_0x163a('0x6f')]][_0x163a('0x70')]:_0x1098b8[_0x1f14f8][_0x163a('0x66')];_0xa16dd8=_0x1098b8[_0x1f14f8][_0x163a('0x71')]?_[_0x163a('0x72')](_0x423303[_0x1098b8[_0x1f14f8][_0x163a('0x71')]],'%s',_0xa16dd8):_0xa16dd8;_0xa16dd8=_0x1098b8[_0x1f14f8][_0x163a('0x73')]?_[_0x163a('0x72')](_0xef40ae[_0x1098b8[_0x1f14f8][_0x163a('0x73')]],'%s',_0xa16dd8):_0xa16dd8;if(_0x1098b8[_0x1f14f8][_0x163a('0x74')]){_0x117e49[_0x163a('0x65')](_0xa16dd8);}_0x1098b8[_0x1f14f8]['orderBy']&&_0x117e49[_0x163a('0x36')](_0xa16dd8,_0x1098b8[_0x1f14f8][_0x163a('0x75')]===_0x163a('0x76')?![]:!![]);_0x117e49['field'](_0xa16dd8,_0x1098b8[_0x1f14f8][_0x163a('0x77')]||_0xa16dd8);}if(_0x4558a0[_0x163a('0x78')]){_0x4558a0[_0x163a('0x78')]=JSON[_0x163a('0x79')](_0x4558a0[_0x163a('0x78')]);for(var _0x3e0d93=0x0;_0x3e0d93<_0x4558a0[_0x163a('0x78')][_0x163a('0x34')];_0x3e0d93+=0x1){if(_0x4558a0[_0x163a('0x78')][_0x3e0d93]['type']&&_[_0x163a('0x7a')](_0x4fb7ef,_0x4558a0[_0x163a('0x78')][_0x3e0d93]['type'])&&_0x4558a0[_0x163a('0x78')][_0x3e0d93][_0x163a('0x7b')]&&_0x4558a0[_0x163a('0x78')][_0x3e0d93][_0x163a('0x7c')]&&_0x4558a0[_0x163a('0x78')][_0x3e0d93][_0x163a('0x7d')]){_0x117e49[_0x4558a0[_0x163a('0x78')][_0x3e0d93][_0x163a('0x2b')]](_0x4558a0[_0x163a('0x78')][_0x3e0d93][_0x163a('0x7c')],null,util[_0x163a('0x73')](_0x163a('0x7e'),_0x4558a0['table'],_0x4558a0[_0x163a('0x78')][_0x3e0d93]['parentKey'],_0x4558a0['joins'][_0x3e0d93]['foreignTable'],_0x4558a0[_0x163a('0x78')][_0x3e0d93][_0x163a('0x7d')]));}}}if(_0x4558a0[_0x163a('0x7f')]){_0x4558a0[_0x163a('0x7f')]=JSON['parse'](_0x4558a0[_0x163a('0x7f')]);_0x117e49[_0x163a('0x39')](_0x4a29a4(_0x4558a0[_0x163a('0x7f')][_0x163a('0x65')]));}_0x9cb0f1=_0x117e49[_0x163a('0x80')]();_0x117e49[_0x163a('0x35')](_0x3df2e8);_0x117e49['offset'](0x0);logger['debug'](_0x163a('0x81'),_0x117e49['toString']());return dbH[_0x163a('0x82')]['query'](_0x117e49[_0x163a('0x83')](),{'type':dbH[_0x163a('0x82')][_0x163a('0x84')][_0x163a('0x85')]});}})['then'](respondWithResult(_0x1ecbdd,null))[_0x163a('0x43')](handleError(_0x1ecbdd,null));};function runReport(_0x589354,_0x526a6c,_0x3a49c6){var _0x270998=_0x526a6c['name'];var _0xe18303=0xa;var _0x36080b=[_0x163a('0x4f'),_0x163a('0x50'),_0x163a('0x51'),'cross_join'];var _0x414481={'SUM':_0x163a('0x52'),'COUNT':_0x163a('0x53'),'COUNT DISTINCT':_0x163a('0x86'),'MAX':_0x163a('0x54'),'MIN':'MIN(%s)','AVG':_0x163a('0x56'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x163a('0x58'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x16a478={'SEC_TO_TIME':_0x163a('0x5a'),'DATE':_0x163a('0x5b'),'HOUR':_0x163a('0x5c'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x163a('0x5e')};var _0x31d821=function(_0xe6b264){return!_['includes']([_0x163a('0x5f'),'IS\x20NOT\x20NULL',_0x163a('0x61'),_0x163a('0x62')],_0xe6b264);};var _0x5aea1f=function(_0x5b49c4){if(!_0x5b49c4||!_0x5b49c4[_0x163a('0x63')][_0x163a('0x34')]){return'';}for(var _0x399751='(',_0x1fc58c=0x0;_0x1fc58c<_0x5b49c4[_0x163a('0x63')][_0x163a('0x34')];_0x1fc58c+=0x1){_0x1fc58c>0x0&&(_0x399751+='\x20'+_0x5b49c4['operator']+'\x20');_0x399751+=_0x5b49c4[_0x163a('0x63')][_0x1fc58c][_0x163a('0x65')]?_0x5aea1f(_0x5b49c4[_0x163a('0x63')][_0x1fc58c][_0x163a('0x65')]):_0x5b49c4[_0x163a('0x63')][_0x1fc58c][_0x163a('0x66')]+'\x20'+_0x5b49c4[_0x163a('0x63')][_0x1fc58c]['condition']+(_0x31d821(_0x5b49c4[_0x163a('0x63')][_0x1fc58c]['condition'])?'\x20'+_0x5b49c4['rules'][_0x1fc58c][_0x163a('0x68')]:'');}return _0x399751+')';};var _0xd87f59={'where':{'id':_0x589354['id']}},_0x3a9eb8,_0x452089,_0x4cc78a,_0x6c18bc,_0xffe634;_0xd87f59=_[_0x163a('0x3b')]({},_0xd87f59,_0x3a49c6);return db[_0x163a('0x29')]['find'](_0xd87f59)[_0x163a('0x20')](function(_0x5f2701){if(_0x5f2701){_0x3a9eb8=_0x5f2701;return _0x5f2701['getFields']();}return null;})[_0x163a('0x20')](function(_0x4ff49b){if(_0x4ff49b){if(!_0x4ff49b['length']){throw new db[(_0x163a('0x87'))]['ValidationErrorItem'](_0x163a('0x6b'),0x193);}_0x452089=_0x4ff49b;return db[_0x163a('0x88')][_0x163a('0x89')]({'raw':!![]});}return null;})[_0x163a('0x20')](function(_0x157ce8){if(_0x157ce8){_0x4cc78a=_[_0x163a('0x8a')](_0x157ce8,'id');var _0x5a0ef8;var _0x40beb1=squel['select']();_0x40beb1[_0x163a('0x6d')](_0x3a9eb8[_0x163a('0x6e')]);for(var _0x3bf1e5=0x0;_0x3bf1e5<_0x452089[_0x163a('0x34')];_0x3bf1e5+=0x1){_0x5a0ef8=_0x452089[_0x3bf1e5]['MetricId']?_0x4cc78a[_0x452089[_0x3bf1e5]['MetricId']][_0x163a('0x70')]:_0x452089[_0x3bf1e5][_0x163a('0x66')];_0x5a0ef8=_0x452089[_0x3bf1e5][_0x163a('0x71')]?_[_0x163a('0x72')](_0x414481[_0x452089[_0x3bf1e5][_0x163a('0x71')]],'%s',_0x5a0ef8):_0x5a0ef8;_0x5a0ef8=_0x452089[_0x3bf1e5]['format']?_[_0x163a('0x72')](_0x16a478[_0x452089[_0x3bf1e5]['format']],'%s',_0x5a0ef8):_0x5a0ef8;if(_0x452089[_0x3bf1e5][_0x163a('0x74')]){_0x40beb1[_0x163a('0x65')](_0x5a0ef8);}_0x452089[_0x3bf1e5][_0x163a('0x75')]&&_0x40beb1[_0x163a('0x36')](_0x5a0ef8,_0x452089[_0x3bf1e5][_0x163a('0x75')]===_0x163a('0x76')?![]:!![]);_0x40beb1['field'](_0x5a0ef8,_0x452089[_0x3bf1e5][_0x163a('0x77')]||_0x5a0ef8);}if(_0x3a9eb8['joins']){_0x3a9eb8[_0x163a('0x78')]=JSON[_0x163a('0x79')](_0x3a9eb8[_0x163a('0x78')]);for(var _0x28a827=0x0;_0x28a827<_0x3a9eb8[_0x163a('0x78')][_0x163a('0x34')];_0x28a827+=0x1){if(_0x3a9eb8['joins'][_0x28a827][_0x163a('0x2b')]&&_[_0x163a('0x7a')](_0x36080b,_0x3a9eb8[_0x163a('0x78')][_0x28a827][_0x163a('0x2b')])&&_0x3a9eb8['joins'][_0x28a827][_0x163a('0x7b')]&&_0x3a9eb8[_0x163a('0x78')][_0x28a827][_0x163a('0x7c')]&&_0x3a9eb8[_0x163a('0x78')][_0x28a827][_0x163a('0x7d')]){_0x40beb1[_0x3a9eb8['joins'][_0x28a827][_0x163a('0x2b')]](_0x3a9eb8['joins'][_0x28a827]['foreignTable'],null,util[_0x163a('0x73')](_0x163a('0x7e'),_0x3a9eb8[_0x163a('0x6e')],_0x3a9eb8['joins'][_0x28a827][_0x163a('0x7b')],_0x3a9eb8['joins'][_0x28a827][_0x163a('0x7c')],_0x3a9eb8[_0x163a('0x78')][_0x28a827]['foreignKey']));}}}if(_0x3a9eb8[_0x163a('0x7f')]){_0x3a9eb8[_0x163a('0x7f')]=JSON['parse'](_0x3a9eb8[_0x163a('0x7f')]);_0x40beb1[_0x163a('0x39')](_0x5aea1f(_0x3a9eb8[_0x163a('0x7f')]['group']));}_0xffe634=_0x40beb1[_0x163a('0x80')]();_0x40beb1[_0x163a('0x35')](_0xe18303);_0x40beb1['offset'](0x0);return;}})[_0x163a('0x20')](function(){if(_0x526a6c['output']===_0x163a('0x8b')){return null;}var _0x52768f=_[_0x163a('0x3b')](_0x526a6c,{'name':_0x526a6c['fullPath']||_0x526a6c[_0x163a('0x26')]||_0x3a9eb8[_0x163a('0x26')],'basename':_0x270998,'savename':util['format']('%s-%s.%s',_0x526a6c[_0x163a('0x26')]||_0x3a9eb8[_0x163a('0x26')],require('randomstring')[_0x163a('0x8c')](0x4),_0x526a6c['output']||_0x163a('0x8d')),'reportId':_0x3a9eb8['id'],'reportType':_0x163a('0x8e')});return db[_0x163a('0x8f')][_0x163a('0x44')](_0x52768f,{'raw':!![]});})[_0x163a('0x20')](function(_0x46f3bf){if(_0x3a9eb8[_0x163a('0x6e')]===_0x163a('0x90')){_0xffe634[_0x163a('0x39')](_0x3a9eb8[_0x163a('0x6e')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x526a6c[_0x163a('0x91')],_0x526a6c[_0x163a('0x92')]);}else{_0xffe634[_0x163a('0x39')](_0x3a9eb8[_0x163a('0x6e')]+_0x163a('0x93'),_0x526a6c[_0x163a('0x91')],_0x526a6c[_0x163a('0x92')]);}if(_0x46f3bf){logger[_0x163a('0x94')](_0x163a('0x95'),_0xffe634[_0x163a('0x83')]());require(_0x163a('0x96'))[_0x163a('0x97')](path['join'](__dirname,_0x163a('0x98'),_0x46f3bf[_0x163a('0x99')]),[_0x46f3bf['id'],_0xffe634['toString'](),path['join'](__dirname,_0x163a('0x9a'),_0x46f3bf[_0x163a('0x9b')]),_0x270998]);return _0x46f3bf;}else{var _0x5e000d=squel['select']();_0x5e000d['from']('('+_0xffe634[_0x163a('0x83')]()+')',_0x163a('0x9c'));_0x5e000d[_0x163a('0x66')](_0x163a('0x9d'),_0x163a('0x19'));_0xffe634[_0x163a('0x35')](_0x526a6c[_0x163a('0x35')]||_0xe18303);_0xffe634[_0x163a('0x17')](_0x526a6c[_0x163a('0x17')]||0x0);return dbH['sequelize']['query'](_0x5e000d[_0x163a('0x83')](),{'type':dbH[_0x163a('0x82')][_0x163a('0x84')]['SELECT']})[_0x163a('0x20')](function(_0x38b3cf){if(!_0x38b3cf[_0x163a('0x34')]){_0x6c18bc=0x0;}else{_0x6c18bc=_0x38b3cf[0x0][_0x163a('0x19')]||0x0;}return dbH['sequelize']['query'](_0xffe634[_0x163a('0x83')](),{'type':dbH[_0x163a('0x82')][_0x163a('0x84')][_0x163a('0x85')]});})[_0x163a('0x20')](function(_0x5b805e){return{'rows':_0x5b805e||[],'count':_0x6c18bc};});}});}exports[_0x163a('0x9e')]=function(_0x1ff2c0,_0x5d7bdf){return runReport(_0x1ff2c0[_0x163a('0x3f')],_0x1ff2c0[_0x163a('0x2e')],_0x1ff2c0[_0x163a('0x41')])[_0x163a('0x20')](respondWithResult(_0x5d7bdf,null))[_0x163a('0x43')](handleError(_0x5d7bdf,null));};exports[_0x163a('0x9f')]=runReport;exports[_0x163a('0x2e')]=function(_0x51eaa4,_0x476654){var _0x30c4c1=0xa;var _0x2efcb3=['join',_0x163a('0x50'),_0x163a('0x51'),_0x163a('0xa0')];var _0x3e0ca3={'SUM':'SUM(%s)','COUNT':_0x163a('0x53'),'COUNT DISTINCT':_0x163a('0x86'),'MAX':_0x163a('0x54'),'MIN':_0x163a('0x55'),'AVG':_0x163a('0x56'),'GROUP_CONCAT':_0x163a('0x57'),'GROUP_CONCAT ASC':_0x163a('0x58'),'GROUP_CONCAT DESC':_0x163a('0x59')};var _0x25826a={'SEC_TO_TIME':_0x163a('0x5a'),'DATE':_0x163a('0x5b'),'HOUR':_0x163a('0x5c'),'ROUND':_0x163a('0x5d'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x27cf42=function(_0x1b61b5){return!_[_0x163a('0x7a')]([_0x163a('0x5f'),_0x163a('0x60'),_0x163a('0x61'),_0x163a('0x62')],_0x1b61b5);};var _0x496d70=function(_0x517592){if(!_0x517592||!_0x517592[_0x163a('0x63')][_0x163a('0x34')]){return'';}for(var _0x1b729d='(',_0x2508c7=0x0;_0x2508c7<_0x517592[_0x163a('0x63')][_0x163a('0x34')];_0x2508c7+=0x1){_0x2508c7>0x0&&(_0x1b729d+='\x20'+_0x517592[_0x163a('0x64')]+'\x20');_0x1b729d+=_0x517592[_0x163a('0x63')][_0x2508c7][_0x163a('0x65')]?_0x496d70(_0x517592[_0x163a('0x63')][_0x2508c7][_0x163a('0x65')]):_0x517592[_0x163a('0x63')][_0x2508c7][_0x163a('0x66')]+'\x20'+_0x517592[_0x163a('0x63')][_0x2508c7][_0x163a('0x67')]+(_0x27cf42(_0x517592[_0x163a('0x63')][_0x2508c7][_0x163a('0x67')])?'\x20'+_0x517592[_0x163a('0x63')][_0x2508c7][_0x163a('0x68')]:'');}return _0x1b729d+')';};var _0x5bef58={'where':{'id':_0x51eaa4[_0x163a('0x3f')]['id']}},_0x4cd4d0,_0x32c3f5,_0x5a9d1e,_0x2b8e79,_0x17756c;_0x5bef58=_[_0x163a('0x3b')]({},_0x5bef58,_0x51eaa4[_0x163a('0x41')]);return db[_0x163a('0x29')]['find'](_0x5bef58)[_0x163a('0x20')](function(_0x32b695){if(_0x32b695){_0x4cd4d0=_0x32b695;return _0x32b695[_0x163a('0x69')]();}return null;})['then'](function(_0x11531f){if(_0x11531f){if(!_0x11531f['length']){throw new db[(_0x163a('0x87'))][(_0x163a('0x6a'))](_0x163a('0x6b'),0x193);}_0x32c3f5=_0x11531f;return db[_0x163a('0x88')][_0x163a('0x89')]({'raw':!![]});}return null;})[_0x163a('0x20')](function(_0x2453d0){if(_0x2453d0){_0x5a9d1e=_['keyBy'](_0x2453d0,'id');var _0xcf7828;var _0x555374=squel['select']();_0x555374['from'](_0x4cd4d0[_0x163a('0x6e')]);for(var _0x502f99=0x0;_0x502f99<_0x32c3f5[_0x163a('0x34')];_0x502f99+=0x1){_0xcf7828=_0x32c3f5[_0x502f99]['MetricId']?_0x5a9d1e[_0x32c3f5[_0x502f99][_0x163a('0x6f')]][_0x163a('0x70')]:_0x32c3f5[_0x502f99]['field'];_0xcf7828=_0x32c3f5[_0x502f99]['function']?_[_0x163a('0x72')](_0x3e0ca3[_0x32c3f5[_0x502f99][_0x163a('0x71')]],'%s',_0xcf7828):_0xcf7828;_0xcf7828=_0x32c3f5[_0x502f99]['format']?_['replace'](_0x25826a[_0x32c3f5[_0x502f99][_0x163a('0x73')]],'%s',_0xcf7828):_0xcf7828;if(_0x32c3f5[_0x502f99][_0x163a('0x74')]){_0x555374[_0x163a('0x65')](_0xcf7828);}_0x32c3f5[_0x502f99][_0x163a('0x75')]&&_0x555374['order'](_0xcf7828,_0x32c3f5[_0x502f99][_0x163a('0x75')]===_0x163a('0x76')?![]:!![]);_0x555374[_0x163a('0x66')](_0xcf7828,_0x32c3f5[_0x502f99][_0x163a('0x77')]||_0xcf7828);}if(_0x4cd4d0[_0x163a('0x78')]){_0x4cd4d0[_0x163a('0x78')]=JSON[_0x163a('0x79')](_0x4cd4d0['joins']);for(var _0xbca1e8=0x0;_0xbca1e8<_0x4cd4d0[_0x163a('0x78')]['length'];_0xbca1e8+=0x1){if(_0x4cd4d0[_0x163a('0x78')][_0xbca1e8][_0x163a('0x2b')]&&_['includes'](_0x2efcb3,_0x4cd4d0['joins'][_0xbca1e8][_0x163a('0x2b')])&&_0x4cd4d0[_0x163a('0x78')][_0xbca1e8]['parentKey']&&_0x4cd4d0['joins'][_0xbca1e8][_0x163a('0x7c')]&&_0x4cd4d0[_0x163a('0x78')][_0xbca1e8][_0x163a('0x7d')]){_0x555374[_0x4cd4d0[_0x163a('0x78')][_0xbca1e8][_0x163a('0x2b')]](_0x4cd4d0[_0x163a('0x78')][_0xbca1e8]['foreignTable'],null,util[_0x163a('0x73')](_0x163a('0x7e'),_0x4cd4d0[_0x163a('0x6e')],_0x4cd4d0[_0x163a('0x78')][_0xbca1e8][_0x163a('0x7b')],_0x4cd4d0[_0x163a('0x78')][_0xbca1e8]['foreignTable'],_0x4cd4d0[_0x163a('0x78')][_0xbca1e8][_0x163a('0x7d')]));}}}if(_0x4cd4d0[_0x163a('0x7f')]){_0x4cd4d0[_0x163a('0x7f')]=JSON[_0x163a('0x79')](_0x4cd4d0[_0x163a('0x7f')]);_0x555374[_0x163a('0x39')](_0x496d70(_0x4cd4d0['conditions'][_0x163a('0x65')]));}_0x17756c=_0x555374[_0x163a('0x80')]();_0x555374[_0x163a('0x35')](_0x30c4c1);_0x555374[_0x163a('0x17')](0x0);logger['debug'](_0x163a('0x81'),_0x555374[_0x163a('0x83')]());return dbH['sequelize'][_0x163a('0x2e')](_0x555374['toString'](),{'type':dbH[_0x163a('0x82')][_0x163a('0x84')][_0x163a('0x85')]});}})['then'](function(){return{'sql':_0x17756c[_0x163a('0x83')]()};})['then'](respondWithResult(_0x476654,null))[_0x163a('0x43')](handleError(_0x476654,null));};