Built motion from commit (unavailable).|2.4.12
[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 _0xa9e0=['../../config/license/hardware','../../config/logger','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','get','UserProfileResource','destroy','stack','name','send','index','rawAttributes','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','type','key','VIRTUAL','field','options','includeAll','include','AnalyticCustomReport','rows','catch','show','params','merge','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','update','body','preview','right_join','cross_join','SUM(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','findAll','from','table','MetricId','metric','function','replace','format','groupBy','group','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','COUNT(%s)','MAX(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','IS\x20NULL','operator','AnalyticMetric','keyBy','select','output','web','fullPath','%s-%s.%s','custom','AnalyticExtractedReport','startDate','endDate','Run\x20Query:','child_process','fork','join','../../files/reports','savename','COUNT(*)','run','runReport','AVG(%s)','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xa9e0,0x123));var _0x0a9e=function(_0x12d033,_0x25fa2f){_0x12d033=_0x12d033-0x0;var _0x3b4e80=_0xa9e0[_0x12d033];return _0x3b4e80;};'use strict';var pdf=require(_0x0a9e('0x0'));var emlformat=require(_0x0a9e('0x1'));var rimraf=require(_0x0a9e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0a9e('0x3'));var moment=require('moment');var BPromise=require(_0x0a9e('0x4'));var Mustache=require(_0x0a9e('0x5'));var util=require(_0x0a9e('0x6'));var path=require(_0x0a9e('0x7'));var sox=require(_0x0a9e('0x8'));var csv=require('to-csv');var ejs=require(_0x0a9e('0x9'));var fs=require('fs');var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var hardwareService=require(_0x0a9e('0x11'));var logger=require(_0x0a9e('0x12'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x273d4d,_0x36471c){_0x36471c=_0x36471c||0xcc;return function(_0xd5b662){if(_0xd5b662){return _0x273d4d[_0x0a9e('0x13')](_0x36471c);}return _0x273d4d[_0x0a9e('0x14')](_0x36471c)[_0x0a9e('0x15')]();};}function respondWithResult(_0x5db4b0,_0x4283ce){_0x4283ce=_0x4283ce||0xc8;return function(_0x239b12){if(_0x239b12){return _0x5db4b0[_0x0a9e('0x14')](_0x4283ce)[_0x0a9e('0x16')](_0x239b12);}};}function respondWithFilteredResult(_0x44dcfd,_0x4d5611){return function(_0x52a03d){if(_0x52a03d){var _0x22dccb=_0x52a03d[_0x0a9e('0x17')],_0x5d0880=_0x4d5611[_0x0a9e('0x18')],_0x1985b6=_0x4d5611['offset']+_0x4d5611[_0x0a9e('0x19')],_0x519dfd;if(_0x1985b6>=_0x22dccb){_0x1985b6=_0x22dccb;_0x519dfd=0xc8;}else{_0x519dfd=0xce;}_0x44dcfd['status'](_0x519dfd);return _0x44dcfd[_0x0a9e('0x1a')](_0x0a9e('0x1b'),_0x5d0880+'-'+_0x1985b6+'/'+_0x22dccb)[_0x0a9e('0x16')](_0x52a03d);}return null;};}function patchUpdates(_0x205fd6){return function(_0x31b1ca){try{jsonpatch[_0x0a9e('0x1c')](_0x31b1ca,_0x205fd6,!![]);}catch(_0x530eb7){return BPromise[_0x0a9e('0x1d')](_0x530eb7);}return _0x31b1ca[_0x0a9e('0x1e')]();};}function saveUpdates(_0x112016,_0x1c696a){return function(_0x105080){if(_0x105080){return _0x105080['update'](_0x112016)[_0x0a9e('0x1f')](function(_0x155cce){return _0x155cce;});}return null;};}function removeEntity(_0x53682f,_0x20f109){return function(_0x5a09ef){if(_0x5a09ef){return _0x5a09ef['destroy']()[_0x0a9e('0x1f')](function(){var _0x432e56=_0x5a09ef[_0x0a9e('0x20')]({'plain':!![]});var _0x30bae6='CustomReports';return db[_0x0a9e('0x21')][_0x0a9e('0x22')]({'where':{'type':_0x30bae6,'resourceId':_0x432e56['id']}})[_0x0a9e('0x1f')](function(){return _0x5a09ef;});})[_0x0a9e('0x1f')](function(){_0x53682f[_0x0a9e('0x14')](0xcc)[_0x0a9e('0x15')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x13')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x23')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x24')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x25')](_0x33161b);};}exports[_0x0a9e('0x26')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=db['AnalyticCustomReport'][_0x0a9e('0x27')];_0x1538a4[_0x0a9e('0x28')]=_[_0x0a9e('0x29')](_0x14de77);_0x1538a4[_0x0a9e('0x2a')]=_['keys'](_0x25fba9[_0x0a9e('0x2a')]);_0x1538a4[_0x0a9e('0x2b')]=_[_0x0a9e('0x2c')](_0x1538a4[_0x0a9e('0x28')],_0x1538a4[_0x0a9e('0x2a')]);_0x140511[_0x0a9e('0x2d')]=_[_0x0a9e('0x2c')](_0x1538a4[_0x0a9e('0x28')],qs[_0x0a9e('0x2e')](_0x25fba9['query'][_0x0a9e('0x2e')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x2d')][_0x0a9e('0x2f')]?_0x140511[_0x0a9e('0x2d')]:_0x1538a4[_0x0a9e('0x28')];if(!_0x25fba9[_0x0a9e('0x2a')]['hasOwnProperty'](_0x0a9e('0x30'))){_0x140511[_0x0a9e('0x19')]=qs[_0x0a9e('0x19')](_0x25fba9[_0x0a9e('0x2a')][_0x0a9e('0x19')]);_0x140511[_0x0a9e('0x18')]=qs[_0x0a9e('0x18')](_0x25fba9[_0x0a9e('0x2a')]['offset']);}_0x140511[_0x0a9e('0x31')]=qs['sort'](_0x25fba9[_0x0a9e('0x2a')][_0x0a9e('0x32')]);_0x140511[_0x0a9e('0x33')]=qs[_0x0a9e('0x2b')](_['pick'](_0x25fba9[_0x0a9e('0x2a')],_0x1538a4[_0x0a9e('0x2b')]));if(_0x25fba9[_0x0a9e('0x2a')][_0x0a9e('0x34')]){_0x140511['where']=_['merge'](_0x140511[_0x0a9e('0x33')],{'$or':_['map'](_0x14de77,function(_0x24936a){if(_0x24936a[_0x0a9e('0x35')][_0x0a9e('0x36')]!==_0x0a9e('0x37')){var _0x4f41ae={};_0x4f41ae[_0x24936a[_0x0a9e('0x38')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2a')][_0x0a9e('0x34')]+'%'};return _0x4f41ae;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x39')]);var _0x1a180b={'where':_0x140511[_0x0a9e('0x33')]};return db['AnalyticCustomReport']['count'](_0x1a180b)[_0x0a9e('0x1f')](function(_0x40d766){_0x11c3b6['count']=_0x40d766;if(_0x25fba9[_0x0a9e('0x2a')][_0x0a9e('0x3a')]){_0x140511[_0x0a9e('0x3b')]=[{'all':!![]}];}return db[_0x0a9e('0x3c')]['findAll'](_0x140511);})['then'](function(_0x15e37d){_0x11c3b6[_0x0a9e('0x3d')]=_0x15e37d;return _0x11c3b6;})['then'](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x3e')](handleError(_0x14433c,null));};exports[_0x0a9e('0x3f')]=function(_0x1459bb,_0x5b4f5e){var _0x316c8f={'raw':![],'where':{'id':_0x1459bb[_0x0a9e('0x40')]['id']}},_0x2cfea9={};_0x2cfea9[_0x0a9e('0x28')]=_[_0x0a9e('0x29')](db[_0x0a9e('0x3c')][_0x0a9e('0x27')]);_0x2cfea9[_0x0a9e('0x2a')]=_[_0x0a9e('0x29')](_0x1459bb[_0x0a9e('0x2a')]);_0x2cfea9[_0x0a9e('0x2b')]=_[_0x0a9e('0x2c')](_0x2cfea9[_0x0a9e('0x28')],_0x2cfea9[_0x0a9e('0x2a')]);_0x316c8f[_0x0a9e('0x2d')]=_['intersection'](_0x2cfea9['model'],qs[_0x0a9e('0x2e')](_0x1459bb[_0x0a9e('0x2a')][_0x0a9e('0x2e')]));_0x316c8f[_0x0a9e('0x2d')]=_0x316c8f[_0x0a9e('0x2d')][_0x0a9e('0x2f')]?_0x316c8f[_0x0a9e('0x2d')]:_0x2cfea9[_0x0a9e('0x28')];if(_0x1459bb[_0x0a9e('0x2a')][_0x0a9e('0x3a')]){_0x316c8f[_0x0a9e('0x3b')]=[{'all':!![]}];}_0x316c8f=_[_0x0a9e('0x41')]({},_0x316c8f,_0x1459bb['options']);return db[_0x0a9e('0x3c')][_0x0a9e('0x42')](_0x316c8f)[_0x0a9e('0x1f')](handleEntityNotFound(_0x5b4f5e,null))[_0x0a9e('0x1f')](respondWithResult(_0x5b4f5e,null))[_0x0a9e('0x3e')](handleError(_0x5b4f5e,null));};exports[_0x0a9e('0x43')]=function(_0x21eb86,_0x44dd99){return db['AnalyticCustomReport'][_0x0a9e('0x43')](_0x21eb86['body'],{})[_0x0a9e('0x1f')](function(_0x476688){var _0x8d6dd1=_0x21eb86['user'][_0x0a9e('0x20')]({'plain':!![]});if(!_0x8d6dd1)throw new Error(_0x0a9e('0x44'));if(_0x8d6dd1[_0x0a9e('0x45')]===_0x0a9e('0x46')){var _0x45c845=_0x476688[_0x0a9e('0x20')]({'plain':!![]});var _0x45bf7f='Reports';return db[_0x0a9e('0x47')][_0x0a9e('0x42')]({'where':{'name':_0x45bf7f,'userProfileId':_0x8d6dd1[_0x0a9e('0x48')]},'raw':!![]})[_0x0a9e('0x1f')](function(_0x409789){if(_0x409789&&_0x409789[_0x0a9e('0x49')]===0x0){return db[_0x0a9e('0x21')][_0x0a9e('0x43')]({'name':_0x45c845[_0x0a9e('0x24')],'resourceId':_0x45c845['id'],'type':'CustomReports','sectionId':_0x409789['id']},{})[_0x0a9e('0x1f')](function(){return _0x476688;});}else{return _0x476688;}})[_0x0a9e('0x3e')](function(_0x4f7240){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4f7240);throw _0x4f7240;});}return _0x476688;})[_0x0a9e('0x1f')](respondWithResult(_0x44dd99,0xc9))[_0x0a9e('0x3e')](handleError(_0x44dd99,null));};exports[_0x0a9e('0x4a')]=function(_0x11545a,_0x61bb17){if(_0x11545a[_0x0a9e('0x4b')]['id']){delete _0x11545a[_0x0a9e('0x4b')]['id'];}return db[_0x0a9e('0x3c')]['find']({'where':{'id':_0x11545a['params']['id']}})['then'](handleEntityNotFound(_0x61bb17,null))[_0x0a9e('0x1f')](saveUpdates(_0x11545a[_0x0a9e('0x4b')],null))[_0x0a9e('0x1f')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};exports[_0x0a9e('0x22')]=function(_0x161aa7,_0x53d113){return db['AnalyticCustomReport'][_0x0a9e('0x42')]({'where':{'id':_0x161aa7['params']['id']}})[_0x0a9e('0x1f')](handleEntityNotFound(_0x53d113,null))['then'](removeEntity(_0x53d113,null))[_0x0a9e('0x3e')](handleError(_0x53d113,null));};exports[_0x0a9e('0x4c')]=function(_0x439340,_0x53613a){var _0x2f82da=0xa;var _0x1bf38a=['join','left_join',_0x0a9e('0x4d'),_0x0a9e('0x4e')];var _0x49c095={'SUM':_0x0a9e('0x4f'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x0a9e('0x50'),'MAX':'MAX(%s)','MIN':_0x0a9e('0x51'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x0a9e('0x52')};var _0x47de4c={'SEC_TO_TIME':_0x0a9e('0x53'),'DATE':_0x0a9e('0x54'),'HOUR':_0x0a9e('0x55'),'ROUND':_0x0a9e('0x56'),'UNIX_TIMESTAMP':_0x0a9e('0x57')};var _0x272738=function(_0xd10662){return!_[_0x0a9e('0x58')](['IS\x20NULL',_0x0a9e('0x59'),_0x0a9e('0x5a'),_0x0a9e('0x5b')],_0xd10662);};var _0x30c491=function(_0xb83dfd){if(!_0xb83dfd||!_0xb83dfd[_0x0a9e('0x5c')]['length']){return'';}for(var _0x956fbe='(',_0x26bc80=0x0;_0x26bc80<_0xb83dfd['rules'][_0x0a9e('0x2f')];_0x26bc80+=0x1){_0x26bc80>0x0&&(_0x956fbe+='\x20'+_0xb83dfd['operator']+'\x20');_0x956fbe+=_0xb83dfd[_0x0a9e('0x5c')][_0x26bc80]['group']?_0x30c491(_0xb83dfd['rules'][_0x26bc80]['group']):_0xb83dfd[_0x0a9e('0x5c')][_0x26bc80]['field']+'\x20'+_0xb83dfd[_0x0a9e('0x5c')][_0x26bc80][_0x0a9e('0x5d')]+(_0x272738(_0xb83dfd[_0x0a9e('0x5c')][_0x26bc80][_0x0a9e('0x5d')])?'\x20'+_0xb83dfd[_0x0a9e('0x5c')][_0x26bc80][_0x0a9e('0x5e')]:'');}return _0x956fbe+')';};var _0x49eed0={'where':{'id':_0x439340['params']['id']}},_0x1627a7,_0x5854cc,_0xca4ade,_0x1f07cb,_0x51aaf7;_0x49eed0=_[_0x0a9e('0x41')]({},_0x49eed0,_0x439340[_0x0a9e('0x39')]);return db[_0x0a9e('0x3c')][_0x0a9e('0x42')](_0x49eed0)['then'](function(_0x1d0dc8){if(_0x1d0dc8){_0x1627a7=_0x1d0dc8;return _0x1d0dc8[_0x0a9e('0x5f')]();}return null;})['then'](function(_0x797b45){if(_0x797b45){if(!_0x797b45[_0x0a9e('0x2f')]){throw new db[(_0x0a9e('0x60'))][(_0x0a9e('0x61'))](_0x0a9e('0x62'),0x193);}_0x5854cc=_0x797b45;return db['AnalyticMetric'][_0x0a9e('0x63')]({'raw':!![]});}return null;})[_0x0a9e('0x1f')](function(_0x281c7d){if(_0x281c7d){_0xca4ade=_['keyBy'](_0x281c7d,'id');var _0x3528b7;var _0x4f1e60=squel['select']();_0x4f1e60[_0x0a9e('0x64')](_0x1627a7[_0x0a9e('0x65')]);for(var _0x9375fb=0x0;_0x9375fb<_0x5854cc[_0x0a9e('0x2f')];_0x9375fb+=0x1){_0x3528b7=_0x5854cc[_0x9375fb][_0x0a9e('0x66')]?_0xca4ade[_0x5854cc[_0x9375fb][_0x0a9e('0x66')]][_0x0a9e('0x67')]:_0x5854cc[_0x9375fb][_0x0a9e('0x38')];_0x3528b7=_0x5854cc[_0x9375fb][_0x0a9e('0x68')]?_[_0x0a9e('0x69')](_0x49c095[_0x5854cc[_0x9375fb][_0x0a9e('0x68')]],'%s',_0x3528b7):_0x3528b7;_0x3528b7=_0x5854cc[_0x9375fb][_0x0a9e('0x6a')]?_[_0x0a9e('0x69')](_0x47de4c[_0x5854cc[_0x9375fb][_0x0a9e('0x6a')]],'%s',_0x3528b7):_0x3528b7;if(_0x5854cc[_0x9375fb][_0x0a9e('0x6b')]){_0x4f1e60[_0x0a9e('0x6c')](_0x3528b7);}_0x5854cc[_0x9375fb][_0x0a9e('0x6d')]&&_0x4f1e60[_0x0a9e('0x31')](_0x3528b7,_0x5854cc[_0x9375fb]['orderBy']===_0x0a9e('0x6e')?![]:!![]);_0x4f1e60[_0x0a9e('0x38')](_0x3528b7,_0x5854cc[_0x9375fb][_0x0a9e('0x6f')]||_0x3528b7);}if(_0x1627a7['joins']){_0x1627a7[_0x0a9e('0x70')]=JSON[_0x0a9e('0x71')](_0x1627a7['joins']);for(var _0x83f0b2=0x0;_0x83f0b2<_0x1627a7[_0x0a9e('0x70')][_0x0a9e('0x2f')];_0x83f0b2+=0x1){if(_0x1627a7[_0x0a9e('0x70')][_0x83f0b2][_0x0a9e('0x35')]&&_['includes'](_0x1bf38a,_0x1627a7['joins'][_0x83f0b2]['type'])&&_0x1627a7[_0x0a9e('0x70')][_0x83f0b2][_0x0a9e('0x72')]&&_0x1627a7[_0x0a9e('0x70')][_0x83f0b2][_0x0a9e('0x73')]&&_0x1627a7[_0x0a9e('0x70')][_0x83f0b2][_0x0a9e('0x74')]){_0x4f1e60[_0x1627a7[_0x0a9e('0x70')][_0x83f0b2][_0x0a9e('0x35')]](_0x1627a7['joins'][_0x83f0b2][_0x0a9e('0x73')],null,util[_0x0a9e('0x6a')](_0x0a9e('0x75'),_0x1627a7['table'],_0x1627a7[_0x0a9e('0x70')][_0x83f0b2]['parentKey'],_0x1627a7[_0x0a9e('0x70')][_0x83f0b2][_0x0a9e('0x73')],_0x1627a7['joins'][_0x83f0b2][_0x0a9e('0x74')]));}}}if(_0x1627a7[_0x0a9e('0x76')]){_0x1627a7[_0x0a9e('0x76')]=JSON[_0x0a9e('0x71')](_0x1627a7['conditions']);_0x4f1e60[_0x0a9e('0x33')](_0x30c491(_0x1627a7[_0x0a9e('0x76')][_0x0a9e('0x6c')]));}_0x51aaf7=_0x4f1e60[_0x0a9e('0x77')]();_0x4f1e60['limit'](_0x2f82da);_0x4f1e60[_0x0a9e('0x18')](0x0);logger[_0x0a9e('0x78')](_0x0a9e('0x79'),_0x4f1e60[_0x0a9e('0x7a')]());return db['sequelize'][_0x0a9e('0x2a')](_0x4f1e60[_0x0a9e('0x7a')](),{'type':db[_0x0a9e('0x7b')][_0x0a9e('0x7c')][_0x0a9e('0x7d')]});}})[_0x0a9e('0x1f')](respondWithResult(_0x53613a,null))[_0x0a9e('0x3e')](handleError(_0x53613a,null));};function runReport(_0x3df0e3,_0x1a7b03,_0x336dc3){var _0xc4c230=_0x1a7b03[_0x0a9e('0x24')];var _0x25744a=0xa;var _0xe0749e=['join',_0x0a9e('0x7e'),_0x0a9e('0x4d'),_0x0a9e('0x4e')];var _0x563627={'SUM':_0x0a9e('0x4f'),'COUNT':_0x0a9e('0x7f'),'COUNT DISTINCT':_0x0a9e('0x50'),'MAX':_0x0a9e('0x80'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x0a9e('0x81'),'GROUP_CONCAT ASC':_0x0a9e('0x82'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x45108c={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x0a9e('0x54'),'HOUR':_0x0a9e('0x55'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x0a9e('0x57')};var _0x41cf12=function(_0x2d2286){return!_[_0x0a9e('0x58')]([_0x0a9e('0x83'),_0x0a9e('0x59'),_0x0a9e('0x5a'),'IS\x20NOT\x20EMPTY'],_0x2d2286);};var _0x2973d3=function(_0x3ca9b9){if(!_0x3ca9b9||!_0x3ca9b9[_0x0a9e('0x5c')][_0x0a9e('0x2f')]){return'';}for(var _0x492543='(',_0xf51744=0x0;_0xf51744<_0x3ca9b9[_0x0a9e('0x5c')]['length'];_0xf51744+=0x1){_0xf51744>0x0&&(_0x492543+='\x20'+_0x3ca9b9[_0x0a9e('0x84')]+'\x20');_0x492543+=_0x3ca9b9['rules'][_0xf51744][_0x0a9e('0x6c')]?_0x2973d3(_0x3ca9b9[_0x0a9e('0x5c')][_0xf51744][_0x0a9e('0x6c')]):_0x3ca9b9[_0x0a9e('0x5c')][_0xf51744]['field']+'\x20'+_0x3ca9b9['rules'][_0xf51744][_0x0a9e('0x5d')]+(_0x41cf12(_0x3ca9b9[_0x0a9e('0x5c')][_0xf51744][_0x0a9e('0x5d')])?'\x20'+_0x3ca9b9['rules'][_0xf51744][_0x0a9e('0x5e')]:'');}return _0x492543+')';};var _0x36e975={'where':{'id':_0x3df0e3['id']}},_0x524e38,_0x4e46b2,_0xf0a802,_0x56acca,_0x5ea541;_0x36e975=_['merge']({},_0x36e975,_0x336dc3);return db[_0x0a9e('0x3c')][_0x0a9e('0x42')](_0x36e975)[_0x0a9e('0x1f')](function(_0x3bfadf){if(_0x3bfadf){_0x524e38=_0x3bfadf;return _0x3bfadf[_0x0a9e('0x5f')]();}return null;})[_0x0a9e('0x1f')](function(_0x5a8854){if(_0x5a8854){if(!_0x5a8854[_0x0a9e('0x2f')]){throw new db['Sequelize'][(_0x0a9e('0x61'))](_0x0a9e('0x62'),0x193);}_0x4e46b2=_0x5a8854;return db[_0x0a9e('0x85')][_0x0a9e('0x63')]({'raw':!![]});}return null;})['then'](function(_0x46c9ac){if(_0x46c9ac){_0xf0a802=_[_0x0a9e('0x86')](_0x46c9ac,'id');var _0x1d4877;var _0x5b74c3=squel[_0x0a9e('0x87')]();_0x5b74c3[_0x0a9e('0x64')](_0x524e38[_0x0a9e('0x65')]);for(var _0x22063c=0x0;_0x22063c<_0x4e46b2[_0x0a9e('0x2f')];_0x22063c+=0x1){_0x1d4877=_0x4e46b2[_0x22063c][_0x0a9e('0x66')]?_0xf0a802[_0x4e46b2[_0x22063c][_0x0a9e('0x66')]][_0x0a9e('0x67')]:_0x4e46b2[_0x22063c]['field'];_0x1d4877=_0x4e46b2[_0x22063c][_0x0a9e('0x68')]?_[_0x0a9e('0x69')](_0x563627[_0x4e46b2[_0x22063c]['function']],'%s',_0x1d4877):_0x1d4877;_0x1d4877=_0x4e46b2[_0x22063c][_0x0a9e('0x6a')]?_[_0x0a9e('0x69')](_0x45108c[_0x4e46b2[_0x22063c][_0x0a9e('0x6a')]],'%s',_0x1d4877):_0x1d4877;if(_0x4e46b2[_0x22063c]['groupBy']){_0x5b74c3[_0x0a9e('0x6c')](_0x1d4877);}_0x4e46b2[_0x22063c]['orderBy']&&_0x5b74c3[_0x0a9e('0x31')](_0x1d4877,_0x4e46b2[_0x22063c][_0x0a9e('0x6d')]===_0x0a9e('0x6e')?![]:!![]);_0x5b74c3[_0x0a9e('0x38')](_0x1d4877,_0x4e46b2[_0x22063c][_0x0a9e('0x6f')]||_0x1d4877);}if(_0x524e38[_0x0a9e('0x70')]){_0x524e38[_0x0a9e('0x70')]=JSON[_0x0a9e('0x71')](_0x524e38['joins']);for(var _0x329d88=0x0;_0x329d88<_0x524e38[_0x0a9e('0x70')][_0x0a9e('0x2f')];_0x329d88+=0x1){if(_0x524e38[_0x0a9e('0x70')][_0x329d88][_0x0a9e('0x35')]&&_[_0x0a9e('0x58')](_0xe0749e,_0x524e38[_0x0a9e('0x70')][_0x329d88][_0x0a9e('0x35')])&&_0x524e38[_0x0a9e('0x70')][_0x329d88][_0x0a9e('0x72')]&&_0x524e38[_0x0a9e('0x70')][_0x329d88][_0x0a9e('0x73')]&&_0x524e38[_0x0a9e('0x70')][_0x329d88]['foreignKey']){_0x5b74c3[_0x524e38[_0x0a9e('0x70')][_0x329d88][_0x0a9e('0x35')]](_0x524e38[_0x0a9e('0x70')][_0x329d88][_0x0a9e('0x73')],null,util[_0x0a9e('0x6a')]('%s.%s\x20=\x20%s.%s',_0x524e38[_0x0a9e('0x65')],_0x524e38[_0x0a9e('0x70')][_0x329d88]['parentKey'],_0x524e38[_0x0a9e('0x70')][_0x329d88]['foreignTable'],_0x524e38[_0x0a9e('0x70')][_0x329d88][_0x0a9e('0x74')]));}}}if(_0x524e38[_0x0a9e('0x76')]){_0x524e38[_0x0a9e('0x76')]=JSON['parse'](_0x524e38[_0x0a9e('0x76')]);_0x5b74c3['where'](_0x2973d3(_0x524e38[_0x0a9e('0x76')][_0x0a9e('0x6c')]));}_0x5ea541=_0x5b74c3['clone']();_0x5b74c3[_0x0a9e('0x19')](_0x25744a);_0x5b74c3[_0x0a9e('0x18')](0x0);logger[_0x0a9e('0x78')]('Limited\x20Query:',_0x5b74c3['toString']());return db[_0x0a9e('0x7b')][_0x0a9e('0x2a')](_0x5b74c3[_0x0a9e('0x7a')](),{'type':db[_0x0a9e('0x7b')][_0x0a9e('0x7c')][_0x0a9e('0x7d')]});}})[_0x0a9e('0x1f')](function(_0x3c75b9){if(!_0x3c75b9[_0x0a9e('0x2f')]){throw new db['Sequelize'][(_0x0a9e('0x61'))]('No\x20available\x20data',0xcc);}if(_0x1a7b03[_0x0a9e('0x88')]===_0x0a9e('0x89')){return null;}var _0x34e745=_[_0x0a9e('0x41')](_0x1a7b03,{'name':_0x1a7b03[_0x0a9e('0x8a')]||_0x1a7b03['name']||_0x524e38[_0x0a9e('0x24')],'basename':_0xc4c230,'savename':util[_0x0a9e('0x6a')](_0x0a9e('0x8b'),_0x1a7b03[_0x0a9e('0x24')]||_0x524e38[_0x0a9e('0x24')],require('randomstring')['generate'](0x4),_0x1a7b03[_0x0a9e('0x88')]||'csv'),'reportId':_0x524e38['id'],'reportType':_0x0a9e('0x8c')});return db[_0x0a9e('0x8d')][_0x0a9e('0x43')](_0x34e745,{'raw':!![]});})[_0x0a9e('0x1f')](function(_0x2ad54b){if(_0x524e38[_0x0a9e('0x65')]==='cdr'){_0x5ea541['where'](_0x524e38[_0x0a9e('0x65')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x1a7b03[_0x0a9e('0x8e')],_0x1a7b03['endDate']);}else{_0x5ea541[_0x0a9e('0x33')](_0x524e38['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x1a7b03[_0x0a9e('0x8e')],_0x1a7b03[_0x0a9e('0x8f')]);}if(_0x2ad54b){logger['info'](_0x0a9e('0x90'),_0x5ea541[_0x0a9e('0x7a')]());require(_0x0a9e('0x91'))[_0x0a9e('0x92')](path[_0x0a9e('0x93')](__dirname,'../../components/export/',_0x2ad54b['output']),[_0x2ad54b['id'],_0x5ea541[_0x0a9e('0x7a')](),path[_0x0a9e('0x93')](__dirname,_0x0a9e('0x94'),_0x2ad54b[_0x0a9e('0x95')]),_0xc4c230]);return _0x2ad54b;}else{var _0x59303b=squel['select']();_0x59303b[_0x0a9e('0x64')]('('+_0x5ea541[_0x0a9e('0x7a')]()+')','countTable');_0x59303b[_0x0a9e('0x38')](_0x0a9e('0x96'),_0x0a9e('0x17'));_0x5ea541[_0x0a9e('0x19')](_0x1a7b03[_0x0a9e('0x19')]||_0x25744a);_0x5ea541[_0x0a9e('0x18')](_0x1a7b03[_0x0a9e('0x18')]||0x0);return db[_0x0a9e('0x7b')][_0x0a9e('0x2a')](_0x59303b[_0x0a9e('0x7a')](),{'type':db['sequelize'][_0x0a9e('0x7c')][_0x0a9e('0x7d')]})[_0x0a9e('0x1f')](function(_0x1c4232){if(!_0x1c4232[_0x0a9e('0x2f')]){_0x56acca=0x0;}else{_0x56acca=_0x1c4232[0x0]['count']||0x0;}return db['sequelize'][_0x0a9e('0x2a')](_0x5ea541[_0x0a9e('0x7a')](),{'type':db[_0x0a9e('0x7b')][_0x0a9e('0x7c')][_0x0a9e('0x7d')]});})['then'](function(_0x1339d0){return{'rows':_0x1339d0||[],'count':_0x56acca};});}});}exports[_0x0a9e('0x97')]=function(_0x3450ae,_0x52b661){return runReport(_0x3450ae[_0x0a9e('0x40')],_0x3450ae['query'],_0x3450ae[_0x0a9e('0x39')])['then'](respondWithResult(_0x52b661,null))[_0x0a9e('0x3e')](handleError(_0x52b661,null));};exports[_0x0a9e('0x98')]=runReport;exports[_0x0a9e('0x2a')]=function(_0x5c500c,_0xc9529d){var _0x5ed560=0xa;var _0x4383da=[_0x0a9e('0x93'),_0x0a9e('0x7e'),_0x0a9e('0x4d'),_0x0a9e('0x4e')];var _0x1bee04={'SUM':_0x0a9e('0x4f'),'COUNT':_0x0a9e('0x7f'),'COUNT DISTINCT':_0x0a9e('0x50'),'MAX':_0x0a9e('0x80'),'MIN':_0x0a9e('0x51'),'AVG':_0x0a9e('0x99'),'GROUP_CONCAT':_0x0a9e('0x81'),'GROUP_CONCAT ASC':_0x0a9e('0x82'),'GROUP_CONCAT DESC':_0x0a9e('0x52')};var _0x248368={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x0a9e('0x55'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x0a9e('0x57')};var _0x3428c9=function(_0x5d6b69){return!_[_0x0a9e('0x58')]([_0x0a9e('0x83'),_0x0a9e('0x59'),_0x0a9e('0x5a'),'IS\x20NOT\x20EMPTY'],_0x5d6b69);};var _0x148fd9=function(_0x26cb76){if(!_0x26cb76||!_0x26cb76[_0x0a9e('0x5c')][_0x0a9e('0x2f')]){return'';}for(var _0x5d0e1f='(',_0x19e9ed=0x0;_0x19e9ed<_0x26cb76[_0x0a9e('0x5c')][_0x0a9e('0x2f')];_0x19e9ed+=0x1){_0x19e9ed>0x0&&(_0x5d0e1f+='\x20'+_0x26cb76['operator']+'\x20');_0x5d0e1f+=_0x26cb76[_0x0a9e('0x5c')][_0x19e9ed][_0x0a9e('0x6c')]?_0x148fd9(_0x26cb76[_0x0a9e('0x5c')][_0x19e9ed]['group']):_0x26cb76[_0x0a9e('0x5c')][_0x19e9ed][_0x0a9e('0x38')]+'\x20'+_0x26cb76[_0x0a9e('0x5c')][_0x19e9ed][_0x0a9e('0x5d')]+(_0x3428c9(_0x26cb76[_0x0a9e('0x5c')][_0x19e9ed]['condition'])?'\x20'+_0x26cb76[_0x0a9e('0x5c')][_0x19e9ed][_0x0a9e('0x5e')]:'');}return _0x5d0e1f+')';};var _0x4795ae={'where':{'id':_0x5c500c['params']['id']}},_0x3bab3e,_0x1fcfe6,_0x1f6f1c,_0x5822a7,_0x5c3b6f;_0x4795ae=_[_0x0a9e('0x41')]({},_0x4795ae,_0x5c500c[_0x0a9e('0x39')]);return db['AnalyticCustomReport'][_0x0a9e('0x42')](_0x4795ae)[_0x0a9e('0x1f')](function(_0x2a8d55){if(_0x2a8d55){_0x3bab3e=_0x2a8d55;return _0x2a8d55['getFields']();}return null;})[_0x0a9e('0x1f')](function(_0x30e037){if(_0x30e037){if(!_0x30e037[_0x0a9e('0x2f')]){throw new db[(_0x0a9e('0x60'))][(_0x0a9e('0x61'))](_0x0a9e('0x62'),0x193);}_0x1fcfe6=_0x30e037;return db[_0x0a9e('0x85')][_0x0a9e('0x63')]({'raw':!![]});}return null;})[_0x0a9e('0x1f')](function(_0x5a1848){if(_0x5a1848){_0x1f6f1c=_[_0x0a9e('0x86')](_0x5a1848,'id');var _0x5526a7;var _0x138cf5=squel[_0x0a9e('0x87')]();_0x138cf5[_0x0a9e('0x64')](_0x3bab3e[_0x0a9e('0x65')]);for(var _0x407e9d=0x0;_0x407e9d<_0x1fcfe6[_0x0a9e('0x2f')];_0x407e9d+=0x1){_0x5526a7=_0x1fcfe6[_0x407e9d]['MetricId']?_0x1f6f1c[_0x1fcfe6[_0x407e9d][_0x0a9e('0x66')]][_0x0a9e('0x67')]:_0x1fcfe6[_0x407e9d][_0x0a9e('0x38')];_0x5526a7=_0x1fcfe6[_0x407e9d][_0x0a9e('0x68')]?_['replace'](_0x1bee04[_0x1fcfe6[_0x407e9d][_0x0a9e('0x68')]],'%s',_0x5526a7):_0x5526a7;_0x5526a7=_0x1fcfe6[_0x407e9d][_0x0a9e('0x6a')]?_[_0x0a9e('0x69')](_0x248368[_0x1fcfe6[_0x407e9d][_0x0a9e('0x6a')]],'%s',_0x5526a7):_0x5526a7;if(_0x1fcfe6[_0x407e9d][_0x0a9e('0x6b')]){_0x138cf5[_0x0a9e('0x6c')](_0x5526a7);}_0x1fcfe6[_0x407e9d][_0x0a9e('0x6d')]&&_0x138cf5[_0x0a9e('0x31')](_0x5526a7,_0x1fcfe6[_0x407e9d][_0x0a9e('0x6d')]===_0x0a9e('0x6e')?![]:!![]);_0x138cf5['field'](_0x5526a7,_0x1fcfe6[_0x407e9d][_0x0a9e('0x6f')]||_0x5526a7);}if(_0x3bab3e[_0x0a9e('0x70')]){_0x3bab3e[_0x0a9e('0x70')]=JSON[_0x0a9e('0x71')](_0x3bab3e[_0x0a9e('0x70')]);for(var _0x253f74=0x0;_0x253f74<_0x3bab3e[_0x0a9e('0x70')][_0x0a9e('0x2f')];_0x253f74+=0x1){if(_0x3bab3e['joins'][_0x253f74][_0x0a9e('0x35')]&&_[_0x0a9e('0x58')](_0x4383da,_0x3bab3e[_0x0a9e('0x70')][_0x253f74]['type'])&&_0x3bab3e[_0x0a9e('0x70')][_0x253f74][_0x0a9e('0x72')]&&_0x3bab3e[_0x0a9e('0x70')][_0x253f74][_0x0a9e('0x73')]&&_0x3bab3e[_0x0a9e('0x70')][_0x253f74][_0x0a9e('0x74')]){_0x138cf5[_0x3bab3e[_0x0a9e('0x70')][_0x253f74][_0x0a9e('0x35')]](_0x3bab3e[_0x0a9e('0x70')][_0x253f74][_0x0a9e('0x73')],null,util['format'](_0x0a9e('0x75'),_0x3bab3e[_0x0a9e('0x65')],_0x3bab3e[_0x0a9e('0x70')][_0x253f74][_0x0a9e('0x72')],_0x3bab3e[_0x0a9e('0x70')][_0x253f74][_0x0a9e('0x73')],_0x3bab3e['joins'][_0x253f74][_0x0a9e('0x74')]));}}}if(_0x3bab3e['conditions']){_0x3bab3e['conditions']=JSON['parse'](_0x3bab3e[_0x0a9e('0x76')]);_0x138cf5[_0x0a9e('0x33')](_0x148fd9(_0x3bab3e[_0x0a9e('0x76')][_0x0a9e('0x6c')]));}_0x5c3b6f=_0x138cf5['clone']();_0x138cf5[_0x0a9e('0x19')](_0x5ed560);_0x138cf5[_0x0a9e('0x18')](0x0);logger[_0x0a9e('0x78')](_0x0a9e('0x79'),_0x138cf5[_0x0a9e('0x7a')]());return db['sequelize']['query'](_0x138cf5[_0x0a9e('0x7a')](),{'type':db[_0x0a9e('0x7b')][_0x0a9e('0x7c')]['SELECT']});}})[_0x0a9e('0x1f')](function(){return{'sql':_0x5c3b6f[_0x0a9e('0x7a')]()};})[_0x0a9e('0x1f')](respondWithResult(_0xc9529d,null))['catch'](handleError(_0xc9529d,null));};