ee510112cec582e38dc683813f8881c0db332fef
[motion2.git] / server / api / analyticDefaultReport / analyticDefaultReport.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 _0xb03c=['SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','metric','function','format','replace','groupBy','orderBy','order','DESC','alias','joins','parse','includes','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','table','conditions','debug','sequelize','toString','QueryTypes','SELECT','right_join','value','ValidationErrorItem','MetricId','clone','web','fullPath','%s-%s.%s','randomstring','generate','output','default','AnalyticExtractedReport','cdr','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','info','Run\x20Query:','child_process','fork','savename','countTable','COUNT(*)','runReport','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','Limited\x20Query:','html-pdf','eml-format','bluebird','util','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','dbH','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','DefaultReports','UserProfileResource','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','merge','options','AnalyticDefaultReport','findAll','rows','show','includeAll','include','catch','create','body','user','role','Reports','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','preview','join','left_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'];(function(_0x45b034,_0x3a57dd){var _0x509cb0=function(_0x3a89d5){while(--_0x3a89d5){_0x45b034['push'](_0x45b034['shift']());}};_0x509cb0(++_0x3a57dd);}(_0xb03c,0x189));var _0xcb03=function(_0x1e6db3,_0x5643ac){_0x1e6db3=_0x1e6db3-0x0;var _0x1de886=_0xb03c[_0x1e6db3];return _0x1de886;};'use strict';var pdf=require(_0xcb03('0x0'));var emlformat=require(_0xcb03('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xcb03('0x2'));var Mustache=require('mustache');var util=require(_0xcb03('0x3'));var path=require(_0xcb03('0x4'));var sox=require(_0xcb03('0x5'));var csv=require('to-csv');var ejs=require(_0xcb03('0x6'));var fs=require('fs');var _=require(_0xcb03('0x7'));var squel=require(_0xcb03('0x8'));var crypto=require(_0xcb03('0x9'));var jsforce=require(_0xcb03('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xcb03('0xb'));var querystring=require(_0xcb03('0xc'));var Papa=require(_0xcb03('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xcb03('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcb03('0xf'));var logger=require(_0xcb03('0x10'))(_0xcb03('0x11'));var utils=require('../../config/utils');var config=require(_0xcb03('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0xcb03('0x13'))['db'];var dbH=require('../../mysqldb')[_0xcb03('0x14')];function respondWithStatusCode(_0x2e1e6e,_0x449482){_0x449482=_0x449482||0xcc;return function(_0x27c608){if(_0x27c608){return _0x2e1e6e[_0xcb03('0x15')](_0x449482);}return _0x2e1e6e[_0xcb03('0x16')](_0x449482)[_0xcb03('0x17')]();};}function respondWithResult(_0x55fed3,_0x4c8323){_0x4c8323=_0x4c8323||0xc8;return function(_0x31783b){if(_0x31783b){return _0x55fed3['status'](_0x4c8323)[_0xcb03('0x18')](_0x31783b);}};}function respondWithFilteredResult(_0x3f5e1f,_0x4aabc2){return function(_0x2613b5){if(_0x2613b5){var _0x53cc5b=_0x2613b5[_0xcb03('0x19')],_0x145c83=_0x4aabc2[_0xcb03('0x1a')],_0x1ea443=_0x4aabc2[_0xcb03('0x1a')]+_0x4aabc2[_0xcb03('0x1b')],_0x29c5d0;if(_0x1ea443>=_0x53cc5b){_0x1ea443=_0x53cc5b;_0x29c5d0=0xc8;}else{_0x29c5d0=0xce;}_0x3f5e1f['status'](_0x29c5d0);return _0x3f5e1f[_0xcb03('0x1c')](_0xcb03('0x1d'),_0x145c83+'-'+_0x1ea443+'/'+_0x53cc5b)[_0xcb03('0x18')](_0x2613b5);}return null;};}function patchUpdates(_0x4aab13){return function(_0x8aca23){try{jsonpatch[_0xcb03('0x1e')](_0x8aca23,_0x4aab13,!![]);}catch(_0x384d14){return BPromise[_0xcb03('0x1f')](_0x384d14);}return _0x8aca23[_0xcb03('0x20')]();};}function saveUpdates(_0x18e1a1,_0xde1c3d){return function(_0x3a3c63){if(_0x3a3c63){return _0x3a3c63[_0xcb03('0x21')](_0x18e1a1)[_0xcb03('0x22')](function(_0x3e35f6){return _0x3e35f6;});}return null;};}function removeEntity(_0x588959,_0x27d39d){return function(_0x5c97b6){if(_0x5c97b6){return _0x5c97b6[_0xcb03('0x23')]()[_0xcb03('0x22')](function(){var _0x226930=_0x5c97b6[_0xcb03('0x24')]({'plain':!![]});var _0x508cf0=_0xcb03('0x25');return db[_0xcb03('0x26')][_0xcb03('0x23')]({'where':{'type':_0x508cf0,'resourceId':_0x226930['id']}})[_0xcb03('0x22')](function(){return _0x5c97b6;});})[_0xcb03('0x22')](function(){_0x588959[_0xcb03('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c7042,_0x4529b7){return function(_0x4504a6){if(!_0x4504a6){_0x3c7042[_0xcb03('0x15')](0x194);}return _0x4504a6;};}function handleError(_0x1878b0,_0x1f83c7){_0x1f83c7=_0x1f83c7||0x1f4;return function(_0xa0555){logger['error'](_0xa0555[_0xcb03('0x27')]);if(_0xa0555['name']){delete _0xa0555[_0xcb03('0x28')];}_0x1878b0[_0xcb03('0x16')](_0x1f83c7)['send'](_0xa0555);};}exports[_0xcb03('0x29')]=function(_0x2bbc2b,_0x4d7634){var _0x1564da={},_0x29c641={},_0x554ed3={'count':0x0,'rows':[]};var _0x1be38b=_[_0xcb03('0x2a')](db['AnalyticDefaultReport'][_0xcb03('0x2b')],function(_0x5cf18d){return{'name':_0x5cf18d[_0xcb03('0x2c')],'type':_0x5cf18d[_0xcb03('0x2d')][_0xcb03('0x2e')]};});_0x29c641[_0xcb03('0x2f')]=_[_0xcb03('0x2a')](_0x1be38b,_0xcb03('0x28'));_0x29c641[_0xcb03('0x30')]=_[_0xcb03('0x31')](_0x2bbc2b[_0xcb03('0x30')]);_0x29c641['filters']=_[_0xcb03('0x32')](_0x29c641[_0xcb03('0x2f')],_0x29c641[_0xcb03('0x30')]);_0x1564da[_0xcb03('0x33')]=_[_0xcb03('0x32')](_0x29c641[_0xcb03('0x2f')],qs[_0xcb03('0x34')](_0x2bbc2b[_0xcb03('0x30')][_0xcb03('0x34')]));_0x1564da['attributes']=_0x1564da[_0xcb03('0x33')][_0xcb03('0x35')]?_0x1564da[_0xcb03('0x33')]:_0x29c641[_0xcb03('0x2f')];if(!_0x2bbc2b[_0xcb03('0x30')][_0xcb03('0x36')](_0xcb03('0x37'))){_0x1564da[_0xcb03('0x1b')]=qs[_0xcb03('0x1b')](_0x2bbc2b['query'][_0xcb03('0x1b')]);_0x1564da[_0xcb03('0x1a')]=qs[_0xcb03('0x1a')](_0x2bbc2b[_0xcb03('0x30')][_0xcb03('0x1a')]);}_0x1564da['order']=qs[_0xcb03('0x38')](_0x2bbc2b['query'][_0xcb03('0x38')]);_0x1564da[_0xcb03('0x39')]=qs[_0xcb03('0x3a')](_['pick'](_0x2bbc2b[_0xcb03('0x30')],_0x29c641[_0xcb03('0x3a')]),_0x1be38b);if(_0x2bbc2b[_0xcb03('0x30')][_0xcb03('0x3b')]){_0x1564da[_0xcb03('0x39')]=_['merge'](_0x1564da['where'],{'$or':_[_0xcb03('0x2a')](_0x1be38b,function(_0x306ac2){if(_0x306ac2['type']!=='VIRTUAL'){var _0x4d1fb1={};_0x4d1fb1[_0x306ac2[_0xcb03('0x28')]]={'$like':'%'+_0x2bbc2b[_0xcb03('0x30')]['filter']+'%'};return _0x4d1fb1;}})});}_0x1564da=_[_0xcb03('0x3c')]({},_0x1564da,_0x2bbc2b[_0xcb03('0x3d')]);var _0x4fe0f8={'where':_0x1564da[_0xcb03('0x39')]};return db[_0xcb03('0x3e')][_0xcb03('0x19')](_0x4fe0f8)[_0xcb03('0x22')](function(_0x116126){_0x554ed3[_0xcb03('0x19')]=_0x116126;if(_0x2bbc2b['query']['includeAll']){_0x1564da['include']=[{'all':!![]}];}return db['AnalyticDefaultReport'][_0xcb03('0x3f')](_0x1564da);})[_0xcb03('0x22')](function(_0x4cfb59){_0x554ed3[_0xcb03('0x40')]=_0x4cfb59;return _0x554ed3;})[_0xcb03('0x22')](respondWithFilteredResult(_0x4d7634,_0x1564da))['catch'](handleError(_0x4d7634,null));};exports[_0xcb03('0x41')]=function(_0x3ad455,_0x58986f){var _0x17fc24={'raw':!![],'where':{'id':_0x3ad455['params']['id']}},_0x349519={};_0x349519['model']=_[_0xcb03('0x31')](db[_0xcb03('0x3e')]['rawAttributes']);_0x349519[_0xcb03('0x30')]=_['keys'](_0x3ad455[_0xcb03('0x30')]);_0x349519['filters']=_[_0xcb03('0x32')](_0x349519[_0xcb03('0x2f')],_0x349519[_0xcb03('0x30')]);_0x17fc24[_0xcb03('0x33')]=_[_0xcb03('0x32')](_0x349519[_0xcb03('0x2f')],qs['fields'](_0x3ad455[_0xcb03('0x30')][_0xcb03('0x34')]));_0x17fc24[_0xcb03('0x33')]=_0x17fc24[_0xcb03('0x33')]['length']?_0x17fc24[_0xcb03('0x33')]:_0x349519[_0xcb03('0x2f')];if(_0x3ad455['query'][_0xcb03('0x42')]){_0x17fc24[_0xcb03('0x43')]=[{'all':!![]}];}_0x17fc24=_[_0xcb03('0x3c')]({},_0x17fc24,_0x3ad455[_0xcb03('0x3d')]);return db[_0xcb03('0x3e')]['find'](_0x17fc24)[_0xcb03('0x22')](handleEntityNotFound(_0x58986f,null))[_0xcb03('0x22')](respondWithResult(_0x58986f,null))[_0xcb03('0x44')](handleError(_0x58986f,null));};exports['create']=function(_0x2c0fdd,_0x1c0ebc){return db[_0xcb03('0x3e')][_0xcb03('0x45')](_0x2c0fdd[_0xcb03('0x46')],{})['then'](function(_0x3a2cb7){var _0x791fba=_0x2c0fdd[_0xcb03('0x47')][_0xcb03('0x24')]({'plain':!![]});if(!_0x791fba)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x791fba[_0xcb03('0x48')]===_0xcb03('0x47')){var _0x1993dc=_0x3a2cb7[_0xcb03('0x24')]({'plain':!![]});var _0x55246d=_0xcb03('0x49');return db['UserProfileSection'][_0xcb03('0x4a')]({'where':{'name':_0x55246d,'userProfileId':_0x791fba[_0xcb03('0x4b')]},'raw':!![]})[_0xcb03('0x22')](function(_0x3dc04c){if(_0x3dc04c&&_0x3dc04c[_0xcb03('0x4c')]===0x0){return db[_0xcb03('0x26')][_0xcb03('0x45')]({'name':_0x1993dc[_0xcb03('0x28')],'resourceId':_0x1993dc['id'],'type':'DefaultReports','sectionId':_0x3dc04c['id']},{})['then'](function(){return _0x3a2cb7;});}else{return _0x3a2cb7;}})[_0xcb03('0x44')](function(_0x2f9335){logger['error'](_0xcb03('0x4d'),_0x2f9335);throw _0x2f9335;});}return _0x3a2cb7;})[_0xcb03('0x22')](respondWithResult(_0x1c0ebc,0xc9))[_0xcb03('0x44')](handleError(_0x1c0ebc,null));};exports[_0xcb03('0x21')]=function(_0x42cb78,_0x219de1){if(_0x42cb78[_0xcb03('0x46')]['id']){delete _0x42cb78[_0xcb03('0x46')]['id'];}return db[_0xcb03('0x3e')][_0xcb03('0x4a')]({'where':{'id':_0x42cb78[_0xcb03('0x4e')]['id']}})[_0xcb03('0x22')](handleEntityNotFound(_0x219de1,null))[_0xcb03('0x22')](saveUpdates(_0x42cb78[_0xcb03('0x46')],null))['then'](respondWithResult(_0x219de1,null))[_0xcb03('0x44')](handleError(_0x219de1,null));};exports[_0xcb03('0x23')]=function(_0x4dca09,_0x1c5ea7){return db[_0xcb03('0x3e')][_0xcb03('0x4a')]({'where':{'id':_0x4dca09['params']['id']}})[_0xcb03('0x22')](handleEntityNotFound(_0x1c5ea7,null))[_0xcb03('0x22')](removeEntity(_0x1c5ea7,null))[_0xcb03('0x44')](handleError(_0x1c5ea7,null));};exports[_0xcb03('0x4f')]=function(_0x26447b,_0x510a9c){var _0x479d67=0xa;var _0xd40b2b=[_0xcb03('0x50'),_0xcb03('0x51'),'right_join',_0xcb03('0x52')];var _0x42f7fa={'SUM':_0xcb03('0x53'),'COUNT':_0xcb03('0x54'),'COUNT DISTINCT':_0xcb03('0x55'),'MAX':_0xcb03('0x56'),'MIN':'MIN(%s)','AVG':_0xcb03('0x57'),'GROUP_CONCAT':_0xcb03('0x58'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xcb03('0x59')};var _0x31567d={'SEC_TO_TIME':_0xcb03('0x5a'),'DATE':_0xcb03('0x5b'),'HOUR':_0xcb03('0x5c'),'ROUND':_0xcb03('0x5d'),'UNIX_TIMESTAMP':_0xcb03('0x5e')};var _0xf54724=function(_0x555a68){return!_['includes']([_0xcb03('0x5f'),_0xcb03('0x60'),_0xcb03('0x61'),_0xcb03('0x62')],_0x555a68);};var _0xdda0c6=function(_0x55328e){if(!_0x55328e||!_0x55328e[_0xcb03('0x63')][_0xcb03('0x35')]){return'';}for(var _0x47be81='(',_0x1154a0=0x0;_0x1154a0<_0x55328e['rules'][_0xcb03('0x35')];_0x1154a0+=0x1){_0x1154a0>0x0&&(_0x47be81+='\x20'+_0x55328e[_0xcb03('0x64')]+'\x20');_0x47be81+=_0x55328e[_0xcb03('0x63')][_0x1154a0][_0xcb03('0x65')]?_0xdda0c6(_0x55328e[_0xcb03('0x63')][_0x1154a0]['group']):_0x55328e['rules'][_0x1154a0][_0xcb03('0x66')]+'\x20'+_0x55328e[_0xcb03('0x63')][_0x1154a0][_0xcb03('0x67')]+(_0xf54724(_0x55328e[_0xcb03('0x63')][_0x1154a0][_0xcb03('0x67')])?'\x20'+_0x55328e[_0xcb03('0x63')][_0x1154a0]['value']:'');}return _0x47be81+')';};var _0x9f4d00={'where':{'id':_0x26447b['params']['id']}},_0x226265,_0x380524,_0x57ceda,_0x2a14f6,_0x1b2929;_0x9f4d00=_[_0xcb03('0x3c')]({},_0x9f4d00,_0x26447b[_0xcb03('0x3d')]);return db[_0xcb03('0x3e')]['find'](_0x9f4d00)['then'](function(_0x452ca9){if(_0x452ca9){_0x226265=_0x452ca9;return _0x452ca9[_0xcb03('0x68')]();}return null;})['then'](function(_0xdf7330){if(_0xdf7330){if(!_0xdf7330[_0xcb03('0x35')]){throw new db[(_0xcb03('0x69'))]['ValidationErrorItem'](_0xcb03('0x6a'),0x193);}_0x380524=_0xdf7330;return db[_0xcb03('0x6b')]['findAll']({'raw':!![]});}return null;})[_0xcb03('0x22')](function(_0x1d8b0d){if(_0x1d8b0d){_0x57ceda=_[_0xcb03('0x6c')](_0x1d8b0d,'id');var _0x155c9e;var _0x210871=squel[_0xcb03('0x6d')]();_0x210871[_0xcb03('0x6e')](_0x226265['table']);for(var _0x7e9b97=0x0;_0x7e9b97<_0x380524[_0xcb03('0x35')];_0x7e9b97+=0x1){_0x155c9e=_0x380524[_0x7e9b97]['MetricId']?_0x57ceda[_0x380524[_0x7e9b97]['MetricId']][_0xcb03('0x6f')]:_0x380524[_0x7e9b97][_0xcb03('0x66')];_0x155c9e=_0x380524[_0x7e9b97][_0xcb03('0x70')]?_['replace'](_0x42f7fa[_0x380524[_0x7e9b97][_0xcb03('0x70')]],'%s',_0x155c9e):_0x155c9e;_0x155c9e=_0x380524[_0x7e9b97][_0xcb03('0x71')]?_[_0xcb03('0x72')](_0x31567d[_0x380524[_0x7e9b97][_0xcb03('0x71')]],'%s',_0x155c9e):_0x155c9e;if(_0x380524[_0x7e9b97][_0xcb03('0x73')]){_0x210871['group'](_0x155c9e);}_0x380524[_0x7e9b97][_0xcb03('0x74')]&&_0x210871[_0xcb03('0x75')](_0x155c9e,_0x380524[_0x7e9b97][_0xcb03('0x74')]===_0xcb03('0x76')?![]:!![]);_0x210871[_0xcb03('0x66')](_0x155c9e,_0x380524[_0x7e9b97][_0xcb03('0x77')]||_0x155c9e);}if(_0x226265['joins']){_0x226265[_0xcb03('0x78')]=JSON[_0xcb03('0x79')](_0x226265[_0xcb03('0x78')]);for(var _0x5717ba=0x0;_0x5717ba<_0x226265['joins'][_0xcb03('0x35')];_0x5717ba+=0x1){if(_0x226265[_0xcb03('0x78')][_0x5717ba]['type']&&_[_0xcb03('0x7a')](_0xd40b2b,_0x226265['joins'][_0x5717ba][_0xcb03('0x2d')])&&_0x226265['joins'][_0x5717ba][_0xcb03('0x7b')]&&_0x226265[_0xcb03('0x78')][_0x5717ba][_0xcb03('0x7c')]&&_0x226265['joins'][_0x5717ba][_0xcb03('0x7d')]){_0x210871[_0x226265[_0xcb03('0x78')][_0x5717ba]['type']](_0x226265[_0xcb03('0x78')][_0x5717ba]['foreignTable'],null,util[_0xcb03('0x71')](_0xcb03('0x7e'),_0x226265[_0xcb03('0x7f')],_0x226265[_0xcb03('0x78')][_0x5717ba][_0xcb03('0x7b')],_0x226265['joins'][_0x5717ba][_0xcb03('0x7c')],_0x226265[_0xcb03('0x78')][_0x5717ba]['foreignKey']));}}}if(_0x226265[_0xcb03('0x80')]){_0x226265[_0xcb03('0x80')]=JSON['parse'](_0x226265['conditions']);_0x210871['where'](_0xdda0c6(_0x226265['conditions'][_0xcb03('0x65')]));}_0x1b2929=_0x210871['clone']();_0x210871['limit'](_0x479d67);_0x210871['offset'](0x0);logger[_0xcb03('0x81')]('Limited\x20Query:',_0x210871['toString']());return dbH[_0xcb03('0x82')]['query'](_0x210871[_0xcb03('0x83')](),{'type':dbH[_0xcb03('0x82')][_0xcb03('0x84')][_0xcb03('0x85')]});}})[_0xcb03('0x22')](respondWithResult(_0x510a9c,null))[_0xcb03('0x44')](handleError(_0x510a9c,null));};function runReport(_0x1358c6,_0x3b7a47,_0x371c5e){var _0x1eb605=_0x3b7a47[_0xcb03('0x28')];var _0x16d3e8=0xa;var _0xec4938=[_0xcb03('0x50'),'left_join',_0xcb03('0x86'),_0xcb03('0x52')];var _0x263fed={'SUM':_0xcb03('0x53'),'COUNT':_0xcb03('0x54'),'COUNT DISTINCT':_0xcb03('0x55'),'MAX':_0xcb03('0x56'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0xcb03('0x58'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xcb03('0x59')};var _0x535c8a={'SEC_TO_TIME':_0xcb03('0x5a'),'DATE':_0xcb03('0x5b'),'HOUR':_0xcb03('0x5c'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x228a81=function(_0x51b45e){return!_[_0xcb03('0x7a')](['IS\x20NULL','IS\x20NOT\x20NULL',_0xcb03('0x61'),_0xcb03('0x62')],_0x51b45e);};var _0x521c0c=function(_0x53167c){if(!_0x53167c||!_0x53167c[_0xcb03('0x63')][_0xcb03('0x35')]){return'';}for(var _0xdc8292='(',_0x18fb49=0x0;_0x18fb49<_0x53167c[_0xcb03('0x63')][_0xcb03('0x35')];_0x18fb49+=0x1){_0x18fb49>0x0&&(_0xdc8292+='\x20'+_0x53167c[_0xcb03('0x64')]+'\x20');_0xdc8292+=_0x53167c[_0xcb03('0x63')][_0x18fb49][_0xcb03('0x65')]?_0x521c0c(_0x53167c[_0xcb03('0x63')][_0x18fb49][_0xcb03('0x65')]):_0x53167c[_0xcb03('0x63')][_0x18fb49][_0xcb03('0x66')]+'\x20'+_0x53167c['rules'][_0x18fb49][_0xcb03('0x67')]+(_0x228a81(_0x53167c[_0xcb03('0x63')][_0x18fb49][_0xcb03('0x67')])?'\x20'+_0x53167c[_0xcb03('0x63')][_0x18fb49][_0xcb03('0x87')]:'');}return _0xdc8292+')';};var _0x51bea8={'where':{'id':_0x1358c6['id']}},_0x38fafe,_0x4ab68e,_0x454353,_0x15b545,_0x4a802f;_0x51bea8=_[_0xcb03('0x3c')]({},_0x51bea8,_0x371c5e);return db['AnalyticDefaultReport'][_0xcb03('0x4a')](_0x51bea8)[_0xcb03('0x22')](function(_0x3d8f58){if(_0x3d8f58){_0x38fafe=_0x3d8f58;return _0x3d8f58[_0xcb03('0x68')]();}return null;})[_0xcb03('0x22')](function(_0x4ea9d1){if(_0x4ea9d1){if(!_0x4ea9d1[_0xcb03('0x35')]){throw new db[(_0xcb03('0x69'))][(_0xcb03('0x88'))](_0xcb03('0x6a'),0x193);}_0x4ab68e=_0x4ea9d1;return db['AnalyticMetric'][_0xcb03('0x3f')]({'raw':!![]});}return null;})[_0xcb03('0x22')](function(_0x3bbc8d){if(_0x3bbc8d){_0x454353=_[_0xcb03('0x6c')](_0x3bbc8d,'id');var _0x47a150;var _0x3b7b73=squel[_0xcb03('0x6d')]();_0x3b7b73[_0xcb03('0x6e')](_0x38fafe[_0xcb03('0x7f')]);for(var _0xe02f7c=0x0;_0xe02f7c<_0x4ab68e[_0xcb03('0x35')];_0xe02f7c+=0x1){_0x47a150=_0x4ab68e[_0xe02f7c][_0xcb03('0x89')]?_0x454353[_0x4ab68e[_0xe02f7c]['MetricId']]['metric']:_0x4ab68e[_0xe02f7c][_0xcb03('0x66')];_0x47a150=_0x4ab68e[_0xe02f7c][_0xcb03('0x70')]?_['replace'](_0x263fed[_0x4ab68e[_0xe02f7c][_0xcb03('0x70')]],'%s',_0x47a150):_0x47a150;_0x47a150=_0x4ab68e[_0xe02f7c][_0xcb03('0x71')]?_[_0xcb03('0x72')](_0x535c8a[_0x4ab68e[_0xe02f7c][_0xcb03('0x71')]],'%s',_0x47a150):_0x47a150;if(_0x4ab68e[_0xe02f7c]['groupBy']){_0x3b7b73[_0xcb03('0x65')](_0x47a150);}_0x4ab68e[_0xe02f7c][_0xcb03('0x74')]&&_0x3b7b73[_0xcb03('0x75')](_0x47a150,_0x4ab68e[_0xe02f7c]['orderBy']===_0xcb03('0x76')?![]:!![]);_0x3b7b73['field'](_0x47a150,_0x4ab68e[_0xe02f7c][_0xcb03('0x77')]||_0x47a150);}if(_0x38fafe[_0xcb03('0x78')]){_0x38fafe['joins']=JSON[_0xcb03('0x79')](_0x38fafe['joins']);for(var _0x530739=0x0;_0x530739<_0x38fafe['joins'][_0xcb03('0x35')];_0x530739+=0x1){if(_0x38fafe[_0xcb03('0x78')][_0x530739]['type']&&_[_0xcb03('0x7a')](_0xec4938,_0x38fafe[_0xcb03('0x78')][_0x530739][_0xcb03('0x2d')])&&_0x38fafe['joins'][_0x530739]['parentKey']&&_0x38fafe[_0xcb03('0x78')][_0x530739][_0xcb03('0x7c')]&&_0x38fafe['joins'][_0x530739]['foreignKey']){_0x3b7b73[_0x38fafe['joins'][_0x530739][_0xcb03('0x2d')]](_0x38fafe['joins'][_0x530739][_0xcb03('0x7c')],null,util[_0xcb03('0x71')](_0xcb03('0x7e'),_0x38fafe[_0xcb03('0x7f')],_0x38fafe['joins'][_0x530739][_0xcb03('0x7b')],_0x38fafe[_0xcb03('0x78')][_0x530739]['foreignTable'],_0x38fafe[_0xcb03('0x78')][_0x530739][_0xcb03('0x7d')]));}}}if(_0x38fafe[_0xcb03('0x80')]){_0x38fafe[_0xcb03('0x80')]=JSON[_0xcb03('0x79')](_0x38fafe['conditions']);_0x3b7b73[_0xcb03('0x39')](_0x521c0c(_0x38fafe[_0xcb03('0x80')]['group']));}_0x4a802f=_0x3b7b73[_0xcb03('0x8a')]();_0x3b7b73[_0xcb03('0x1b')](_0x16d3e8);_0x3b7b73[_0xcb03('0x1a')](0x0);return;}})[_0xcb03('0x22')](function(){if(_0x3b7a47['output']===_0xcb03('0x8b')){return null;}var _0x2c3e41=_[_0xcb03('0x3c')](_0x3b7a47,{'name':_0x3b7a47[_0xcb03('0x8c')]||_0x3b7a47[_0xcb03('0x28')]||_0x38fafe[_0xcb03('0x28')],'basename':_0x1eb605,'savename':util[_0xcb03('0x71')](_0xcb03('0x8d'),_0x3b7a47[_0xcb03('0x28')]||_0x38fafe[_0xcb03('0x28')],require(_0xcb03('0x8e'))[_0xcb03('0x8f')](0x4),_0x3b7a47[_0xcb03('0x90')]||'csv'),'reportId':_0x38fafe['id'],'reportType':_0xcb03('0x91')});return db[_0xcb03('0x92')][_0xcb03('0x45')](_0x2c3e41,{'raw':!![]});})[_0xcb03('0x22')](function(_0x2ead59){if(_0x38fafe['table']===_0xcb03('0x93')){_0x4a802f[_0xcb03('0x39')](_0x38fafe[_0xcb03('0x7f')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x3b7a47['startDate'],_0x3b7a47[_0xcb03('0x94')]);}else{_0x4a802f[_0xcb03('0x39')](_0x38fafe[_0xcb03('0x7f')]+_0xcb03('0x95'),_0x3b7a47[_0xcb03('0x96')],_0x3b7a47[_0xcb03('0x94')]);}if(_0x2ead59){logger[_0xcb03('0x97')](_0xcb03('0x98'),_0x4a802f[_0xcb03('0x83')]());require(_0xcb03('0x99'))[_0xcb03('0x9a')](path['join'](__dirname,'../../components/export/',_0x2ead59[_0xcb03('0x90')]),[_0x2ead59['id'],_0x4a802f[_0xcb03('0x83')](),path[_0xcb03('0x50')](__dirname,'../../files/reports',_0x2ead59[_0xcb03('0x9b')]),_0x1eb605]);return _0x2ead59;}else{var _0x1d3acf=squel[_0xcb03('0x6d')]();_0x1d3acf['from']('('+_0x4a802f['toString']()+')',_0xcb03('0x9c'));_0x1d3acf[_0xcb03('0x66')](_0xcb03('0x9d'),_0xcb03('0x19'));_0x4a802f[_0xcb03('0x1b')](_0x3b7a47[_0xcb03('0x1b')]||_0x16d3e8);_0x4a802f[_0xcb03('0x1a')](_0x3b7a47[_0xcb03('0x1a')]||0x0);return dbH['sequelize'][_0xcb03('0x30')](_0x1d3acf['toString'](),{'type':dbH[_0xcb03('0x82')]['QueryTypes'][_0xcb03('0x85')]})['then'](function(_0x11ff08){if(!_0x11ff08['length']){_0x15b545=0x0;}else{_0x15b545=_0x11ff08[0x0]['count']||0x0;}return dbH['sequelize'][_0xcb03('0x30')](_0x4a802f[_0xcb03('0x83')](),{'type':dbH['sequelize'][_0xcb03('0x84')][_0xcb03('0x85')]});})[_0xcb03('0x22')](function(_0x4ef8d4){return{'rows':_0x4ef8d4||[],'count':_0x15b545};});}});}exports['run']=function(_0x43ad43,_0x4dbc4f){return runReport(_0x43ad43[_0xcb03('0x4e')],_0x43ad43[_0xcb03('0x30')],_0x43ad43[_0xcb03('0x3d')])['then'](respondWithResult(_0x4dbc4f,null))[_0xcb03('0x44')](handleError(_0x4dbc4f,null));};exports[_0xcb03('0x9e')]=runReport;exports[_0xcb03('0x30')]=function(_0x247445,_0x529dcb){var _0x33ccd7=0xa;var _0x209684=[_0xcb03('0x50'),_0xcb03('0x51'),'right_join',_0xcb03('0x52')];var _0x267413={'SUM':_0xcb03('0x53'),'COUNT':_0xcb03('0x54'),'COUNT DISTINCT':_0xcb03('0x55'),'MAX':_0xcb03('0x56'),'MIN':'MIN(%s)','AVG':_0xcb03('0x57'),'GROUP_CONCAT':_0xcb03('0x58'),'GROUP_CONCAT ASC':_0xcb03('0x9f'),'GROUP_CONCAT DESC':_0xcb03('0x59')};var _0x24d7ff={'SEC_TO_TIME':_0xcb03('0x5a'),'DATE':_0xcb03('0x5b'),'HOUR':'HOUR(%s)','ROUND':_0xcb03('0x5d'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x254061=function(_0x5e3130){return!_['includes']([_0xcb03('0x5f'),_0xcb03('0x60'),_0xcb03('0x61'),_0xcb03('0x62')],_0x5e3130);};var _0x1d32cb=function(_0x1aeb15){if(!_0x1aeb15||!_0x1aeb15[_0xcb03('0x63')]['length']){return'';}for(var _0x40057b='(',_0x361cbb=0x0;_0x361cbb<_0x1aeb15[_0xcb03('0x63')]['length'];_0x361cbb+=0x1){_0x361cbb>0x0&&(_0x40057b+='\x20'+_0x1aeb15[_0xcb03('0x64')]+'\x20');_0x40057b+=_0x1aeb15['rules'][_0x361cbb][_0xcb03('0x65')]?_0x1d32cb(_0x1aeb15[_0xcb03('0x63')][_0x361cbb][_0xcb03('0x65')]):_0x1aeb15[_0xcb03('0x63')][_0x361cbb]['field']+'\x20'+_0x1aeb15[_0xcb03('0x63')][_0x361cbb][_0xcb03('0x67')]+(_0x254061(_0x1aeb15[_0xcb03('0x63')][_0x361cbb][_0xcb03('0x67')])?'\x20'+_0x1aeb15[_0xcb03('0x63')][_0x361cbb][_0xcb03('0x87')]:'');}return _0x40057b+')';};var _0x3fe225={'where':{'id':_0x247445[_0xcb03('0x4e')]['id']}},_0x3e34ba,_0x42922f,_0x53eeb8,_0xdd6c9e,_0x388b18;_0x3fe225=_[_0xcb03('0x3c')]({},_0x3fe225,_0x247445['options']);return db[_0xcb03('0x3e')][_0xcb03('0x4a')](_0x3fe225)[_0xcb03('0x22')](function(_0x95f0cb){if(_0x95f0cb){_0x3e34ba=_0x95f0cb;return _0x95f0cb[_0xcb03('0x68')]();}return null;})['then'](function(_0x305a80){if(_0x305a80){if(!_0x305a80[_0xcb03('0x35')]){throw new db['Sequelize']['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x42922f=_0x305a80;return db[_0xcb03('0x6b')][_0xcb03('0x3f')]({'raw':!![]});}return null;})[_0xcb03('0x22')](function(_0x453b44){if(_0x453b44){_0x53eeb8=_[_0xcb03('0x6c')](_0x453b44,'id');var _0x3a0246;var _0x3d53af=squel[_0xcb03('0x6d')]();_0x3d53af[_0xcb03('0x6e')](_0x3e34ba[_0xcb03('0x7f')]);for(var _0xe76ee2=0x0;_0xe76ee2<_0x42922f[_0xcb03('0x35')];_0xe76ee2+=0x1){_0x3a0246=_0x42922f[_0xe76ee2]['MetricId']?_0x53eeb8[_0x42922f[_0xe76ee2]['MetricId']][_0xcb03('0x6f')]:_0x42922f[_0xe76ee2][_0xcb03('0x66')];_0x3a0246=_0x42922f[_0xe76ee2][_0xcb03('0x70')]?_[_0xcb03('0x72')](_0x267413[_0x42922f[_0xe76ee2][_0xcb03('0x70')]],'%s',_0x3a0246):_0x3a0246;_0x3a0246=_0x42922f[_0xe76ee2]['format']?_[_0xcb03('0x72')](_0x24d7ff[_0x42922f[_0xe76ee2][_0xcb03('0x71')]],'%s',_0x3a0246):_0x3a0246;if(_0x42922f[_0xe76ee2][_0xcb03('0x73')]){_0x3d53af['group'](_0x3a0246);}_0x42922f[_0xe76ee2]['orderBy']&&_0x3d53af[_0xcb03('0x75')](_0x3a0246,_0x42922f[_0xe76ee2]['orderBy']==='DESC'?![]:!![]);_0x3d53af[_0xcb03('0x66')](_0x3a0246,_0x42922f[_0xe76ee2]['alias']||_0x3a0246);}if(_0x3e34ba['joins']){_0x3e34ba[_0xcb03('0x78')]=JSON['parse'](_0x3e34ba[_0xcb03('0x78')]);for(var _0x182f72=0x0;_0x182f72<_0x3e34ba['joins'][_0xcb03('0x35')];_0x182f72+=0x1){if(_0x3e34ba['joins'][_0x182f72][_0xcb03('0x2d')]&&_[_0xcb03('0x7a')](_0x209684,_0x3e34ba[_0xcb03('0x78')][_0x182f72]['type'])&&_0x3e34ba[_0xcb03('0x78')][_0x182f72][_0xcb03('0x7b')]&&_0x3e34ba[_0xcb03('0x78')][_0x182f72]['foreignTable']&&_0x3e34ba['joins'][_0x182f72][_0xcb03('0x7d')]){_0x3d53af[_0x3e34ba['joins'][_0x182f72][_0xcb03('0x2d')]](_0x3e34ba['joins'][_0x182f72][_0xcb03('0x7c')],null,util[_0xcb03('0x71')](_0xcb03('0x7e'),_0x3e34ba[_0xcb03('0x7f')],_0x3e34ba[_0xcb03('0x78')][_0x182f72]['parentKey'],_0x3e34ba[_0xcb03('0x78')][_0x182f72][_0xcb03('0x7c')],_0x3e34ba[_0xcb03('0x78')][_0x182f72][_0xcb03('0x7d')]));}}}if(_0x3e34ba[_0xcb03('0x80')]){_0x3e34ba[_0xcb03('0x80')]=JSON[_0xcb03('0x79')](_0x3e34ba[_0xcb03('0x80')]);_0x3d53af['where'](_0x1d32cb(_0x3e34ba[_0xcb03('0x80')]['group']));}_0x388b18=_0x3d53af['clone']();_0x3d53af['limit'](_0x33ccd7);_0x3d53af[_0xcb03('0x1a')](0x0);logger['debug'](_0xcb03('0xa0'),_0x3d53af[_0xcb03('0x83')]());return dbH[_0xcb03('0x82')]['query'](_0x3d53af[_0xcb03('0x83')](),{'type':dbH[_0xcb03('0x82')][_0xcb03('0x84')][_0xcb03('0x85')]});}})[_0xcb03('0x22')](function(){return{'sql':_0x388b18[_0xcb03('0x83')]()};})[_0xcb03('0x22')](respondWithResult(_0x529dcb,null))[_0xcb03('0x44')](handleError(_0x529dcb,null));};