9eb446d0decc90d6b3621e5fac8906c5d0832635
[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 _0xe34e=['../../config/utils','../../config/environment','../../mysqldb','dbH','sendStatus','status','json','offset','limit','undefined','set','Content-Range','apply','reject','save','destroy','CustomReports','UserProfileResource','end','error','stack','name','send','map','AnalyticCustomReport','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','options','then','count','include','findAll','rows','show','params','rawAttributes','includeAll','merge','find','catch','create','user','get','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','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','group','field','value','getFields','Sequelize','ValidationErrorItem','AnalyticMetric','select','table','MetricId','metric','function','replace','format','orderBy','alias','joins','parse','includes','parentKey','foreignTable','foreignKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','IS\x20NOT\x20EMPTY','condition','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','from','groupBy','%s.%s\x20=\x20%s.%s','output','web','fullPath','%s-%s.%s','randomstring','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','savename','countTable','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xe34e,0x132));var _0xee34=function(_0x37a6f6,_0x5200bb){_0x37a6f6=_0x37a6f6-0x0;var _0x34a7d5=_0xe34e[_0x37a6f6];return _0x34a7d5;};'use strict';var emlformat=require(_0xee34('0x0'));var rimraf=require(_0xee34('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xee34('0x2'));var rp=require(_0xee34('0x3'));var moment=require(_0xee34('0x4'));var BPromise=require(_0xee34('0x5'));var Mustache=require(_0xee34('0x6'));var util=require(_0xee34('0x7'));var path=require(_0xee34('0x8'));var sox=require(_0xee34('0x9'));var csv=require('to-csv');var ejs=require(_0xee34('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xee34('0xb'));var squel=require(_0xee34('0xc'));var crypto=require(_0xee34('0xd'));var jsforce=require(_0xee34('0xe'));var deskjs=require(_0xee34('0xf'));var toCsv=require(_0xee34('0x10'));var querystring=require(_0xee34('0x11'));var Papa=require('papaparse');var Redis=require(_0xee34('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xee34('0x13'));var as=require(_0xee34('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xee34('0x15'));var utils=require(_0xee34('0x16'));var config=require(_0xee34('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xee34('0x18'))['db'];var dbH=require(_0xee34('0x18'))[_0xee34('0x19')];function respondWithStatusCode(_0x51a3e3,_0x4c1ba8){_0x4c1ba8=_0x4c1ba8||0xcc;return function(_0x2546a0){if(_0x2546a0){return _0x51a3e3[_0xee34('0x1a')](_0x4c1ba8);}return _0x51a3e3[_0xee34('0x1b')](_0x4c1ba8)['end']();};}function respondWithResult(_0xaa7046,_0x57fae4){_0x57fae4=_0x57fae4||0xc8;return function(_0x371c45){if(_0x371c45){return _0xaa7046[_0xee34('0x1b')](_0x57fae4)[_0xee34('0x1c')](_0x371c45);}};}function respondWithFilteredResult(_0x57a0b2,_0x2da852){return function(_0x2c1f19){if(_0x2c1f19){var _0x3455a4=typeof _0x2da852[_0xee34('0x1d')]==='undefined'&&typeof _0x2da852[_0xee34('0x1e')]===_0xee34('0x1f');var _0x1f5264=_0x2c1f19['count'];var _0x3a7420=_0x3455a4?0x0:_0x2da852[_0xee34('0x1d')];var _0xfdb0c1=_0x3455a4?_0x2c1f19['count']:_0x2da852['offset']+_0x2da852[_0xee34('0x1e')];var _0x32289b;if(_0xfdb0c1>=_0x1f5264){_0xfdb0c1=_0x1f5264;_0x32289b=0xc8;}else{_0x32289b=0xce;}_0x57a0b2[_0xee34('0x1b')](_0x32289b);return _0x57a0b2[_0xee34('0x20')](_0xee34('0x21'),_0x3a7420+'-'+_0xfdb0c1+'/'+_0x1f5264)[_0xee34('0x1c')](_0x2c1f19);}return null;};}function patchUpdates(_0xd6cfe9){return function(_0x300cd7){try{jsonpatch[_0xee34('0x22')](_0x300cd7,_0xd6cfe9,!![]);}catch(_0x520d9a){return BPromise[_0xee34('0x23')](_0x520d9a);}return _0x300cd7[_0xee34('0x24')]();};}function saveUpdates(_0x1553e0,_0x36e73b){return function(_0x52d004){if(_0x52d004){return _0x52d004['update'](_0x1553e0)['then'](function(_0x24b072){return _0x24b072;});}return null;};}function removeEntity(_0x13cd62,_0x33ddfc){return function(_0x5c55c7){if(_0x5c55c7){return _0x5c55c7[_0xee34('0x25')]()['then'](function(){var _0x58fa31=_0x5c55c7['get']({'plain':!![]});var _0x337ddb=_0xee34('0x26');return db[_0xee34('0x27')]['destroy']({'where':{'type':_0x337ddb,'resourceId':_0x58fa31['id']}})['then'](function(){return _0x5c55c7;});})['then'](function(){_0x13cd62[_0xee34('0x1b')](0xcc)[_0xee34('0x28')]();});}};}function handleEntityNotFound(_0x323d66,_0x2d6280){return function(_0x3637db){if(!_0x3637db){_0x323d66['sendStatus'](0x194);}return _0x3637db;};}function handleError(_0x30d822,_0xdead50){_0xdead50=_0xdead50||0x1f4;return function(_0x35fc50){logger[_0xee34('0x29')](_0x35fc50[_0xee34('0x2a')]);if(_0x35fc50[_0xee34('0x2b')]){delete _0x35fc50[_0xee34('0x2b')];}_0x30d822[_0xee34('0x1b')](_0xdead50)[_0xee34('0x2c')](_0x35fc50);};}exports['index']=function(_0x53b4cd,_0x4d26cd){var _0x5c2bf9={},_0xf6839d={},_0x1aa647={'count':0x0,'rows':[]};var _0x3e45c0=_[_0xee34('0x2d')](db[_0xee34('0x2e')]['rawAttributes'],function(_0x3cf998){return{'name':_0x3cf998['fieldName'],'type':_0x3cf998[_0xee34('0x2f')]['key']};});_0xf6839d[_0xee34('0x30')]=_[_0xee34('0x2d')](_0x3e45c0,_0xee34('0x2b'));_0xf6839d[_0xee34('0x31')]=_[_0xee34('0x32')](_0x53b4cd[_0xee34('0x31')]);_0xf6839d[_0xee34('0x33')]=_[_0xee34('0x34')](_0xf6839d[_0xee34('0x30')],_0xf6839d[_0xee34('0x31')]);_0x5c2bf9[_0xee34('0x35')]=_[_0xee34('0x34')](_0xf6839d['model'],qs[_0xee34('0x36')](_0x53b4cd[_0xee34('0x31')]['fields']));_0x5c2bf9[_0xee34('0x35')]=_0x5c2bf9[_0xee34('0x35')][_0xee34('0x37')]?_0x5c2bf9[_0xee34('0x35')]:_0xf6839d[_0xee34('0x30')];if(!_0x53b4cd['query'][_0xee34('0x38')]('nolimit')){_0x5c2bf9[_0xee34('0x1e')]=qs[_0xee34('0x1e')](_0x53b4cd[_0xee34('0x31')][_0xee34('0x1e')]);_0x5c2bf9['offset']=qs['offset'](_0x53b4cd[_0xee34('0x31')][_0xee34('0x1d')]);}_0x5c2bf9[_0xee34('0x39')]=qs[_0xee34('0x3a')](_0x53b4cd[_0xee34('0x31')][_0xee34('0x3a')]);_0x5c2bf9[_0xee34('0x3b')]=qs[_0xee34('0x33')](_[_0xee34('0x3c')](_0x53b4cd[_0xee34('0x31')],_0xf6839d[_0xee34('0x33')]),_0x3e45c0);if(_0x53b4cd[_0xee34('0x31')][_0xee34('0x3d')]){_0x5c2bf9['where']=_['merge'](_0x5c2bf9[_0xee34('0x3b')],{'$or':_[_0xee34('0x2d')](_0x3e45c0,function(_0x2409ad){if(_0x2409ad[_0xee34('0x2f')]!=='VIRTUAL'){var _0x814539={};_0x814539[_0x2409ad[_0xee34('0x2b')]]={'$like':'%'+_0x53b4cd['query']['filter']+'%'};return _0x814539;}})});}_0x5c2bf9=_['merge']({},_0x5c2bf9,_0x53b4cd[_0xee34('0x3e')]);var _0x23be51={'where':_0x5c2bf9[_0xee34('0x3b')]};return db[_0xee34('0x2e')]['count'](_0x23be51)[_0xee34('0x3f')](function(_0x15605c){_0x1aa647[_0xee34('0x40')]=_0x15605c;if(_0x53b4cd[_0xee34('0x31')]['includeAll']){_0x5c2bf9[_0xee34('0x41')]=[{'all':!![]}];}return db[_0xee34('0x2e')][_0xee34('0x42')](_0x5c2bf9);})['then'](function(_0x40d1d3){_0x1aa647[_0xee34('0x43')]=_0x40d1d3;return _0x1aa647;})[_0xee34('0x3f')](respondWithFilteredResult(_0x4d26cd,_0x5c2bf9))['catch'](handleError(_0x4d26cd,null));};exports[_0xee34('0x44')]=function(_0x934ddd,_0x1ddd98){var _0x56cea6={'raw':![],'where':{'id':_0x934ddd[_0xee34('0x45')]['id']}},_0x531f6a={};_0x531f6a['model']=_[_0xee34('0x32')](db[_0xee34('0x2e')][_0xee34('0x46')]);_0x531f6a[_0xee34('0x31')]=_[_0xee34('0x32')](_0x934ddd[_0xee34('0x31')]);_0x531f6a[_0xee34('0x33')]=_[_0xee34('0x34')](_0x531f6a['model'],_0x531f6a['query']);_0x56cea6['attributes']=_[_0xee34('0x34')](_0x531f6a[_0xee34('0x30')],qs[_0xee34('0x36')](_0x934ddd['query']['fields']));_0x56cea6['attributes']=_0x56cea6[_0xee34('0x35')][_0xee34('0x37')]?_0x56cea6['attributes']:_0x531f6a[_0xee34('0x30')];if(_0x934ddd[_0xee34('0x31')][_0xee34('0x47')]){_0x56cea6[_0xee34('0x41')]=[{'all':!![]}];}_0x56cea6=_[_0xee34('0x48')]({},_0x56cea6,_0x934ddd[_0xee34('0x3e')]);return db[_0xee34('0x2e')][_0xee34('0x49')](_0x56cea6)[_0xee34('0x3f')](handleEntityNotFound(_0x1ddd98,null))[_0xee34('0x3f')](respondWithResult(_0x1ddd98,null))[_0xee34('0x4a')](handleError(_0x1ddd98,null));};exports[_0xee34('0x4b')]=function(_0x524e33,_0x327fbd){return db[_0xee34('0x2e')]['create'](_0x524e33['body'],{})[_0xee34('0x3f')](function(_0x3ba93d){var _0x53ecec=_0x524e33[_0xee34('0x4c')][_0xee34('0x4d')]({'plain':!![]});if(!_0x53ecec)throw new Error(_0xee34('0x4e'));if(_0x53ecec[_0xee34('0x4f')]===_0xee34('0x4c')){var _0x2b8890=_0x3ba93d[_0xee34('0x4d')]({'plain':!![]});var _0x2d6d52=_0xee34('0x50');return db[_0xee34('0x51')]['find']({'where':{'name':_0x2d6d52,'userProfileId':_0x53ecec[_0xee34('0x52')]},'raw':!![]})[_0xee34('0x3f')](function(_0x3873d5){if(_0x3873d5&&_0x3873d5[_0xee34('0x53')]===0x0){return db[_0xee34('0x27')][_0xee34('0x4b')]({'name':_0x2b8890[_0xee34('0x2b')],'resourceId':_0x2b8890['id'],'type':_0xee34('0x26'),'sectionId':_0x3873d5['id']},{})[_0xee34('0x3f')](function(){return _0x3ba93d;});}else{return _0x3ba93d;}})[_0xee34('0x4a')](function(_0x406887){logger[_0xee34('0x29')](_0xee34('0x54'),_0x406887);throw _0x406887;});}return _0x3ba93d;})['then'](respondWithResult(_0x327fbd,0xc9))[_0xee34('0x4a')](handleError(_0x327fbd,null));};exports['update']=function(_0x444f6e,_0x286a60){if(_0x444f6e[_0xee34('0x55')]['id']){delete _0x444f6e[_0xee34('0x55')]['id'];}return db[_0xee34('0x2e')]['find']({'where':{'id':_0x444f6e['params']['id']}})[_0xee34('0x3f')](handleEntityNotFound(_0x286a60,null))['then'](saveUpdates(_0x444f6e['body'],null))[_0xee34('0x3f')](respondWithResult(_0x286a60,null))[_0xee34('0x4a')](handleError(_0x286a60,null));};exports['destroy']=function(_0x47afd1,_0x31e138){return db[_0xee34('0x2e')][_0xee34('0x49')]({'where':{'id':_0x47afd1[_0xee34('0x45')]['id']}})[_0xee34('0x3f')](handleEntityNotFound(_0x31e138,null))['then'](removeEntity(_0x31e138,null))[_0xee34('0x4a')](handleError(_0x31e138,null));};exports[_0xee34('0x56')]=function(_0x590bb4,_0x4179ce){var _0x18ab82=0xa;var _0x1578aa=[_0xee34('0x57'),_0xee34('0x58'),_0xee34('0x59'),_0xee34('0x5a')];var _0x27459b={'SUM':_0xee34('0x5b'),'COUNT':_0xee34('0x5c'),'COUNT DISTINCT':_0xee34('0x5d'),'MAX':_0xee34('0x5e'),'MIN':_0xee34('0x5f'),'AVG':_0xee34('0x60'),'GROUP_CONCAT':_0xee34('0x61'),'GROUP_CONCAT ASC':_0xee34('0x62'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x3249fb={'SEC_TO_TIME':_0xee34('0x63'),'DATE':_0xee34('0x64'),'HOUR':_0xee34('0x65'),'ROUND':_0xee34('0x66'),'UNIX_TIMESTAMP':_0xee34('0x67')};var _0x42d842=function(_0x3349a8){return!_['includes']([_0xee34('0x68'),_0xee34('0x69'),_0xee34('0x6a'),'IS\x20NOT\x20EMPTY'],_0x3349a8);};var _0x4b41c1=function(_0x2a1467){if(!_0x2a1467||!_0x2a1467[_0xee34('0x6b')][_0xee34('0x37')]){return'';}for(var _0x5d5793='(',_0x274c00=0x0;_0x274c00<_0x2a1467[_0xee34('0x6b')][_0xee34('0x37')];_0x274c00+=0x1){_0x274c00>0x0&&(_0x5d5793+='\x20'+_0x2a1467[_0xee34('0x6c')]+'\x20');_0x5d5793+=_0x2a1467[_0xee34('0x6b')][_0x274c00][_0xee34('0x6d')]?_0x4b41c1(_0x2a1467[_0xee34('0x6b')][_0x274c00][_0xee34('0x6d')]):_0x2a1467[_0xee34('0x6b')][_0x274c00][_0xee34('0x6e')]+'\x20'+_0x2a1467[_0xee34('0x6b')][_0x274c00]['condition']+(_0x42d842(_0x2a1467['rules'][_0x274c00]['condition'])?'\x20'+_0x2a1467[_0xee34('0x6b')][_0x274c00][_0xee34('0x6f')]:'');}return _0x5d5793+')';};var _0x137f1d={'where':{'id':_0x590bb4[_0xee34('0x45')]['id']}},_0x1ceee1,_0x9de578,_0x5c6083,_0x88c5bd,_0x218bc5;_0x137f1d=_[_0xee34('0x48')]({},_0x137f1d,_0x590bb4['options']);return db[_0xee34('0x2e')][_0xee34('0x49')](_0x137f1d)[_0xee34('0x3f')](function(_0x3fd789){if(_0x3fd789){_0x1ceee1=_0x3fd789;return _0x3fd789[_0xee34('0x70')]();}return null;})[_0xee34('0x3f')](function(_0x1a4ed3){if(_0x1a4ed3){if(!_0x1a4ed3[_0xee34('0x37')]){throw new db[(_0xee34('0x71'))][(_0xee34('0x72'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x9de578=_0x1a4ed3;return db[_0xee34('0x73')][_0xee34('0x42')]({'raw':!![]});}return null;})[_0xee34('0x3f')](function(_0x3d3f58){if(_0x3d3f58){_0x5c6083=_['keyBy'](_0x3d3f58,'id');var _0x3f763f;var _0x2fb2a0=squel[_0xee34('0x74')]();_0x2fb2a0['from'](_0x1ceee1[_0xee34('0x75')]);for(var _0x3946c7=0x0;_0x3946c7<_0x9de578['length'];_0x3946c7+=0x1){_0x3f763f=_0x9de578[_0x3946c7]['MetricId']?_0x5c6083[_0x9de578[_0x3946c7][_0xee34('0x76')]][_0xee34('0x77')]:_0x9de578[_0x3946c7][_0xee34('0x6e')];_0x3f763f=_0x9de578[_0x3946c7][_0xee34('0x78')]?_[_0xee34('0x79')](_0x27459b[_0x9de578[_0x3946c7]['function']],'%s',_0x3f763f):_0x3f763f;_0x3f763f=_0x9de578[_0x3946c7][_0xee34('0x7a')]?_[_0xee34('0x79')](_0x3249fb[_0x9de578[_0x3946c7][_0xee34('0x7a')]],'%s',_0x3f763f):_0x3f763f;if(_0x9de578[_0x3946c7]['groupBy']){_0x2fb2a0[_0xee34('0x6d')](_0x3f763f);}_0x9de578[_0x3946c7]['orderBy']&&_0x2fb2a0[_0xee34('0x39')](_0x3f763f,_0x9de578[_0x3946c7][_0xee34('0x7b')]==='DESC'?![]:!![]);_0x2fb2a0[_0xee34('0x6e')](_0x3f763f,_0x9de578[_0x3946c7][_0xee34('0x7c')]||_0x3f763f);}if(_0x1ceee1[_0xee34('0x7d')]){_0x1ceee1[_0xee34('0x7d')]=JSON[_0xee34('0x7e')](_0x1ceee1[_0xee34('0x7d')]);for(var _0x2138cd=0x0;_0x2138cd<_0x1ceee1[_0xee34('0x7d')][_0xee34('0x37')];_0x2138cd+=0x1){if(_0x1ceee1[_0xee34('0x7d')][_0x2138cd][_0xee34('0x2f')]&&_[_0xee34('0x7f')](_0x1578aa,_0x1ceee1[_0xee34('0x7d')][_0x2138cd][_0xee34('0x2f')])&&_0x1ceee1[_0xee34('0x7d')][_0x2138cd][_0xee34('0x80')]&&_0x1ceee1[_0xee34('0x7d')][_0x2138cd][_0xee34('0x81')]&&_0x1ceee1[_0xee34('0x7d')][_0x2138cd]['foreignKey']){_0x2fb2a0[_0x1ceee1[_0xee34('0x7d')][_0x2138cd][_0xee34('0x2f')]](_0x1ceee1[_0xee34('0x7d')][_0x2138cd][_0xee34('0x81')],null,util[_0xee34('0x7a')]('%s.%s\x20=\x20%s.%s',_0x1ceee1['table'],_0x1ceee1[_0xee34('0x7d')][_0x2138cd][_0xee34('0x80')],_0x1ceee1[_0xee34('0x7d')][_0x2138cd][_0xee34('0x81')],_0x1ceee1['joins'][_0x2138cd][_0xee34('0x82')]));}}}if(_0x1ceee1[_0xee34('0x83')]){_0x1ceee1[_0xee34('0x83')]=JSON['parse'](_0x1ceee1[_0xee34('0x83')]);_0x2fb2a0[_0xee34('0x3b')](_0x4b41c1(_0x1ceee1[_0xee34('0x83')][_0xee34('0x6d')]));}_0x218bc5=_0x2fb2a0[_0xee34('0x84')]();_0x2fb2a0[_0xee34('0x1e')](_0x18ab82);_0x2fb2a0[_0xee34('0x1d')](0x0);logger[_0xee34('0x85')](_0xee34('0x86'),_0x2fb2a0[_0xee34('0x87')]());return dbH[_0xee34('0x88')][_0xee34('0x31')](_0x2fb2a0['toString'](),{'type':dbH[_0xee34('0x88')][_0xee34('0x89')][_0xee34('0x8a')]});}})[_0xee34('0x3f')](respondWithResult(_0x4179ce,null))['catch'](handleError(_0x4179ce,null));};function runReport(_0x5b16ba,_0x252567,_0x5d4b99){var _0x360a90=_0x252567[_0xee34('0x2b')];var _0x77e2fa=0xa;var _0x4ae94b=[_0xee34('0x57'),_0xee34('0x58'),_0xee34('0x59'),'cross_join'];var _0x24ac44={'SUM':'SUM(%s)','COUNT':_0xee34('0x5c'),'COUNT DISTINCT':_0xee34('0x5d'),'MAX':_0xee34('0x5e'),'MIN':_0xee34('0x5f'),'AVG':_0xee34('0x60'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xee34('0x62'),'GROUP_CONCAT DESC':_0xee34('0x8b')};var _0x26d2dc={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xee34('0x64'),'HOUR':_0xee34('0x65'),'ROUND':_0xee34('0x66'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x1c3b13=function(_0x54a0ec){return!_['includes'](['IS\x20NULL','IS\x20NOT\x20NULL',_0xee34('0x6a'),_0xee34('0x8c')],_0x54a0ec);};var _0xacddb5=function(_0x3dce68){if(!_0x3dce68||!_0x3dce68[_0xee34('0x6b')][_0xee34('0x37')]){return'';}for(var _0x4f3494='(',_0x3d45c0=0x0;_0x3d45c0<_0x3dce68['rules']['length'];_0x3d45c0+=0x1){_0x3d45c0>0x0&&(_0x4f3494+='\x20'+_0x3dce68[_0xee34('0x6c')]+'\x20');_0x4f3494+=_0x3dce68[_0xee34('0x6b')][_0x3d45c0][_0xee34('0x6d')]?_0xacddb5(_0x3dce68['rules'][_0x3d45c0][_0xee34('0x6d')]):_0x3dce68[_0xee34('0x6b')][_0x3d45c0][_0xee34('0x6e')]+'\x20'+_0x3dce68[_0xee34('0x6b')][_0x3d45c0][_0xee34('0x8d')]+(_0x1c3b13(_0x3dce68[_0xee34('0x6b')][_0x3d45c0][_0xee34('0x8d')])?'\x20'+_0x3dce68[_0xee34('0x6b')][_0x3d45c0][_0xee34('0x6f')]:'');}return _0x4f3494+')';};var _0x38ed06={'where':{'id':_0x5b16ba['id']}},_0x3d3071,_0x137dd6,_0x4c403d,_0x4926cf,_0x30be50;_0x38ed06=_['merge']({},_0x38ed06,_0x5d4b99);return db[_0xee34('0x2e')][_0xee34('0x49')](_0x38ed06)['then'](function(_0x1e1de9){if(_0x1e1de9){_0x3d3071=_0x1e1de9;return _0x1e1de9[_0xee34('0x70')]();}return null;})[_0xee34('0x3f')](function(_0x1be5c7){if(_0x1be5c7){if(!_0x1be5c7[_0xee34('0x37')]){throw new db[(_0xee34('0x71'))][(_0xee34('0x72'))](_0xee34('0x8e'),0x193);}_0x137dd6=_0x1be5c7;return db[_0xee34('0x73')][_0xee34('0x42')]({'raw':!![]});}return null;})[_0xee34('0x3f')](function(_0x3db186){if(_0x3db186){_0x4c403d=_[_0xee34('0x8f')](_0x3db186,'id');var _0x37d25a;var _0x4c22fa=squel[_0xee34('0x74')]();_0x4c22fa[_0xee34('0x90')](_0x3d3071['table']);for(var _0x2c4e0d=0x0;_0x2c4e0d<_0x137dd6['length'];_0x2c4e0d+=0x1){_0x37d25a=_0x137dd6[_0x2c4e0d][_0xee34('0x76')]?_0x4c403d[_0x137dd6[_0x2c4e0d]['MetricId']]['metric']:_0x137dd6[_0x2c4e0d][_0xee34('0x6e')];_0x37d25a=_0x137dd6[_0x2c4e0d][_0xee34('0x78')]?_[_0xee34('0x79')](_0x24ac44[_0x137dd6[_0x2c4e0d][_0xee34('0x78')]],'%s',_0x37d25a):_0x37d25a;_0x37d25a=_0x137dd6[_0x2c4e0d]['format']?_[_0xee34('0x79')](_0x26d2dc[_0x137dd6[_0x2c4e0d]['format']],'%s',_0x37d25a):_0x37d25a;if(_0x137dd6[_0x2c4e0d][_0xee34('0x91')]){_0x4c22fa[_0xee34('0x6d')](_0x37d25a);}_0x137dd6[_0x2c4e0d][_0xee34('0x7b')]&&_0x4c22fa[_0xee34('0x39')](_0x37d25a,_0x137dd6[_0x2c4e0d]['orderBy']==='DESC'?![]:!![]);_0x4c22fa[_0xee34('0x6e')](_0x37d25a,_0x137dd6[_0x2c4e0d][_0xee34('0x7c')]||_0x37d25a);}if(_0x3d3071[_0xee34('0x7d')]){_0x3d3071[_0xee34('0x7d')]=JSON[_0xee34('0x7e')](_0x3d3071['joins']);for(var _0x366b6d=0x0;_0x366b6d<_0x3d3071['joins'][_0xee34('0x37')];_0x366b6d+=0x1){if(_0x3d3071['joins'][_0x366b6d][_0xee34('0x2f')]&&_['includes'](_0x4ae94b,_0x3d3071['joins'][_0x366b6d][_0xee34('0x2f')])&&_0x3d3071['joins'][_0x366b6d]['parentKey']&&_0x3d3071[_0xee34('0x7d')][_0x366b6d][_0xee34('0x81')]&&_0x3d3071[_0xee34('0x7d')][_0x366b6d][_0xee34('0x82')]){_0x4c22fa[_0x3d3071[_0xee34('0x7d')][_0x366b6d][_0xee34('0x2f')]](_0x3d3071[_0xee34('0x7d')][_0x366b6d]['foreignTable'],null,util[_0xee34('0x7a')](_0xee34('0x92'),_0x3d3071[_0xee34('0x75')],_0x3d3071['joins'][_0x366b6d][_0xee34('0x80')],_0x3d3071['joins'][_0x366b6d][_0xee34('0x81')],_0x3d3071[_0xee34('0x7d')][_0x366b6d]['foreignKey']));}}}if(_0x3d3071[_0xee34('0x83')]){_0x3d3071[_0xee34('0x83')]=JSON[_0xee34('0x7e')](_0x3d3071[_0xee34('0x83')]);_0x4c22fa[_0xee34('0x3b')](_0xacddb5(_0x3d3071[_0xee34('0x83')][_0xee34('0x6d')]));}_0x30be50=_0x4c22fa[_0xee34('0x84')]();_0x4c22fa[_0xee34('0x1e')](_0x77e2fa);_0x4c22fa[_0xee34('0x1d')](0x0);return;}})['then'](function(){if(_0x252567[_0xee34('0x93')]===_0xee34('0x94')){return null;}var _0x3c5580=_['merge'](_0x252567,{'name':_0x252567[_0xee34('0x95')]||_0x252567[_0xee34('0x2b')]||_0x3d3071[_0xee34('0x2b')],'basename':_0x360a90,'savename':util[_0xee34('0x7a')](_0xee34('0x96'),_0x252567[_0xee34('0x2b')]||_0x3d3071[_0xee34('0x2b')],require(_0xee34('0x97'))['generate'](0x4),_0x252567[_0xee34('0x93')]||'csv'),'reportId':_0x3d3071['id'],'reportType':'custom'});return db[_0xee34('0x98')]['create'](_0x3c5580,{'raw':!![]});})['then'](function(_0x50ad7d){if(_0x3d3071[_0xee34('0x75')]==='cdr'){_0x30be50[_0xee34('0x3b')](_0x3d3071[_0xee34('0x75')]+_0xee34('0x99'),_0x252567[_0xee34('0x9a')],_0x252567[_0xee34('0x9b')]);}else{_0x30be50[_0xee34('0x3b')](_0x3d3071[_0xee34('0x75')]+_0xee34('0x9c'),_0x252567[_0xee34('0x9a')],_0x252567[_0xee34('0x9b')]);}if(_0x50ad7d){logger[_0xee34('0x9d')](_0xee34('0x9e'),_0x30be50[_0xee34('0x87')]());require(_0xee34('0x9f'))[_0xee34('0xa0')](path[_0xee34('0x57')](__dirname,_0xee34('0xa1'),_0x50ad7d[_0xee34('0x93')]),[_0x50ad7d['id'],_0x30be50[_0xee34('0x87')](),path['join'](__dirname,'../../files/reports',_0x50ad7d[_0xee34('0xa2')]),_0x360a90]);return _0x50ad7d;}else{var _0x5e8a02=squel['select']();_0x5e8a02[_0xee34('0x90')]('('+_0x30be50[_0xee34('0x87')]()+')',_0xee34('0xa3'));_0x5e8a02[_0xee34('0x6e')]('COUNT(*)',_0xee34('0x40'));_0x30be50[_0xee34('0x1e')](_0x252567[_0xee34('0x1e')]||_0x77e2fa);_0x30be50[_0xee34('0x1d')](_0x252567['offset']||0x0);return dbH[_0xee34('0x88')][_0xee34('0x31')](_0x5e8a02['toString'](),{'type':dbH[_0xee34('0x88')][_0xee34('0x89')][_0xee34('0x8a')]})[_0xee34('0x3f')](function(_0x59818d){if(!_0x59818d[_0xee34('0x37')]){_0x4926cf=0x0;}else{_0x4926cf=_0x59818d[0x0]['count']||0x0;}return dbH[_0xee34('0x88')][_0xee34('0x31')](_0x30be50[_0xee34('0x87')](),{'type':dbH[_0xee34('0x88')][_0xee34('0x89')][_0xee34('0x8a')]});})[_0xee34('0x3f')](function(_0x30a00e){return{'rows':_0x30a00e||[],'count':_0x4926cf};});}});}exports['run']=function(_0x76ef7f,_0x357dd4){return runReport(_0x76ef7f[_0xee34('0x45')],_0x76ef7f[_0xee34('0x31')],_0x76ef7f[_0xee34('0x3e')])['then'](respondWithResult(_0x357dd4,null))['catch'](handleError(_0x357dd4,null));};exports['runReport']=runReport;exports[_0xee34('0x31')]=function(_0x3c320d,_0x3d4f6c){var _0x2d1a77=0xa;var _0x36470d=[_0xee34('0x57'),_0xee34('0x58'),_0xee34('0x59'),_0xee34('0x5a')];var _0x241a30={'SUM':_0xee34('0x5b'),'COUNT':_0xee34('0x5c'),'COUNT DISTINCT':_0xee34('0x5d'),'MAX':_0xee34('0x5e'),'MIN':_0xee34('0x5f'),'AVG':_0xee34('0x60'),'GROUP_CONCAT':_0xee34('0x61'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2f6653={'SEC_TO_TIME':_0xee34('0x63'),'DATE':_0xee34('0x64'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xee34('0x67')};var _0x4cd29a=function(_0x58bf38){return!_['includes']([_0xee34('0x68'),_0xee34('0x69'),_0xee34('0x6a'),_0xee34('0x8c')],_0x58bf38);};var _0x567600=function(_0x185712){if(!_0x185712||!_0x185712[_0xee34('0x6b')][_0xee34('0x37')]){return'';}for(var _0x56a604='(',_0x296320=0x0;_0x296320<_0x185712['rules']['length'];_0x296320+=0x1){_0x296320>0x0&&(_0x56a604+='\x20'+_0x185712[_0xee34('0x6c')]+'\x20');_0x56a604+=_0x185712['rules'][_0x296320][_0xee34('0x6d')]?_0x567600(_0x185712[_0xee34('0x6b')][_0x296320][_0xee34('0x6d')]):_0x185712['rules'][_0x296320][_0xee34('0x6e')]+'\x20'+_0x185712[_0xee34('0x6b')][_0x296320][_0xee34('0x8d')]+(_0x4cd29a(_0x185712[_0xee34('0x6b')][_0x296320][_0xee34('0x8d')])?'\x20'+_0x185712['rules'][_0x296320][_0xee34('0x6f')]:'');}return _0x56a604+')';};var _0x198c29={'where':{'id':_0x3c320d[_0xee34('0x45')]['id']}},_0x82a74b,_0xe74ce,_0x1e3c64,_0x5f5533,_0xddf112;_0x198c29=_[_0xee34('0x48')]({},_0x198c29,_0x3c320d[_0xee34('0x3e')]);return db[_0xee34('0x2e')][_0xee34('0x49')](_0x198c29)[_0xee34('0x3f')](function(_0x3205cf){if(_0x3205cf){_0x82a74b=_0x3205cf;return _0x3205cf[_0xee34('0x70')]();}return null;})[_0xee34('0x3f')](function(_0x5e90a5){if(_0x5e90a5){if(!_0x5e90a5['length']){throw new db['Sequelize'][(_0xee34('0x72'))](_0xee34('0x8e'),0x193);}_0xe74ce=_0x5e90a5;return db[_0xee34('0x73')][_0xee34('0x42')]({'raw':!![]});}return null;})['then'](function(_0x3aefe3){if(_0x3aefe3){_0x1e3c64=_[_0xee34('0x8f')](_0x3aefe3,'id');var _0x5d7818;var _0x5b4390=squel['select']();_0x5b4390[_0xee34('0x90')](_0x82a74b[_0xee34('0x75')]);for(var _0x38b8f0=0x0;_0x38b8f0<_0xe74ce['length'];_0x38b8f0+=0x1){_0x5d7818=_0xe74ce[_0x38b8f0][_0xee34('0x76')]?_0x1e3c64[_0xe74ce[_0x38b8f0]['MetricId']][_0xee34('0x77')]:_0xe74ce[_0x38b8f0][_0xee34('0x6e')];_0x5d7818=_0xe74ce[_0x38b8f0][_0xee34('0x78')]?_[_0xee34('0x79')](_0x241a30[_0xe74ce[_0x38b8f0][_0xee34('0x78')]],'%s',_0x5d7818):_0x5d7818;_0x5d7818=_0xe74ce[_0x38b8f0][_0xee34('0x7a')]?_['replace'](_0x2f6653[_0xe74ce[_0x38b8f0]['format']],'%s',_0x5d7818):_0x5d7818;if(_0xe74ce[_0x38b8f0]['groupBy']){_0x5b4390[_0xee34('0x6d')](_0x5d7818);}_0xe74ce[_0x38b8f0][_0xee34('0x7b')]&&_0x5b4390[_0xee34('0x39')](_0x5d7818,_0xe74ce[_0x38b8f0][_0xee34('0x7b')]==='DESC'?![]:!![]);_0x5b4390['field'](_0x5d7818,_0xe74ce[_0x38b8f0]['alias']||_0x5d7818);}if(_0x82a74b[_0xee34('0x7d')]){_0x82a74b[_0xee34('0x7d')]=JSON[_0xee34('0x7e')](_0x82a74b[_0xee34('0x7d')]);for(var _0x32cf5d=0x0;_0x32cf5d<_0x82a74b[_0xee34('0x7d')][_0xee34('0x37')];_0x32cf5d+=0x1){if(_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x2f')]&&_[_0xee34('0x7f')](_0x36470d,_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x2f')])&&_0x82a74b['joins'][_0x32cf5d][_0xee34('0x80')]&&_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x81')]&&_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x82')]){_0x5b4390[_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x2f')]](_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x81')],null,util[_0xee34('0x7a')]('%s.%s\x20=\x20%s.%s',_0x82a74b[_0xee34('0x75')],_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x80')],_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x81')],_0x82a74b[_0xee34('0x7d')][_0x32cf5d][_0xee34('0x82')]));}}}if(_0x82a74b['conditions']){_0x82a74b[_0xee34('0x83')]=JSON[_0xee34('0x7e')](_0x82a74b[_0xee34('0x83')]);_0x5b4390[_0xee34('0x3b')](_0x567600(_0x82a74b[_0xee34('0x83')]['group']));}_0xddf112=_0x5b4390[_0xee34('0x84')]();_0x5b4390[_0xee34('0x1e')](_0x2d1a77);_0x5b4390[_0xee34('0x1d')](0x0);logger['debug'](_0xee34('0x86'),_0x5b4390[_0xee34('0x87')]());return dbH[_0xee34('0x88')][_0xee34('0x31')](_0x5b4390[_0xee34('0x87')](),{'type':dbH[_0xee34('0x88')][_0xee34('0x89')][_0xee34('0x8a')]});}})[_0xee34('0x3f')](function(){return{'sql':_0xddf112[_0xee34('0x87')]()};})[_0xee34('0x3f')](respondWithResult(_0x3d4f6c,null))['catch'](handleError(_0x3d4f6c,null));};