1191be353e0eb7ec2738840146c519a6f846591f
[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 _0x5817=['key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','options','AnalyticCustomReport','include','findAll','catch','params','includeAll','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','UserProfileSection','userProfileId','autoAssociation','CustomReports','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%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)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','select','from','table','MetricId','metric','field','replace','format','orderBy','alias','joins','parse','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','clone','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','Sequelize','keyBy','function','groupBy','parentKey','web','%s-%s.%s','generate','output','custom','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','child_process','fork','savename','countTable','COUNT(*)','run','runReport','operator','DESC','debug','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','ejs','lodash','squel','crypto','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','then','destroy','UserProfileResource','error','stack','name','send','render','merge','body','contact','message','agent','account','map','rawAttributes','fieldName'];(function(_0x303a34,_0x3a8aa2){var _0x2207f9=function(_0x14bef9){while(--_0x14bef9){_0x303a34['push'](_0x303a34['shift']());}};_0x2207f9(++_0x3a8aa2);}(_0x5817,0x11a));var _0x7581=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5817[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x7581('0x0'));var rimraf=require(_0x7581('0x1'));var zipdir=require(_0x7581('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7581('0x3'));var moment=require('moment');var BPromise=require(_0x7581('0x4'));var Mustache=require('mustache');var util=require(_0x7581('0x5'));var path=require(_0x7581('0x6'));var sox=require(_0x7581('0x7'));var csv=require('to-csv');var ejs=require(_0x7581('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7581('0x9'));var squel=require(_0x7581('0xa'));var crypto=require(_0x7581('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x7581('0xc'));var querystring=require('querystring');var Papa=require(_0x7581('0xd'));var Redis=require(_0x7581('0xe'));var authService=require(_0x7581('0xf'));var qs=require(_0x7581('0x10'));var as=require(_0x7581('0x11'));var hardwareService=require(_0x7581('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x7581('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x7581('0x14'))['db'];var dbH=require(_0x7581('0x14'))[_0x7581('0x15')];function respondWithStatusCode(_0x547676,_0x1fe5de){_0x1fe5de=_0x1fe5de||0xcc;return function(_0x53f528){if(_0x53f528){return _0x547676[_0x7581('0x16')](_0x1fe5de);}return _0x547676[_0x7581('0x17')](_0x1fe5de)[_0x7581('0x18')]();};}function respondWithResult(_0xe9ea47,_0x53f83f){_0x53f83f=_0x53f83f||0xc8;return function(_0xa5fdb8){if(_0xa5fdb8){return _0xe9ea47['status'](_0x53f83f)[_0x7581('0x19')](_0xa5fdb8);}};}function respondWithFilteredResult(_0xadd7d7,_0x156684){return function(_0x2e7f06){if(_0x2e7f06){var _0x4ac87a=typeof _0x156684[_0x7581('0x1a')]===_0x7581('0x1b')&&typeof _0x156684['limit']==='undefined';var _0x46cb74=_0x2e7f06[_0x7581('0x1c')];var _0x364fdb=_0x4ac87a?0x0:_0x156684[_0x7581('0x1a')];var _0x226104=_0x4ac87a?_0x2e7f06['count']:_0x156684['offset']+_0x156684[_0x7581('0x1d')];var _0x351fc9;if(_0x226104>=_0x46cb74){_0x226104=_0x46cb74;_0x351fc9=0xc8;}else{_0x351fc9=0xce;}_0xadd7d7[_0x7581('0x17')](_0x351fc9);return _0xadd7d7[_0x7581('0x1e')]('Content-Range',_0x364fdb+'-'+_0x226104+'/'+_0x46cb74)[_0x7581('0x19')](_0x2e7f06);}return null;};}function patchUpdates(_0x518b54){return function(_0x568dc1){try{jsonpatch[_0x7581('0x1f')](_0x568dc1,_0x518b54,!![]);}catch(_0x2a4dbb){return BPromise[_0x7581('0x20')](_0x2a4dbb);}return _0x568dc1[_0x7581('0x21')]();};}function saveUpdates(_0x2d1f7b,_0x1538b0){return function(_0xd06df7){if(_0xd06df7){return _0xd06df7[_0x7581('0x22')](_0x2d1f7b)[_0x7581('0x23')](function(_0x3d3414){return _0x3d3414;});}return null;};}function removeEntity(_0xd6c5bb,_0x99d7ea){return function(_0x44d839){if(_0x44d839){return _0x44d839[_0x7581('0x24')]()[_0x7581('0x23')](function(){var _0x4b335=_0x44d839['get']({'plain':!![]});var _0xa02912='CustomReports';return db[_0x7581('0x25')][_0x7581('0x24')]({'where':{'type':_0xa02912,'resourceId':_0x4b335['id']}})[_0x7581('0x23')](function(){return _0x44d839;});})[_0x7581('0x23')](function(){_0xd6c5bb[_0x7581('0x17')](0xcc)[_0x7581('0x18')]();});}};}function handleEntityNotFound(_0x3ec8f2,_0x36f7d8){return function(_0x16209c){if(!_0x16209c){_0x3ec8f2['sendStatus'](0x194);}return _0x16209c;};}function handleError(_0xf58a9b,_0x3585f3){_0x3585f3=_0x3585f3||0x1f4;return function(_0x1863a8){logger[_0x7581('0x26')](_0x1863a8[_0x7581('0x27')]);if(_0x1863a8[_0x7581('0x28')]){delete _0x1863a8[_0x7581('0x28')];}_0xf58a9b['status'](_0x3585f3)[_0x7581('0x29')](_0x1863a8);};}function getMustacheRender(_0x3302fb,_0x32679b){return Mustache[_0x7581('0x2a')](_0x3302fb,_[_0x7581('0x2b')](_0x32679b[_0x7581('0x2c')],{'contact':_0x32679b[_0x7581('0x2d')],'message':_0x32679b[_0x7581('0x2e')],'agent':_0x32679b[_0x7581('0x2f')],'interaction':_0x32679b['interaction'],'account':_0x32679b[_0x7581('0x30')]}))||'';}exports['index']=function(_0x480ed6,_0x329ac0){var _0x438b8f={},_0xb64106={},_0x35ec65={'count':0x0,'rows':[]};var _0x4d4d61=_[_0x7581('0x31')](db['AnalyticCustomReport'][_0x7581('0x32')],function(_0x3b5b93){return{'name':_0x3b5b93[_0x7581('0x33')],'type':_0x3b5b93['type'][_0x7581('0x34')]};});_0xb64106[_0x7581('0x35')]=_[_0x7581('0x31')](_0x4d4d61,'name');_0xb64106[_0x7581('0x36')]=_[_0x7581('0x37')](_0x480ed6[_0x7581('0x36')]);_0xb64106[_0x7581('0x38')]=_[_0x7581('0x39')](_0xb64106[_0x7581('0x35')],_0xb64106[_0x7581('0x36')]);_0x438b8f[_0x7581('0x3a')]=_[_0x7581('0x39')](_0xb64106[_0x7581('0x35')],qs['fields'](_0x480ed6[_0x7581('0x36')][_0x7581('0x3b')]));_0x438b8f[_0x7581('0x3a')]=_0x438b8f[_0x7581('0x3a')][_0x7581('0x3c')]?_0x438b8f[_0x7581('0x3a')]:_0xb64106[_0x7581('0x35')];if(!_0x480ed6['query'][_0x7581('0x3d')](_0x7581('0x3e'))){_0x438b8f[_0x7581('0x1d')]=qs[_0x7581('0x1d')](_0x480ed6[_0x7581('0x36')][_0x7581('0x1d')]);_0x438b8f[_0x7581('0x1a')]=qs['offset'](_0x480ed6[_0x7581('0x36')][_0x7581('0x1a')]);}_0x438b8f[_0x7581('0x3f')]=qs[_0x7581('0x40')](_0x480ed6[_0x7581('0x36')]['sort']);_0x438b8f[_0x7581('0x41')]=qs['filters'](_[_0x7581('0x42')](_0x480ed6[_0x7581('0x36')],_0xb64106[_0x7581('0x38')]),_0x4d4d61);if(_0x480ed6[_0x7581('0x36')][_0x7581('0x43')]){_0x438b8f[_0x7581('0x41')]=_['merge'](_0x438b8f[_0x7581('0x41')],{'$or':_[_0x7581('0x31')](_0x4d4d61,function(_0x1ca012){if(_0x1ca012[_0x7581('0x44')]!==_0x7581('0x45')){var _0x9b7963={};_0x9b7963[_0x1ca012[_0x7581('0x28')]]={'$like':'%'+_0x480ed6[_0x7581('0x36')][_0x7581('0x43')]+'%'};return _0x9b7963;}})});}_0x438b8f=_[_0x7581('0x2b')]({},_0x438b8f,_0x480ed6[_0x7581('0x46')]);var _0x3e9b9b={'where':_0x438b8f[_0x7581('0x41')]};return db[_0x7581('0x47')]['count'](_0x3e9b9b)[_0x7581('0x23')](function(_0x9d08b7){_0x35ec65[_0x7581('0x1c')]=_0x9d08b7;if(_0x480ed6['query']['includeAll']){_0x438b8f[_0x7581('0x48')]=[{'all':!![]}];}return db[_0x7581('0x47')][_0x7581('0x49')](_0x438b8f);})[_0x7581('0x23')](function(_0x18dcf5){_0x35ec65['rows']=_0x18dcf5;return _0x35ec65;})['then'](respondWithFilteredResult(_0x329ac0,_0x438b8f))[_0x7581('0x4a')](handleError(_0x329ac0,null));};exports['show']=function(_0x859954,_0x509c00){var _0x192dd0={'raw':![],'where':{'id':_0x859954[_0x7581('0x4b')]['id']}},_0xd3b9e7={};_0xd3b9e7[_0x7581('0x35')]=_[_0x7581('0x37')](db[_0x7581('0x47')][_0x7581('0x32')]);_0xd3b9e7[_0x7581('0x36')]=_[_0x7581('0x37')](_0x859954[_0x7581('0x36')]);_0xd3b9e7[_0x7581('0x38')]=_['intersection'](_0xd3b9e7[_0x7581('0x35')],_0xd3b9e7[_0x7581('0x36')]);_0x192dd0[_0x7581('0x3a')]=_[_0x7581('0x39')](_0xd3b9e7[_0x7581('0x35')],qs[_0x7581('0x3b')](_0x859954[_0x7581('0x36')][_0x7581('0x3b')]));_0x192dd0['attributes']=_0x192dd0['attributes']['length']?_0x192dd0['attributes']:_0xd3b9e7[_0x7581('0x35')];if(_0x859954[_0x7581('0x36')][_0x7581('0x4c')]){_0x192dd0[_0x7581('0x48')]=[{'all':!![]}];}_0x192dd0=_['merge']({},_0x192dd0,_0x859954[_0x7581('0x46')]);return db[_0x7581('0x47')][_0x7581('0x4d')](_0x192dd0)[_0x7581('0x23')](handleEntityNotFound(_0x509c00,null))['then'](respondWithResult(_0x509c00,null))[_0x7581('0x4a')](handleError(_0x509c00,null));};exports[_0x7581('0x4e')]=function(_0x3615da,_0x4002e0){return db['AnalyticCustomReport'][_0x7581('0x4e')](_0x3615da[_0x7581('0x2c')],{})[_0x7581('0x23')](function(_0x3bbec8){var _0x851a87=_0x3615da[_0x7581('0x4f')][_0x7581('0x50')]({'plain':!![]});if(!_0x851a87)throw new Error(_0x7581('0x51'));if(_0x851a87['role']===_0x7581('0x4f')){var _0x11f1a9=_0x3bbec8[_0x7581('0x50')]({'plain':!![]});var _0x45fbaf=_0x7581('0x52');return db[_0x7581('0x53')][_0x7581('0x4d')]({'where':{'name':_0x45fbaf,'userProfileId':_0x851a87[_0x7581('0x54')]},'raw':!![]})[_0x7581('0x23')](function(_0x5c55d2){if(_0x5c55d2&&_0x5c55d2[_0x7581('0x55')]===0x0){return db['UserProfileResource']['create']({'name':_0x11f1a9[_0x7581('0x28')],'resourceId':_0x11f1a9['id'],'type':_0x7581('0x56'),'sectionId':_0x5c55d2['id']},{})[_0x7581('0x23')](function(){return _0x3bbec8;});}else{return _0x3bbec8;}})[_0x7581('0x4a')](function(_0x1bf6df){logger[_0x7581('0x26')](_0x7581('0x57'),_0x1bf6df);throw _0x1bf6df;});}return _0x3bbec8;})[_0x7581('0x23')](respondWithResult(_0x4002e0,0xc9))[_0x7581('0x4a')](handleError(_0x4002e0,null));};exports[_0x7581('0x22')]=function(_0x54d097,_0x2a5792){if(_0x54d097['body']['id']){delete _0x54d097[_0x7581('0x2c')]['id'];}return db[_0x7581('0x47')][_0x7581('0x4d')]({'where':{'id':_0x54d097[_0x7581('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2a5792,null))[_0x7581('0x23')](saveUpdates(_0x54d097[_0x7581('0x2c')],null))['then'](respondWithResult(_0x2a5792,null))[_0x7581('0x4a')](handleError(_0x2a5792,null));};exports['destroy']=function(_0x576256,_0x532d5c){return db[_0x7581('0x47')][_0x7581('0x4d')]({'where':{'id':_0x576256[_0x7581('0x4b')]['id']}})['then'](handleEntityNotFound(_0x532d5c,null))[_0x7581('0x23')](removeEntity(_0x532d5c,null))['catch'](handleError(_0x532d5c,null));};exports[_0x7581('0x58')]=function(_0xd28ef4,_0x10895e){var _0x5f427a=0xa;var _0x3f2180=[_0x7581('0x59'),_0x7581('0x5a'),_0x7581('0x5b'),_0x7581('0x5c')];var _0x5565b7={'SUM':_0x7581('0x5d'),'COUNT':_0x7581('0x5e'),'COUNT DISTINCT':_0x7581('0x5f'),'MAX':_0x7581('0x60'),'MIN':_0x7581('0x61'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x7581('0x62'),'GROUP_CONCAT ASC':_0x7581('0x63'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x5c19fb={'SEC_TO_TIME':_0x7581('0x64'),'DATE':_0x7581('0x65'),'HOUR':_0x7581('0x66'),'ROUND':_0x7581('0x67'),'UNIX_TIMESTAMP':_0x7581('0x68')};var _0x4cef67=function(_0xb626c7){return!_[_0x7581('0x69')]([_0x7581('0x6a'),_0x7581('0x6b'),_0x7581('0x6c'),_0x7581('0x6d')],_0xb626c7);};var _0x17be75=function(_0x4d4207){if(!_0x4d4207||!_0x4d4207[_0x7581('0x6e')][_0x7581('0x3c')]){return'';}for(var _0x135da2='(',_0x54a633=0x0;_0x54a633<_0x4d4207[_0x7581('0x6e')][_0x7581('0x3c')];_0x54a633+=0x1){_0x54a633>0x0&&(_0x135da2+='\x20'+_0x4d4207['operator']+'\x20');_0x135da2+=_0x4d4207['rules'][_0x54a633]['group']?_0x17be75(_0x4d4207[_0x7581('0x6e')][_0x54a633][_0x7581('0x6f')]):_0x4d4207[_0x7581('0x6e')][_0x54a633]['field']+'\x20'+_0x4d4207[_0x7581('0x6e')][_0x54a633]['condition']+(_0x4cef67(_0x4d4207[_0x7581('0x6e')][_0x54a633][_0x7581('0x70')])?'\x20'+_0x4d4207[_0x7581('0x6e')][_0x54a633][_0x7581('0x71')]:'');}return _0x135da2+')';};var _0x3eb1d0={'where':{'id':_0xd28ef4[_0x7581('0x4b')]['id']}},_0xd080d3,_0x1c13cd,_0xfe64a8,_0x49019c,_0x1d7f0f;_0x3eb1d0=_[_0x7581('0x2b')]({},_0x3eb1d0,_0xd28ef4['options']);return db['AnalyticCustomReport']['find'](_0x3eb1d0)[_0x7581('0x23')](function(_0x21ad8f){if(_0x21ad8f){_0xd080d3=_0x21ad8f;return _0x21ad8f[_0x7581('0x72')]();}return null;})[_0x7581('0x23')](function(_0x10cace){if(_0x10cace){if(!_0x10cace[_0x7581('0x3c')]){throw new db['Sequelize'][(_0x7581('0x73'))](_0x7581('0x74'),0x193);}_0x1c13cd=_0x10cace;return db[_0x7581('0x75')]['findAll']({'raw':!![]});}return null;})[_0x7581('0x23')](function(_0x1b889f){if(_0x1b889f){_0xfe64a8=_['keyBy'](_0x1b889f,'id');var _0x3da634;var _0x59c67f=squel[_0x7581('0x76')]();_0x59c67f[_0x7581('0x77')](_0xd080d3[_0x7581('0x78')]);for(var _0x234f33=0x0;_0x234f33<_0x1c13cd[_0x7581('0x3c')];_0x234f33+=0x1){_0x3da634=_0x1c13cd[_0x234f33][_0x7581('0x79')]?_0xfe64a8[_0x1c13cd[_0x234f33][_0x7581('0x79')]][_0x7581('0x7a')]:_0x1c13cd[_0x234f33][_0x7581('0x7b')];_0x3da634=_0x1c13cd[_0x234f33]['function']?_[_0x7581('0x7c')](_0x5565b7[_0x1c13cd[_0x234f33]['function']],'%s',_0x3da634):_0x3da634;_0x3da634=_0x1c13cd[_0x234f33]['format']?_[_0x7581('0x7c')](_0x5c19fb[_0x1c13cd[_0x234f33][_0x7581('0x7d')]],'%s',_0x3da634):_0x3da634;if(_0x1c13cd[_0x234f33]['groupBy']){_0x59c67f[_0x7581('0x6f')](_0x3da634);}_0x1c13cd[_0x234f33][_0x7581('0x7e')]&&_0x59c67f[_0x7581('0x3f')](_0x3da634,_0x1c13cd[_0x234f33][_0x7581('0x7e')]==='DESC'?![]:!![]);_0x59c67f['field'](_0x3da634,_0x1c13cd[_0x234f33][_0x7581('0x7f')]||_0x3da634);}if(_0xd080d3['joins']){_0xd080d3[_0x7581('0x80')]=JSON[_0x7581('0x81')](_0xd080d3['joins']);for(var _0x4994d2=0x0;_0x4994d2<_0xd080d3[_0x7581('0x80')]['length'];_0x4994d2+=0x1){if(_0xd080d3[_0x7581('0x80')][_0x4994d2]['type']&&_[_0x7581('0x69')](_0x3f2180,_0xd080d3[_0x7581('0x80')][_0x4994d2]['type'])&&_0xd080d3[_0x7581('0x80')][_0x4994d2]['parentKey']&&_0xd080d3[_0x7581('0x80')][_0x4994d2]['foreignTable']&&_0xd080d3['joins'][_0x4994d2][_0x7581('0x82')]){_0x59c67f[_0xd080d3[_0x7581('0x80')][_0x4994d2][_0x7581('0x44')]](_0xd080d3[_0x7581('0x80')][_0x4994d2][_0x7581('0x83')],null,util[_0x7581('0x7d')](_0x7581('0x84'),_0xd080d3[_0x7581('0x78')],_0xd080d3[_0x7581('0x80')][_0x4994d2]['parentKey'],_0xd080d3[_0x7581('0x80')][_0x4994d2]['foreignTable'],_0xd080d3[_0x7581('0x80')][_0x4994d2][_0x7581('0x82')]));}}}if(_0xd080d3[_0x7581('0x85')]){_0xd080d3[_0x7581('0x85')]=JSON[_0x7581('0x81')](_0xd080d3['conditions']);_0x59c67f[_0x7581('0x41')](_0x17be75(_0xd080d3[_0x7581('0x85')][_0x7581('0x6f')]));}_0x1d7f0f=_0x59c67f[_0x7581('0x86')]();_0x59c67f[_0x7581('0x1d')](_0x5f427a);_0x59c67f[_0x7581('0x1a')](0x0);logger['debug'](_0x7581('0x87'),_0x59c67f[_0x7581('0x88')]());return dbH[_0x7581('0x89')][_0x7581('0x36')](_0x59c67f['toString'](),{'type':dbH[_0x7581('0x89')][_0x7581('0x8a')][_0x7581('0x8b')]});}})[_0x7581('0x23')](respondWithResult(_0x10895e,null))[_0x7581('0x4a')](handleError(_0x10895e,null));};function runReport(_0x474d94,_0x312546,_0x3fc82c){var _0x1e8709=_0x312546[_0x7581('0x28')];var _0x3ab98d=0xa;var _0x37acd5=[_0x7581('0x59'),_0x7581('0x5a'),'right_join',_0x7581('0x5c')];var _0x31350c={'SUM':_0x7581('0x5d'),'COUNT':_0x7581('0x5e'),'COUNT DISTINCT':_0x7581('0x5f'),'MAX':_0x7581('0x60'),'MIN':_0x7581('0x61'),'AVG':_0x7581('0x8c'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x7581('0x63'),'GROUP_CONCAT DESC':_0x7581('0x8d')};var _0x56ca38={'SEC_TO_TIME':_0x7581('0x64'),'DATE':_0x7581('0x65'),'HOUR':_0x7581('0x66'),'ROUND':_0x7581('0x67'),'UNIX_TIMESTAMP':_0x7581('0x68')};var _0x20672c=function(_0x17fc2b){return!_[_0x7581('0x69')](['IS\x20NULL',_0x7581('0x6b'),_0x7581('0x6c'),_0x7581('0x6d')],_0x17fc2b);};var _0x28e03f=function(_0x1f8e86){if(!_0x1f8e86||!_0x1f8e86['rules'][_0x7581('0x3c')]){return'';}for(var _0x10a510='(',_0x757aa3=0x0;_0x757aa3<_0x1f8e86['rules']['length'];_0x757aa3+=0x1){_0x757aa3>0x0&&(_0x10a510+='\x20'+_0x1f8e86['operator']+'\x20');_0x10a510+=_0x1f8e86[_0x7581('0x6e')][_0x757aa3][_0x7581('0x6f')]?_0x28e03f(_0x1f8e86['rules'][_0x757aa3][_0x7581('0x6f')]):_0x1f8e86[_0x7581('0x6e')][_0x757aa3][_0x7581('0x7b')]+'\x20'+_0x1f8e86[_0x7581('0x6e')][_0x757aa3][_0x7581('0x70')]+(_0x20672c(_0x1f8e86['rules'][_0x757aa3][_0x7581('0x70')])?'\x20'+_0x1f8e86[_0x7581('0x6e')][_0x757aa3][_0x7581('0x71')]:'');}return _0x10a510+')';};var _0x5e544b={'where':{'id':_0x474d94['id']}},_0x1c8496,_0x42c46c,_0x19cc62,_0x4c3054,_0x4b8a14;_0x5e544b=_[_0x7581('0x2b')]({},_0x5e544b,_0x3fc82c);return db['AnalyticCustomReport']['find'](_0x5e544b)[_0x7581('0x23')](function(_0x23ebab){if(_0x23ebab){_0x1c8496=_0x23ebab;return _0x23ebab[_0x7581('0x72')]();}return null;})[_0x7581('0x23')](function(_0x3bfd6e){if(_0x3bfd6e){if(!_0x3bfd6e['length']){throw new db[(_0x7581('0x8e'))][(_0x7581('0x73'))](_0x7581('0x74'),0x193);}_0x42c46c=_0x3bfd6e;return db[_0x7581('0x75')][_0x7581('0x49')]({'raw':!![]});}return null;})[_0x7581('0x23')](function(_0xdc900){if(_0xdc900){_0x19cc62=_[_0x7581('0x8f')](_0xdc900,'id');var _0x5b109f;var _0x1e087e=squel[_0x7581('0x76')]();_0x1e087e[_0x7581('0x77')](_0x1c8496[_0x7581('0x78')]);for(var _0x2befea=0x0;_0x2befea<_0x42c46c[_0x7581('0x3c')];_0x2befea+=0x1){_0x5b109f=_0x42c46c[_0x2befea][_0x7581('0x79')]?_0x19cc62[_0x42c46c[_0x2befea][_0x7581('0x79')]][_0x7581('0x7a')]:_0x42c46c[_0x2befea][_0x7581('0x7b')];_0x5b109f=_0x42c46c[_0x2befea][_0x7581('0x90')]?_['replace'](_0x31350c[_0x42c46c[_0x2befea][_0x7581('0x90')]],'%s',_0x5b109f):_0x5b109f;_0x5b109f=_0x42c46c[_0x2befea][_0x7581('0x7d')]?_[_0x7581('0x7c')](_0x56ca38[_0x42c46c[_0x2befea][_0x7581('0x7d')]],'%s',_0x5b109f):_0x5b109f;if(_0x42c46c[_0x2befea][_0x7581('0x91')]){_0x1e087e[_0x7581('0x6f')](_0x5b109f);}_0x42c46c[_0x2befea][_0x7581('0x7e')]&&_0x1e087e['order'](_0x5b109f,_0x42c46c[_0x2befea][_0x7581('0x7e')]==='DESC'?![]:!![]);_0x1e087e['field'](_0x5b109f,_0x42c46c[_0x2befea][_0x7581('0x7f')]||_0x5b109f);}if(_0x1c8496['joins']){_0x1c8496['joins']=JSON[_0x7581('0x81')](_0x1c8496[_0x7581('0x80')]);for(var _0x522708=0x0;_0x522708<_0x1c8496[_0x7581('0x80')]['length'];_0x522708+=0x1){if(_0x1c8496['joins'][_0x522708]['type']&&_[_0x7581('0x69')](_0x37acd5,_0x1c8496[_0x7581('0x80')][_0x522708]['type'])&&_0x1c8496[_0x7581('0x80')][_0x522708][_0x7581('0x92')]&&_0x1c8496[_0x7581('0x80')][_0x522708][_0x7581('0x83')]&&_0x1c8496[_0x7581('0x80')][_0x522708][_0x7581('0x82')]){_0x1e087e[_0x1c8496[_0x7581('0x80')][_0x522708][_0x7581('0x44')]](_0x1c8496['joins'][_0x522708][_0x7581('0x83')],null,util[_0x7581('0x7d')]('%s.%s\x20=\x20%s.%s',_0x1c8496[_0x7581('0x78')],_0x1c8496[_0x7581('0x80')][_0x522708][_0x7581('0x92')],_0x1c8496[_0x7581('0x80')][_0x522708][_0x7581('0x83')],_0x1c8496[_0x7581('0x80')][_0x522708]['foreignKey']));}}}if(_0x1c8496[_0x7581('0x85')]){_0x1c8496[_0x7581('0x85')]=JSON[_0x7581('0x81')](_0x1c8496['conditions']);_0x1e087e[_0x7581('0x41')](_0x28e03f(_0x1c8496[_0x7581('0x85')][_0x7581('0x6f')]));}_0x4b8a14=_0x1e087e[_0x7581('0x86')]();_0x1e087e[_0x7581('0x1d')](_0x3ab98d);_0x1e087e['offset'](0x0);return;}})['then'](function(){if(_0x312546['output']===_0x7581('0x93')){return null;}var _0xdf36d0=_[_0x7581('0x2b')](_0x312546,{'name':_0x312546['fullPath']||_0x312546[_0x7581('0x28')]||_0x1c8496[_0x7581('0x28')],'basename':_0x1e8709,'savename':util['format'](_0x7581('0x94'),_0x312546[_0x7581('0x28')]||_0x1c8496[_0x7581('0x28')],require('randomstring')[_0x7581('0x95')](0x4),_0x312546[_0x7581('0x96')]||'csv'),'reportId':_0x1c8496['id'],'reportType':_0x7581('0x97')});return db[_0x7581('0x98')][_0x7581('0x4e')](_0xdf36d0,{'raw':!![]});})[_0x7581('0x23')](function(_0x7b1750){if(_0x1c8496[_0x7581('0x78')]==='cdr'){_0x4b8a14[_0x7581('0x41')](_0x1c8496[_0x7581('0x78')]+_0x7581('0x99'),_0x312546['startDate'],_0x312546[_0x7581('0x9a')]);}else{_0x4b8a14['where'](_0x1c8496[_0x7581('0x78')]+_0x7581('0x9b'),_0x312546[_0x7581('0x9c')],_0x312546[_0x7581('0x9a')]);}if(_0x7b1750){logger['info']('Run\x20Query:',_0x4b8a14[_0x7581('0x88')]());require(_0x7581('0x9d'))[_0x7581('0x9e')](path[_0x7581('0x59')](__dirname,'../../components/export/',_0x7b1750['output']),[_0x7b1750['id'],_0x4b8a14['toString'](),path[_0x7581('0x59')](__dirname,'../../files/reports',_0x7b1750[_0x7581('0x9f')]),_0x1e8709]);return _0x7b1750;}else{var _0x1fde62=squel[_0x7581('0x76')]();_0x1fde62['from']('('+_0x4b8a14[_0x7581('0x88')]()+')',_0x7581('0xa0'));_0x1fde62[_0x7581('0x7b')](_0x7581('0xa1'),_0x7581('0x1c'));_0x4b8a14[_0x7581('0x1d')](_0x312546['limit']||_0x3ab98d);_0x4b8a14[_0x7581('0x1a')](_0x312546[_0x7581('0x1a')]||0x0);return dbH['sequelize'][_0x7581('0x36')](_0x1fde62[_0x7581('0x88')](),{'type':dbH['sequelize'][_0x7581('0x8a')][_0x7581('0x8b')]})['then'](function(_0x38ca70){if(!_0x38ca70[_0x7581('0x3c')]){_0x4c3054=0x0;}else{_0x4c3054=_0x38ca70[0x0][_0x7581('0x1c')]||0x0;}return dbH[_0x7581('0x89')][_0x7581('0x36')](_0x4b8a14[_0x7581('0x88')](),{'type':dbH[_0x7581('0x89')][_0x7581('0x8a')]['SELECT']});})[_0x7581('0x23')](function(_0x1946d4){return{'rows':_0x1946d4||[],'count':_0x4c3054};});}});}exports[_0x7581('0xa2')]=function(_0x1055e2,_0x76d87d){return runReport(_0x1055e2[_0x7581('0x4b')],_0x1055e2[_0x7581('0x36')],_0x1055e2['options'])[_0x7581('0x23')](respondWithResult(_0x76d87d,null))[_0x7581('0x4a')](handleError(_0x76d87d,null));};exports[_0x7581('0xa3')]=runReport;exports['query']=function(_0x48fb94,_0x585577){var _0x257cc3=0xa;var _0x37aabc=[_0x7581('0x59'),_0x7581('0x5a'),_0x7581('0x5b'),_0x7581('0x5c')];var _0x3ee80c={'SUM':_0x7581('0x5d'),'COUNT':_0x7581('0x5e'),'COUNT DISTINCT':_0x7581('0x5f'),'MAX':_0x7581('0x60'),'MIN':'MIN(%s)','AVG':_0x7581('0x8c'),'GROUP_CONCAT':_0x7581('0x62'),'GROUP_CONCAT ASC':_0x7581('0x63'),'GROUP_CONCAT DESC':_0x7581('0x8d')};var _0x3cced5={'SEC_TO_TIME':_0x7581('0x64'),'DATE':_0x7581('0x65'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x7581('0x68')};var _0x3a8467=function(_0x7393c3){return!_[_0x7581('0x69')]([_0x7581('0x6a'),_0x7581('0x6b'),_0x7581('0x6c'),'IS\x20NOT\x20EMPTY'],_0x7393c3);};var _0x9b5e63=function(_0x553586){if(!_0x553586||!_0x553586['rules']['length']){return'';}for(var _0x2d8c8a='(',_0x8161d=0x0;_0x8161d<_0x553586[_0x7581('0x6e')]['length'];_0x8161d+=0x1){_0x8161d>0x0&&(_0x2d8c8a+='\x20'+_0x553586[_0x7581('0xa4')]+'\x20');_0x2d8c8a+=_0x553586[_0x7581('0x6e')][_0x8161d][_0x7581('0x6f')]?_0x9b5e63(_0x553586[_0x7581('0x6e')][_0x8161d][_0x7581('0x6f')]):_0x553586[_0x7581('0x6e')][_0x8161d][_0x7581('0x7b')]+'\x20'+_0x553586[_0x7581('0x6e')][_0x8161d]['condition']+(_0x3a8467(_0x553586[_0x7581('0x6e')][_0x8161d][_0x7581('0x70')])?'\x20'+_0x553586['rules'][_0x8161d]['value']:'');}return _0x2d8c8a+')';};var _0x5383d8={'where':{'id':_0x48fb94[_0x7581('0x4b')]['id']}},_0x253f90,_0xd0b6dc,_0x13d001,_0x470a7b,_0x9fd8f9;_0x5383d8=_[_0x7581('0x2b')]({},_0x5383d8,_0x48fb94[_0x7581('0x46')]);return db[_0x7581('0x47')]['find'](_0x5383d8)[_0x7581('0x23')](function(_0x159e87){if(_0x159e87){_0x253f90=_0x159e87;return _0x159e87[_0x7581('0x72')]();}return null;})[_0x7581('0x23')](function(_0x2c12d0){if(_0x2c12d0){if(!_0x2c12d0[_0x7581('0x3c')]){throw new db[(_0x7581('0x8e'))][(_0x7581('0x73'))](_0x7581('0x74'),0x193);}_0xd0b6dc=_0x2c12d0;return db[_0x7581('0x75')][_0x7581('0x49')]({'raw':!![]});}return null;})['then'](function(_0x2ec1c2){if(_0x2ec1c2){_0x13d001=_['keyBy'](_0x2ec1c2,'id');var _0x36199a;var _0x3ec208=squel['select']();_0x3ec208[_0x7581('0x77')](_0x253f90[_0x7581('0x78')]);for(var _0x4a26cf=0x0;_0x4a26cf<_0xd0b6dc[_0x7581('0x3c')];_0x4a26cf+=0x1){_0x36199a=_0xd0b6dc[_0x4a26cf][_0x7581('0x79')]?_0x13d001[_0xd0b6dc[_0x4a26cf][_0x7581('0x79')]][_0x7581('0x7a')]:_0xd0b6dc[_0x4a26cf]['field'];_0x36199a=_0xd0b6dc[_0x4a26cf][_0x7581('0x90')]?_[_0x7581('0x7c')](_0x3ee80c[_0xd0b6dc[_0x4a26cf]['function']],'%s',_0x36199a):_0x36199a;_0x36199a=_0xd0b6dc[_0x4a26cf]['format']?_['replace'](_0x3cced5[_0xd0b6dc[_0x4a26cf]['format']],'%s',_0x36199a):_0x36199a;if(_0xd0b6dc[_0x4a26cf][_0x7581('0x91')]){_0x3ec208[_0x7581('0x6f')](_0x36199a);}_0xd0b6dc[_0x4a26cf][_0x7581('0x7e')]&&_0x3ec208[_0x7581('0x3f')](_0x36199a,_0xd0b6dc[_0x4a26cf][_0x7581('0x7e')]===_0x7581('0xa5')?![]:!![]);_0x3ec208[_0x7581('0x7b')](_0x36199a,_0xd0b6dc[_0x4a26cf]['alias']||_0x36199a);}if(_0x253f90[_0x7581('0x80')]){_0x253f90[_0x7581('0x80')]=JSON[_0x7581('0x81')](_0x253f90['joins']);for(var _0x5f0734=0x0;_0x5f0734<_0x253f90[_0x7581('0x80')][_0x7581('0x3c')];_0x5f0734+=0x1){if(_0x253f90[_0x7581('0x80')][_0x5f0734][_0x7581('0x44')]&&_[_0x7581('0x69')](_0x37aabc,_0x253f90[_0x7581('0x80')][_0x5f0734][_0x7581('0x44')])&&_0x253f90[_0x7581('0x80')][_0x5f0734]['parentKey']&&_0x253f90['joins'][_0x5f0734]['foreignTable']&&_0x253f90[_0x7581('0x80')][_0x5f0734][_0x7581('0x82')]){_0x3ec208[_0x253f90[_0x7581('0x80')][_0x5f0734][_0x7581('0x44')]](_0x253f90[_0x7581('0x80')][_0x5f0734]['foreignTable'],null,util[_0x7581('0x7d')](_0x7581('0x84'),_0x253f90[_0x7581('0x78')],_0x253f90['joins'][_0x5f0734][_0x7581('0x92')],_0x253f90[_0x7581('0x80')][_0x5f0734][_0x7581('0x83')],_0x253f90[_0x7581('0x80')][_0x5f0734]['foreignKey']));}}}if(_0x253f90['conditions']){_0x253f90['conditions']=JSON[_0x7581('0x81')](_0x253f90[_0x7581('0x85')]);_0x3ec208[_0x7581('0x41')](_0x9b5e63(_0x253f90['conditions'][_0x7581('0x6f')]));}_0x9fd8f9=_0x3ec208['clone']();_0x3ec208[_0x7581('0x1d')](_0x257cc3);_0x3ec208[_0x7581('0x1a')](0x0);logger[_0x7581('0xa6')](_0x7581('0x87'),_0x3ec208[_0x7581('0x88')]());return dbH[_0x7581('0x89')][_0x7581('0x36')](_0x3ec208[_0x7581('0x88')](),{'type':dbH['sequelize'][_0x7581('0x8a')][_0x7581('0x8b')]});}})['then'](function(){return{'sql':_0x9fd8f9[_0x7581('0x88')]()};})[_0x7581('0x23')](respondWithResult(_0x585577,null))[_0x7581('0x4a')](handleError(_0x585577,null));};