ae582cc5fd6b8651c9f04b06fd069b8d7f8e71d7
[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 _0xb7e7=['name','index','map','AnalyticCustomReport','rawAttributes','type','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','filtears','intersection','options','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','preview','join','left_join','right_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)','SEC_TO_TIME(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','order','DESC','alias','joins','parse','foreignTable','parentKey','foreignKey','conditions','debug','Limited\x20Query:','sequelize','QueryTypes','SELECT','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','DATE(%s)','ROUND(%s)','Sequelize','AnalyticMetric','%s.%s\x20=\x20%s.%s','toString','No\x20available\x20data','output','web','fullPath','randomstring','generate','csv','custom','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','IS\x20NOT\x20NULL','clone','html-pdf','rimraf','fast-json-patch','moment','mustache','util','path','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','CustomReports','UserProfileResource','end'];(function(_0x2b0b70,_0x20f627){var _0x1712d9=function(_0x5e24cd){while(--_0x5e24cd){_0x2b0b70['push'](_0x2b0b70['shift']());}};_0x1712d9(++_0x20f627);}(_0xb7e7,0x121));var _0x7b7e=function(_0x43d11d,_0xccff91){_0x43d11d=_0x43d11d-0x0;var _0x38cd08=_0xb7e7[_0x43d11d];return _0x38cd08;};'use strict';var pdf=require(_0x7b7e('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x7b7e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7b7e('0x2'));var rp=require('request-promise');var moment=require(_0x7b7e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x7b7e('0x4'));var util=require(_0x7b7e('0x5'));var path=require(_0x7b7e('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7b7e('0x7'));var fs=require('fs');var _=require(_0x7b7e('0x8'));var squel=require(_0x7b7e('0x9'));var crypto=require('crypto');var jsforce=require(_0x7b7e('0xa'));var deskjs=require(_0x7b7e('0xb'));var toCsv=require(_0x7b7e('0xc'));var querystring=require(_0x7b7e('0xd'));var Papa=require(_0x7b7e('0xe'));var Redis=require(_0x7b7e('0xf'));var authService=require(_0x7b7e('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x7b7e('0x11'));var hardwareService=require(_0x7b7e('0x12'));var logger=require(_0x7b7e('0x13'))(_0x7b7e('0x14'));var utils=require(_0x7b7e('0x15'));var config=require(_0x7b7e('0x16'));var licenseUtil=require(_0x7b7e('0x17'));var db=require(_0x7b7e('0x18'))['db'];var dbH=require(_0x7b7e('0x18'))['dbH'];function respondWithStatusCode(_0x267446,_0x430eab){_0x430eab=_0x430eab||0xcc;return function(_0x50d7d2){if(_0x50d7d2){return _0x267446[_0x7b7e('0x19')](_0x430eab);}return _0x267446['status'](_0x430eab)['end']();};}function respondWithResult(_0x2889ed,_0xd304f5){_0xd304f5=_0xd304f5||0xc8;return function(_0xf067da){if(_0xf067da){return _0x2889ed[_0x7b7e('0x1a')](_0xd304f5)[_0x7b7e('0x1b')](_0xf067da);}};}function respondWithFilteredResult(_0x5703fd,_0x51baf6){return function(_0xc7f087){if(_0xc7f087){var _0x36444d=_0xc7f087[_0x7b7e('0x1c')],_0x27f999=_0x51baf6[_0x7b7e('0x1d')],_0x26aaec=_0x51baf6[_0x7b7e('0x1d')]+_0x51baf6[_0x7b7e('0x1e')],_0x2cc400;if(_0x26aaec>=_0x36444d){_0x26aaec=_0x36444d;_0x2cc400=0xc8;}else{_0x2cc400=0xce;}_0x5703fd[_0x7b7e('0x1a')](_0x2cc400);return _0x5703fd[_0x7b7e('0x1f')](_0x7b7e('0x20'),_0x27f999+'-'+_0x26aaec+'/'+_0x36444d)[_0x7b7e('0x1b')](_0xc7f087);}return null;};}function patchUpdates(_0x3bec7d){return function(_0x9776c3){try{jsonpatch[_0x7b7e('0x21')](_0x9776c3,_0x3bec7d,!![]);}catch(_0x3a7b8b){return BPromise['reject'](_0x3a7b8b);}return _0x9776c3[_0x7b7e('0x22')]();};}function saveUpdates(_0x43db4f,_0x24718c){return function(_0x4c0647){if(_0x4c0647){return _0x4c0647[_0x7b7e('0x23')](_0x43db4f)[_0x7b7e('0x24')](function(_0x14243b){return _0x14243b;});}return null;};}function removeEntity(_0x200156,_0x2b7211){return function(_0x303d8c){if(_0x303d8c){return _0x303d8c[_0x7b7e('0x25')]()[_0x7b7e('0x24')](function(){var _0x53bbb3=_0x303d8c['get']({'plain':!![]});var _0x4a836a=_0x7b7e('0x26');return db[_0x7b7e('0x27')][_0x7b7e('0x25')]({'where':{'type':_0x4a836a,'resourceId':_0x53bbb3['id']}})['then'](function(){return _0x303d8c;});})['then'](function(){_0x200156['status'](0xcc)[_0x7b7e('0x28')]();});}};}function handleEntityNotFound(_0x3c8192,_0x16a3c7){return function(_0x7aa71){if(!_0x7aa71){_0x3c8192[_0x7b7e('0x19')](0x194);}return _0x7aa71;};}function handleError(_0x48fad1,_0x6a1e71){_0x6a1e71=_0x6a1e71||0x1f4;return function(_0x21a15){logger['error'](_0x21a15['stack']);if(_0x21a15['name']){delete _0x21a15[_0x7b7e('0x29')];}_0x48fad1[_0x7b7e('0x1a')](_0x6a1e71)['send'](_0x21a15);};}exports[_0x7b7e('0x2a')]=function(_0x51d4b5,_0x1b4341){var _0xb9b6bf={},_0x27b525={},_0x5515ca={'count':0x0,'rows':[]};var _0x3960b8=_[_0x7b7e('0x2b')](db[_0x7b7e('0x2c')][_0x7b7e('0x2d')],function(_0x33f9a1){return{'name':_0x33f9a1['fieldName'],'type':_0x33f9a1[_0x7b7e('0x2e')]['key']};});_0x27b525[_0x7b7e('0x2f')]=_[_0x7b7e('0x2b')](_0x3960b8,_0x7b7e('0x29'));_0x27b525[_0x7b7e('0x30')]=_[_0x7b7e('0x31')](_0x51d4b5[_0x7b7e('0x30')]);_0x27b525[_0x7b7e('0x32')]=_['intersection'](_0x27b525['model'],_0x27b525[_0x7b7e('0x30')]);_0xb9b6bf[_0x7b7e('0x33')]=_['intersection'](_0x27b525[_0x7b7e('0x2f')],qs[_0x7b7e('0x34')](_0x51d4b5[_0x7b7e('0x30')]['fields']));_0xb9b6bf[_0x7b7e('0x33')]=_0xb9b6bf[_0x7b7e('0x33')][_0x7b7e('0x35')]?_0xb9b6bf[_0x7b7e('0x33')]:_0x27b525[_0x7b7e('0x2f')];if(!_0x51d4b5[_0x7b7e('0x30')][_0x7b7e('0x36')](_0x7b7e('0x37'))){_0xb9b6bf[_0x7b7e('0x1e')]=qs[_0x7b7e('0x1e')](_0x51d4b5[_0x7b7e('0x30')][_0x7b7e('0x1e')]);_0xb9b6bf[_0x7b7e('0x1d')]=qs[_0x7b7e('0x1d')](_0x51d4b5[_0x7b7e('0x30')][_0x7b7e('0x1d')]);}_0xb9b6bf['order']=qs[_0x7b7e('0x38')](_0x51d4b5[_0x7b7e('0x30')][_0x7b7e('0x38')]);_0xb9b6bf[_0x7b7e('0x39')]=qs[_0x7b7e('0x32')](_[_0x7b7e('0x3a')](_0x51d4b5[_0x7b7e('0x30')],_0x27b525[_0x7b7e('0x32')]),_0x3960b8);if(_0x51d4b5[_0x7b7e('0x30')][_0x7b7e('0x3b')]){_0xb9b6bf['where']=_[_0x7b7e('0x3c')](_0xb9b6bf[_0x7b7e('0x39')],{'$or':_[_0x7b7e('0x2b')](_0x3960b8,function(_0x1d43da){if(_0x1d43da['type']!==_0x7b7e('0x3d')){var _0x35b31a={};_0x35b31a[_0x1d43da[_0x7b7e('0x29')]]={'$like':'%'+_0x51d4b5['query']['filter']+'%'};return _0x35b31a;}})});}_0xb9b6bf=_[_0x7b7e('0x3c')]({},_0xb9b6bf,_0x51d4b5['options']);var _0x35382c={'where':_0xb9b6bf[_0x7b7e('0x39')]};return db['AnalyticCustomReport'][_0x7b7e('0x1c')](_0x35382c)[_0x7b7e('0x24')](function(_0x2a6f4d){_0x5515ca[_0x7b7e('0x1c')]=_0x2a6f4d;if(_0x51d4b5[_0x7b7e('0x30')][_0x7b7e('0x3e')]){_0xb9b6bf[_0x7b7e('0x3f')]=[{'all':!![]}];}return db[_0x7b7e('0x2c')][_0x7b7e('0x40')](_0xb9b6bf);})['then'](function(_0x5d61c1){_0x5515ca[_0x7b7e('0x41')]=_0x5d61c1;return _0x5515ca;})['then'](respondWithFilteredResult(_0x1b4341,_0xb9b6bf))[_0x7b7e('0x42')](handleError(_0x1b4341,null));};exports['show']=function(_0x48dd74,_0x356db0){var _0x48252a={'raw':![],'where':{'id':_0x48dd74['params']['id']}},_0x2f9982={};_0x2f9982[_0x7b7e('0x2f')]=_[_0x7b7e('0x31')](db[_0x7b7e('0x2c')][_0x7b7e('0x2d')]);_0x2f9982['query']=_[_0x7b7e('0x31')](_0x48dd74[_0x7b7e('0x30')]);_0x2f9982[_0x7b7e('0x43')]=_[_0x7b7e('0x44')](_0x2f9982[_0x7b7e('0x2f')],_0x2f9982[_0x7b7e('0x30')]);_0x48252a['attributes']=_['intersection'](_0x2f9982['model'],qs[_0x7b7e('0x34')](_0x48dd74[_0x7b7e('0x30')][_0x7b7e('0x34')]));_0x48252a[_0x7b7e('0x33')]=_0x48252a[_0x7b7e('0x33')][_0x7b7e('0x35')]?_0x48252a['attributes']:_0x2f9982[_0x7b7e('0x2f')];if(_0x48dd74[_0x7b7e('0x30')]['includeAll']){_0x48252a['include']=[{'all':!![]}];}_0x48252a=_[_0x7b7e('0x3c')]({},_0x48252a,_0x48dd74[_0x7b7e('0x45')]);return db[_0x7b7e('0x2c')][_0x7b7e('0x46')](_0x48252a)[_0x7b7e('0x24')](handleEntityNotFound(_0x356db0,null))[_0x7b7e('0x24')](respondWithResult(_0x356db0,null))['catch'](handleError(_0x356db0,null));};exports[_0x7b7e('0x47')]=function(_0x4cc7db,_0x402793){return db[_0x7b7e('0x2c')][_0x7b7e('0x47')](_0x4cc7db[_0x7b7e('0x48')],{})['then'](function(_0x3b649e){var _0x1010b3=_0x4cc7db[_0x7b7e('0x49')][_0x7b7e('0x4a')]({'plain':!![]});if(!_0x1010b3)throw new Error(_0x7b7e('0x4b'));if(_0x1010b3['role']===_0x7b7e('0x49')){var _0x270c4a=_0x3b649e[_0x7b7e('0x4a')]({'plain':!![]});var _0xcb5186=_0x7b7e('0x4c');return db['UserProfileSection'][_0x7b7e('0x46')]({'where':{'name':_0xcb5186,'userProfileId':_0x1010b3[_0x7b7e('0x4d')]},'raw':!![]})[_0x7b7e('0x24')](function(_0x3280fa){if(_0x3280fa&&_0x3280fa[_0x7b7e('0x4e')]===0x0){return db[_0x7b7e('0x27')][_0x7b7e('0x47')]({'name':_0x270c4a['name'],'resourceId':_0x270c4a['id'],'type':_0x7b7e('0x26'),'sectionId':_0x3280fa['id']},{})['then'](function(){return _0x3b649e;});}else{return _0x3b649e;}})[_0x7b7e('0x42')](function(_0x766a54){logger['error'](_0x7b7e('0x4f'),_0x766a54);throw _0x766a54;});}return _0x3b649e;})[_0x7b7e('0x24')](respondWithResult(_0x402793,0xc9))[_0x7b7e('0x42')](handleError(_0x402793,null));};exports[_0x7b7e('0x23')]=function(_0x412d1b,_0x36ffd4){if(_0x412d1b[_0x7b7e('0x48')]['id']){delete _0x412d1b['body']['id'];}return db[_0x7b7e('0x2c')][_0x7b7e('0x46')]({'where':{'id':_0x412d1b[_0x7b7e('0x50')]['id']}})[_0x7b7e('0x24')](handleEntityNotFound(_0x36ffd4,null))['then'](saveUpdates(_0x412d1b['body'],null))['then'](respondWithResult(_0x36ffd4,null))[_0x7b7e('0x42')](handleError(_0x36ffd4,null));};exports[_0x7b7e('0x25')]=function(_0x26d52f,_0x4aa92e){return db['AnalyticCustomReport'][_0x7b7e('0x46')]({'where':{'id':_0x26d52f[_0x7b7e('0x50')]['id']}})['then'](handleEntityNotFound(_0x4aa92e,null))[_0x7b7e('0x24')](removeEntity(_0x4aa92e,null))[_0x7b7e('0x42')](handleError(_0x4aa92e,null));};exports[_0x7b7e('0x51')]=function(_0x56ea8a,_0x2b0657){var _0x1d9af5=0xa;var _0x4d9a71=[_0x7b7e('0x52'),_0x7b7e('0x53'),_0x7b7e('0x54'),_0x7b7e('0x55')];var _0x41e78f={'SUM':_0x7b7e('0x56'),'COUNT':_0x7b7e('0x57'),'COUNT DISTINCT':_0x7b7e('0x58'),'MAX':_0x7b7e('0x59'),'MIN':'MIN(%s)','AVG':_0x7b7e('0x5a'),'GROUP_CONCAT':_0x7b7e('0x5b'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x7b7e('0x5c')};var _0xa22edc={'SEC_TO_TIME':_0x7b7e('0x5d'),'DATE':'DATE(%s)','HOUR':_0x7b7e('0x5e'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x7b7e('0x5f')};var _0x206ee7=function(_0x51aa97){return!_[_0x7b7e('0x60')]([_0x7b7e('0x61'),'IS\x20NOT\x20NULL',_0x7b7e('0x62'),_0x7b7e('0x63')],_0x51aa97);};var _0x1d43af=function(_0x3b1adb){if(!_0x3b1adb||!_0x3b1adb['rules'][_0x7b7e('0x35')]){return'';}for(var _0x73904d='(',_0x2e11b1=0x0;_0x2e11b1<_0x3b1adb[_0x7b7e('0x64')][_0x7b7e('0x35')];_0x2e11b1+=0x1){_0x2e11b1>0x0&&(_0x73904d+='\x20'+_0x3b1adb[_0x7b7e('0x65')]+'\x20');_0x73904d+=_0x3b1adb[_0x7b7e('0x64')][_0x2e11b1][_0x7b7e('0x66')]?_0x1d43af(_0x3b1adb[_0x7b7e('0x64')][_0x2e11b1][_0x7b7e('0x66')]):_0x3b1adb['rules'][_0x2e11b1][_0x7b7e('0x67')]+'\x20'+_0x3b1adb['rules'][_0x2e11b1]['condition']+(_0x206ee7(_0x3b1adb[_0x7b7e('0x64')][_0x2e11b1][_0x7b7e('0x68')])?'\x20'+_0x3b1adb[_0x7b7e('0x64')][_0x2e11b1][_0x7b7e('0x69')]:'');}return _0x73904d+')';};var _0x5cd4ae={'where':{'id':_0x56ea8a[_0x7b7e('0x50')]['id']}},_0x275998,_0x45e714,_0x3f2825,_0x3d4b2d,_0x169540;_0x5cd4ae=_['merge']({},_0x5cd4ae,_0x56ea8a[_0x7b7e('0x45')]);return db['AnalyticCustomReport']['find'](_0x5cd4ae)[_0x7b7e('0x24')](function(_0x4ef741){if(_0x4ef741){_0x275998=_0x4ef741;return _0x4ef741[_0x7b7e('0x6a')]();}return null;})['then'](function(_0x3c3d29){if(_0x3c3d29){if(!_0x3c3d29[_0x7b7e('0x35')]){throw new db['Sequelize'][(_0x7b7e('0x6b'))](_0x7b7e('0x6c'),0x193);}_0x45e714=_0x3c3d29;return db['AnalyticMetric'][_0x7b7e('0x40')]({'raw':!![]});}return null;})[_0x7b7e('0x24')](function(_0x50184c){if(_0x50184c){_0x3f2825=_[_0x7b7e('0x6d')](_0x50184c,'id');var _0x36ea09;var _0x2147d9=squel[_0x7b7e('0x6e')]();_0x2147d9[_0x7b7e('0x6f')](_0x275998[_0x7b7e('0x70')]);for(var _0x17e5ba=0x0;_0x17e5ba<_0x45e714['length'];_0x17e5ba+=0x1){_0x36ea09=_0x45e714[_0x17e5ba]['MetricId']?_0x3f2825[_0x45e714[_0x17e5ba][_0x7b7e('0x71')]][_0x7b7e('0x72')]:_0x45e714[_0x17e5ba][_0x7b7e('0x67')];_0x36ea09=_0x45e714[_0x17e5ba][_0x7b7e('0x73')]?_[_0x7b7e('0x74')](_0x41e78f[_0x45e714[_0x17e5ba][_0x7b7e('0x73')]],'%s',_0x36ea09):_0x36ea09;_0x36ea09=_0x45e714[_0x17e5ba][_0x7b7e('0x75')]?_['replace'](_0xa22edc[_0x45e714[_0x17e5ba][_0x7b7e('0x75')]],'%s',_0x36ea09):_0x36ea09;if(_0x45e714[_0x17e5ba][_0x7b7e('0x76')]){_0x2147d9['group'](_0x36ea09);}_0x45e714[_0x17e5ba][_0x7b7e('0x77')]&&_0x2147d9[_0x7b7e('0x78')](_0x36ea09,_0x45e714[_0x17e5ba][_0x7b7e('0x77')]===_0x7b7e('0x79')?![]:!![]);_0x2147d9[_0x7b7e('0x67')](_0x36ea09,_0x45e714[_0x17e5ba][_0x7b7e('0x7a')]||_0x36ea09);}if(_0x275998[_0x7b7e('0x7b')]){_0x275998[_0x7b7e('0x7b')]=JSON[_0x7b7e('0x7c')](_0x275998[_0x7b7e('0x7b')]);for(var _0x81617c=0x0;_0x81617c<_0x275998['joins'][_0x7b7e('0x35')];_0x81617c+=0x1){if(_0x275998[_0x7b7e('0x7b')][_0x81617c][_0x7b7e('0x2e')]&&_[_0x7b7e('0x60')](_0x4d9a71,_0x275998[_0x7b7e('0x7b')][_0x81617c][_0x7b7e('0x2e')])&&_0x275998[_0x7b7e('0x7b')][_0x81617c]['parentKey']&&_0x275998[_0x7b7e('0x7b')][_0x81617c][_0x7b7e('0x7d')]&&_0x275998[_0x7b7e('0x7b')][_0x81617c]['foreignKey']){_0x2147d9[_0x275998[_0x7b7e('0x7b')][_0x81617c][_0x7b7e('0x2e')]](_0x275998[_0x7b7e('0x7b')][_0x81617c][_0x7b7e('0x7d')],null,util[_0x7b7e('0x75')]('%s.%s\x20=\x20%s.%s',_0x275998['table'],_0x275998['joins'][_0x81617c][_0x7b7e('0x7e')],_0x275998[_0x7b7e('0x7b')][_0x81617c][_0x7b7e('0x7d')],_0x275998['joins'][_0x81617c][_0x7b7e('0x7f')]));}}}if(_0x275998[_0x7b7e('0x80')]){_0x275998[_0x7b7e('0x80')]=JSON['parse'](_0x275998[_0x7b7e('0x80')]);_0x2147d9[_0x7b7e('0x39')](_0x1d43af(_0x275998[_0x7b7e('0x80')][_0x7b7e('0x66')]));}_0x169540=_0x2147d9['clone']();_0x2147d9[_0x7b7e('0x1e')](_0x1d9af5);_0x2147d9[_0x7b7e('0x1d')](0x0);logger[_0x7b7e('0x81')](_0x7b7e('0x82'),_0x2147d9['toString']());return db['sequelize'][_0x7b7e('0x30')](_0x2147d9['toString'](),{'type':db[_0x7b7e('0x83')][_0x7b7e('0x84')][_0x7b7e('0x85')]});}})[_0x7b7e('0x24')](respondWithResult(_0x2b0657,null))['catch'](handleError(_0x2b0657,null));};function runReport(_0x2f37aa,_0x236b59,_0x2e9cbc){var _0x2c9acb=_0x236b59[_0x7b7e('0x29')];var _0x443cfc=0xa;var _0x2d40f4=[_0x7b7e('0x52'),_0x7b7e('0x53'),_0x7b7e('0x54'),_0x7b7e('0x55')];var _0x31a353={'SUM':_0x7b7e('0x56'),'COUNT':_0x7b7e('0x57'),'COUNT DISTINCT':_0x7b7e('0x58'),'MAX':_0x7b7e('0x59'),'MIN':'MIN(%s)','AVG':_0x7b7e('0x5a'),'GROUP_CONCAT':_0x7b7e('0x5b'),'GROUP_CONCAT ASC':_0x7b7e('0x86'),'GROUP_CONCAT DESC':_0x7b7e('0x5c')};var _0x10c35e={'SEC_TO_TIME':_0x7b7e('0x5d'),'DATE':_0x7b7e('0x87'),'HOUR':'HOUR(%s)','ROUND':_0x7b7e('0x88'),'UNIX_TIMESTAMP':_0x7b7e('0x5f')};var _0x3d86d6=function(_0x3f8682){return!_[_0x7b7e('0x60')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x7b7e('0x62'),_0x7b7e('0x63')],_0x3f8682);};var _0x145564=function(_0x87d33a){if(!_0x87d33a||!_0x87d33a[_0x7b7e('0x64')][_0x7b7e('0x35')]){return'';}for(var _0x2c65b8='(',_0x27d180=0x0;_0x27d180<_0x87d33a[_0x7b7e('0x64')][_0x7b7e('0x35')];_0x27d180+=0x1){_0x27d180>0x0&&(_0x2c65b8+='\x20'+_0x87d33a['operator']+'\x20');_0x2c65b8+=_0x87d33a[_0x7b7e('0x64')][_0x27d180][_0x7b7e('0x66')]?_0x145564(_0x87d33a[_0x7b7e('0x64')][_0x27d180][_0x7b7e('0x66')]):_0x87d33a[_0x7b7e('0x64')][_0x27d180][_0x7b7e('0x67')]+'\x20'+_0x87d33a[_0x7b7e('0x64')][_0x27d180]['condition']+(_0x3d86d6(_0x87d33a[_0x7b7e('0x64')][_0x27d180]['condition'])?'\x20'+_0x87d33a[_0x7b7e('0x64')][_0x27d180][_0x7b7e('0x69')]:'');}return _0x2c65b8+')';};var _0x4981a9={'where':{'id':_0x2f37aa['id']}},_0x61424f,_0x38fd40,_0x28e81c,_0x3242e6,_0x3faf4c;_0x4981a9=_['merge']({},_0x4981a9,_0x2e9cbc);return db[_0x7b7e('0x2c')]['find'](_0x4981a9)['then'](function(_0x15cd98){if(_0x15cd98){_0x61424f=_0x15cd98;return _0x15cd98[_0x7b7e('0x6a')]();}return null;})[_0x7b7e('0x24')](function(_0x1d080b){if(_0x1d080b){if(!_0x1d080b['length']){throw new db[(_0x7b7e('0x89'))]['ValidationErrorItem'](_0x7b7e('0x6c'),0x193);}_0x38fd40=_0x1d080b;return db[_0x7b7e('0x8a')][_0x7b7e('0x40')]({'raw':!![]});}return null;})[_0x7b7e('0x24')](function(_0x11d615){if(_0x11d615){_0x28e81c=_[_0x7b7e('0x6d')](_0x11d615,'id');var _0xc48937;var _0x57c8d1=squel[_0x7b7e('0x6e')]();_0x57c8d1[_0x7b7e('0x6f')](_0x61424f['table']);for(var _0x87a287=0x0;_0x87a287<_0x38fd40[_0x7b7e('0x35')];_0x87a287+=0x1){_0xc48937=_0x38fd40[_0x87a287][_0x7b7e('0x71')]?_0x28e81c[_0x38fd40[_0x87a287][_0x7b7e('0x71')]][_0x7b7e('0x72')]:_0x38fd40[_0x87a287][_0x7b7e('0x67')];_0xc48937=_0x38fd40[_0x87a287][_0x7b7e('0x73')]?_[_0x7b7e('0x74')](_0x31a353[_0x38fd40[_0x87a287][_0x7b7e('0x73')]],'%s',_0xc48937):_0xc48937;_0xc48937=_0x38fd40[_0x87a287][_0x7b7e('0x75')]?_[_0x7b7e('0x74')](_0x10c35e[_0x38fd40[_0x87a287][_0x7b7e('0x75')]],'%s',_0xc48937):_0xc48937;if(_0x38fd40[_0x87a287][_0x7b7e('0x76')]){_0x57c8d1[_0x7b7e('0x66')](_0xc48937);}_0x38fd40[_0x87a287][_0x7b7e('0x77')]&&_0x57c8d1[_0x7b7e('0x78')](_0xc48937,_0x38fd40[_0x87a287][_0x7b7e('0x77')]===_0x7b7e('0x79')?![]:!![]);_0x57c8d1[_0x7b7e('0x67')](_0xc48937,_0x38fd40[_0x87a287][_0x7b7e('0x7a')]||_0xc48937);}if(_0x61424f[_0x7b7e('0x7b')]){_0x61424f[_0x7b7e('0x7b')]=JSON['parse'](_0x61424f[_0x7b7e('0x7b')]);for(var _0x97d43b=0x0;_0x97d43b<_0x61424f['joins'][_0x7b7e('0x35')];_0x97d43b+=0x1){if(_0x61424f['joins'][_0x97d43b]['type']&&_[_0x7b7e('0x60')](_0x2d40f4,_0x61424f['joins'][_0x97d43b]['type'])&&_0x61424f[_0x7b7e('0x7b')][_0x97d43b][_0x7b7e('0x7e')]&&_0x61424f[_0x7b7e('0x7b')][_0x97d43b]['foreignTable']&&_0x61424f[_0x7b7e('0x7b')][_0x97d43b][_0x7b7e('0x7f')]){_0x57c8d1[_0x61424f[_0x7b7e('0x7b')][_0x97d43b][_0x7b7e('0x2e')]](_0x61424f[_0x7b7e('0x7b')][_0x97d43b][_0x7b7e('0x7d')],null,util[_0x7b7e('0x75')](_0x7b7e('0x8b'),_0x61424f[_0x7b7e('0x70')],_0x61424f['joins'][_0x97d43b][_0x7b7e('0x7e')],_0x61424f[_0x7b7e('0x7b')][_0x97d43b][_0x7b7e('0x7d')],_0x61424f['joins'][_0x97d43b][_0x7b7e('0x7f')]));}}}if(_0x61424f[_0x7b7e('0x80')]){_0x61424f['conditions']=JSON[_0x7b7e('0x7c')](_0x61424f['conditions']);_0x57c8d1['where'](_0x145564(_0x61424f[_0x7b7e('0x80')][_0x7b7e('0x66')]));}_0x3faf4c=_0x57c8d1['clone']();_0x57c8d1[_0x7b7e('0x1e')](_0x443cfc);_0x57c8d1['offset'](0x0);logger['debug'](_0x7b7e('0x82'),_0x57c8d1[_0x7b7e('0x8c')]());return db[_0x7b7e('0x83')][_0x7b7e('0x30')](_0x57c8d1[_0x7b7e('0x8c')](),{'type':db[_0x7b7e('0x83')][_0x7b7e('0x84')][_0x7b7e('0x85')]});}})['then'](function(_0x3cd173){if(!_0x3cd173[_0x7b7e('0x35')]){throw new db[(_0x7b7e('0x89'))][(_0x7b7e('0x6b'))](_0x7b7e('0x8d'),0xcc);}if(_0x236b59[_0x7b7e('0x8e')]===_0x7b7e('0x8f')){return null;}var _0x25541b=_[_0x7b7e('0x3c')](_0x236b59,{'name':_0x236b59[_0x7b7e('0x90')]||_0x236b59[_0x7b7e('0x29')]||_0x61424f[_0x7b7e('0x29')],'basename':_0x2c9acb,'savename':util['format']('%s-%s.%s',_0x236b59[_0x7b7e('0x29')]||_0x61424f[_0x7b7e('0x29')],require(_0x7b7e('0x91'))[_0x7b7e('0x92')](0x4),_0x236b59[_0x7b7e('0x8e')]||_0x7b7e('0x93')),'reportId':_0x61424f['id'],'reportType':_0x7b7e('0x94')});return db[_0x7b7e('0x95')][_0x7b7e('0x47')](_0x25541b,{'raw':!![]});})[_0x7b7e('0x24')](function(_0x1dfd0d){if(_0x61424f[_0x7b7e('0x70')]==='cdr'){_0x3faf4c[_0x7b7e('0x39')](_0x61424f['table']+_0x7b7e('0x96'),_0x236b59[_0x7b7e('0x97')],_0x236b59[_0x7b7e('0x98')]);}else{_0x3faf4c['where'](_0x61424f['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x236b59[_0x7b7e('0x97')],_0x236b59[_0x7b7e('0x98')]);}if(_0x1dfd0d){logger[_0x7b7e('0x99')](_0x7b7e('0x9a'),_0x3faf4c[_0x7b7e('0x8c')]());require(_0x7b7e('0x9b'))[_0x7b7e('0x9c')](path[_0x7b7e('0x52')](__dirname,_0x7b7e('0x9d'),_0x1dfd0d[_0x7b7e('0x8e')]),[_0x1dfd0d['id'],_0x3faf4c[_0x7b7e('0x8c')](),path['join'](__dirname,_0x7b7e('0x9e'),_0x1dfd0d[_0x7b7e('0x9f')]),_0x2c9acb]);return _0x1dfd0d;}else{var _0xec24c7=squel[_0x7b7e('0x6e')]();_0xec24c7['from']('('+_0x3faf4c[_0x7b7e('0x8c')]()+')',_0x7b7e('0xa0'));_0xec24c7[_0x7b7e('0x67')](_0x7b7e('0xa1'),_0x7b7e('0x1c'));_0x3faf4c[_0x7b7e('0x1e')](_0x236b59[_0x7b7e('0x1e')]||_0x443cfc);_0x3faf4c[_0x7b7e('0x1d')](_0x236b59[_0x7b7e('0x1d')]||0x0);return dbH[_0x7b7e('0x83')][_0x7b7e('0x30')](_0xec24c7[_0x7b7e('0x8c')](),{'type':dbH[_0x7b7e('0x83')][_0x7b7e('0x84')][_0x7b7e('0x85')]})[_0x7b7e('0x24')](function(_0x33243c){if(!_0x33243c[_0x7b7e('0x35')]){_0x3242e6=0x0;}else{_0x3242e6=_0x33243c[0x0][_0x7b7e('0x1c')]||0x0;}return dbH[_0x7b7e('0x83')][_0x7b7e('0x30')](_0x3faf4c[_0x7b7e('0x8c')](),{'type':dbH[_0x7b7e('0x83')][_0x7b7e('0x84')][_0x7b7e('0x85')]});})[_0x7b7e('0x24')](function(_0x387eab){return{'rows':_0x387eab||[],'count':_0x3242e6};});}});}exports[_0x7b7e('0xa2')]=function(_0x4e02eb,_0xe59e60){return runReport(_0x4e02eb['params'],_0x4e02eb['query'],_0x4e02eb['options'])[_0x7b7e('0x24')](respondWithResult(_0xe59e60,null))[_0x7b7e('0x42')](handleError(_0xe59e60,null));};exports['runReport']=runReport;exports['query']=function(_0x2c59e1,_0x21d29a){var _0x3b1083=0xa;var _0x5b0abe=[_0x7b7e('0x52'),'left_join','right_join',_0x7b7e('0x55')];var _0x596ec1={'SUM':'SUM(%s)','COUNT':_0x7b7e('0x57'),'COUNT DISTINCT':_0x7b7e('0x58'),'MAX':_0x7b7e('0x59'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x7b7e('0x5b'),'GROUP_CONCAT ASC':_0x7b7e('0x86'),'GROUP_CONCAT DESC':_0x7b7e('0x5c')};var _0x210ed3={'SEC_TO_TIME':_0x7b7e('0x5d'),'DATE':_0x7b7e('0x87'),'HOUR':_0x7b7e('0x5e'),'ROUND':_0x7b7e('0x88'),'UNIX_TIMESTAMP':_0x7b7e('0x5f')};var _0x5263e2=function(_0x200ee8){return!_['includes']([_0x7b7e('0x61'),_0x7b7e('0xa3'),_0x7b7e('0x62'),_0x7b7e('0x63')],_0x200ee8);};var _0xc8849f=function(_0x4dfe50){if(!_0x4dfe50||!_0x4dfe50[_0x7b7e('0x64')][_0x7b7e('0x35')]){return'';}for(var _0x2fc631='(',_0x31e4c6=0x0;_0x31e4c6<_0x4dfe50['rules'][_0x7b7e('0x35')];_0x31e4c6+=0x1){_0x31e4c6>0x0&&(_0x2fc631+='\x20'+_0x4dfe50[_0x7b7e('0x65')]+'\x20');_0x2fc631+=_0x4dfe50['rules'][_0x31e4c6][_0x7b7e('0x66')]?_0xc8849f(_0x4dfe50[_0x7b7e('0x64')][_0x31e4c6][_0x7b7e('0x66')]):_0x4dfe50[_0x7b7e('0x64')][_0x31e4c6][_0x7b7e('0x67')]+'\x20'+_0x4dfe50[_0x7b7e('0x64')][_0x31e4c6][_0x7b7e('0x68')]+(_0x5263e2(_0x4dfe50[_0x7b7e('0x64')][_0x31e4c6][_0x7b7e('0x68')])?'\x20'+_0x4dfe50[_0x7b7e('0x64')][_0x31e4c6][_0x7b7e('0x69')]:'');}return _0x2fc631+')';};var _0x4c33ff={'where':{'id':_0x2c59e1[_0x7b7e('0x50')]['id']}},_0x1e689b,_0x711f2f,_0x4a2237,_0x1e19be,_0x48641d;_0x4c33ff=_[_0x7b7e('0x3c')]({},_0x4c33ff,_0x2c59e1[_0x7b7e('0x45')]);return db['AnalyticCustomReport'][_0x7b7e('0x46')](_0x4c33ff)[_0x7b7e('0x24')](function(_0x474f1c){if(_0x474f1c){_0x1e689b=_0x474f1c;return _0x474f1c[_0x7b7e('0x6a')]();}return null;})[_0x7b7e('0x24')](function(_0x27785c){if(_0x27785c){if(!_0x27785c[_0x7b7e('0x35')]){throw new db[(_0x7b7e('0x89'))][(_0x7b7e('0x6b'))](_0x7b7e('0x6c'),0x193);}_0x711f2f=_0x27785c;return db['AnalyticMetric'][_0x7b7e('0x40')]({'raw':!![]});}return null;})[_0x7b7e('0x24')](function(_0x33710d){if(_0x33710d){_0x4a2237=_['keyBy'](_0x33710d,'id');var _0x4fc6a4;var _0xf6897f=squel['select']();_0xf6897f['from'](_0x1e689b[_0x7b7e('0x70')]);for(var _0x173308=0x0;_0x173308<_0x711f2f[_0x7b7e('0x35')];_0x173308+=0x1){_0x4fc6a4=_0x711f2f[_0x173308]['MetricId']?_0x4a2237[_0x711f2f[_0x173308][_0x7b7e('0x71')]][_0x7b7e('0x72')]:_0x711f2f[_0x173308][_0x7b7e('0x67')];_0x4fc6a4=_0x711f2f[_0x173308][_0x7b7e('0x73')]?_[_0x7b7e('0x74')](_0x596ec1[_0x711f2f[_0x173308]['function']],'%s',_0x4fc6a4):_0x4fc6a4;_0x4fc6a4=_0x711f2f[_0x173308][_0x7b7e('0x75')]?_[_0x7b7e('0x74')](_0x210ed3[_0x711f2f[_0x173308][_0x7b7e('0x75')]],'%s',_0x4fc6a4):_0x4fc6a4;if(_0x711f2f[_0x173308][_0x7b7e('0x76')]){_0xf6897f[_0x7b7e('0x66')](_0x4fc6a4);}_0x711f2f[_0x173308][_0x7b7e('0x77')]&&_0xf6897f['order'](_0x4fc6a4,_0x711f2f[_0x173308]['orderBy']===_0x7b7e('0x79')?![]:!![]);_0xf6897f['field'](_0x4fc6a4,_0x711f2f[_0x173308][_0x7b7e('0x7a')]||_0x4fc6a4);}if(_0x1e689b[_0x7b7e('0x7b')]){_0x1e689b[_0x7b7e('0x7b')]=JSON[_0x7b7e('0x7c')](_0x1e689b[_0x7b7e('0x7b')]);for(var _0x1da1ef=0x0;_0x1da1ef<_0x1e689b[_0x7b7e('0x7b')]['length'];_0x1da1ef+=0x1){if(_0x1e689b['joins'][_0x1da1ef][_0x7b7e('0x2e')]&&_[_0x7b7e('0x60')](_0x5b0abe,_0x1e689b['joins'][_0x1da1ef][_0x7b7e('0x2e')])&&_0x1e689b[_0x7b7e('0x7b')][_0x1da1ef]['parentKey']&&_0x1e689b['joins'][_0x1da1ef][_0x7b7e('0x7d')]&&_0x1e689b[_0x7b7e('0x7b')][_0x1da1ef][_0x7b7e('0x7f')]){_0xf6897f[_0x1e689b['joins'][_0x1da1ef][_0x7b7e('0x2e')]](_0x1e689b[_0x7b7e('0x7b')][_0x1da1ef][_0x7b7e('0x7d')],null,util[_0x7b7e('0x75')](_0x7b7e('0x8b'),_0x1e689b[_0x7b7e('0x70')],_0x1e689b[_0x7b7e('0x7b')][_0x1da1ef][_0x7b7e('0x7e')],_0x1e689b[_0x7b7e('0x7b')][_0x1da1ef][_0x7b7e('0x7d')],_0x1e689b['joins'][_0x1da1ef]['foreignKey']));}}}if(_0x1e689b['conditions']){_0x1e689b[_0x7b7e('0x80')]=JSON['parse'](_0x1e689b[_0x7b7e('0x80')]);_0xf6897f[_0x7b7e('0x39')](_0xc8849f(_0x1e689b[_0x7b7e('0x80')]['group']));}_0x48641d=_0xf6897f[_0x7b7e('0xa4')]();_0xf6897f[_0x7b7e('0x1e')](_0x3b1083);_0xf6897f[_0x7b7e('0x1d')](0x0);logger[_0x7b7e('0x81')](_0x7b7e('0x82'),_0xf6897f[_0x7b7e('0x8c')]());return db[_0x7b7e('0x83')]['query'](_0xf6897f['toString'](),{'type':db['sequelize'][_0x7b7e('0x84')][_0x7b7e('0x85')]});}})[_0x7b7e('0x24')](function(){return{'sql':_0x48641d[_0x7b7e('0x8c')]()};})[_0x7b7e('0x24')](respondWithResult(_0x21d29a,null))[_0x7b7e('0x42')](handleError(_0x21d29a,null));};