8fdeeb96be521eebd9de7decc57be461b1079a89
[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 _0x6962=['intersection','attributes','fields','length','nolimit','limit','order','sort','where','pick','filters','filter','VIRTUAL','merge','options','includeAll','include','findAll','show','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','CustomReports','body','params','catch','preview','join','cross_join','SUM(%s)','COUNT(%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','ValidationErrorItem','keyBy','select','from','table','metric','replace','format','DESC','alias','joins','parentKey','foreignKey','foreignTable','conditions','parse','clone','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','right_join','COUNT(DISTINCT\x20%s)','AVG(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','MetricId','orderBy','%s.%s\x20=\x20%s.%s','debug','Sequelize','No\x20available\x20data','web','fullPath','%s-%s.%s','generate','output','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','IS\x20NOT\x20NULL','function','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','set','Content-Range','apply','update','then','get','UserProfileResource','destroy','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','model','query','keys'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x6962,0x73));var _0x2696=function(_0x53c646,_0x333541){_0x53c646=_0x53c646-0x0;var _0x2ff1ef=_0x6962[_0x53c646];return _0x2ff1ef;};'use strict';var pdf=require(_0x2696('0x0'));var emlformat=require(_0x2696('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x2696('0x2'));var jsonpatch=require(_0x2696('0x3'));var rp=require(_0x2696('0x4'));var moment=require('moment');var BPromise=require(_0x2696('0x5'));var Mustache=require(_0x2696('0x6'));var util=require(_0x2696('0x7'));var path=require(_0x2696('0x8'));var sox=require(_0x2696('0x9'));var csv=require('to-csv');var ejs=require(_0x2696('0xa'));var fs=require('fs');var _=require(_0x2696('0xb'));var squel=require('squel');var crypto=require(_0x2696('0xc'));var jsforce=require(_0x2696('0xd'));var deskjs=require(_0x2696('0xe'));var toCsv=require(_0x2696('0xf'));var querystring=require(_0x2696('0x10'));var Papa=require(_0x2696('0x11'));var Redis=require(_0x2696('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x2696('0x13'));var as=require(_0x2696('0x14'));var hardwareService=require(_0x2696('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x2696('0x16'));var config=require('../../config/environment');var db=require(_0x2696('0x17'))['db'];function respondWithStatusCode(_0x4019e0,_0x50dd2d){_0x50dd2d=_0x50dd2d||0xcc;return function(_0x5cced4){if(_0x5cced4){return _0x4019e0[_0x2696('0x18')](_0x50dd2d);}return _0x4019e0[_0x2696('0x19')](_0x50dd2d)[_0x2696('0x1a')]();};}function respondWithResult(_0x437ba5,_0x3fa9ca){_0x3fa9ca=_0x3fa9ca||0xc8;return function(_0x6ec069){if(_0x6ec069){return _0x437ba5[_0x2696('0x19')](_0x3fa9ca)[_0x2696('0x1b')](_0x6ec069);}};}function respondWithFilteredResult(_0xd82fc,_0x4e3393){return function(_0x2604f7){if(_0x2604f7){var _0x1776e6=_0x2604f7[_0x2696('0x1c')],_0x10988f=_0x4e3393[_0x2696('0x1d')],_0x358df8=_0x4e3393[_0x2696('0x1d')]+_0x4e3393['limit'],_0x569d2b;if(_0x358df8>=_0x1776e6){_0x358df8=_0x1776e6;_0x569d2b=0xc8;}else{_0x569d2b=0xce;}_0xd82fc[_0x2696('0x19')](_0x569d2b);return _0xd82fc[_0x2696('0x1e')](_0x2696('0x1f'),_0x10988f+'-'+_0x358df8+'/'+_0x1776e6)[_0x2696('0x1b')](_0x2604f7);}return null;};}function patchUpdates(_0x5ec8e2){return function(_0x128005){try{jsonpatch[_0x2696('0x20')](_0x128005,_0x5ec8e2,!![]);}catch(_0x55cd8f){return BPromise['reject'](_0x55cd8f);}return _0x128005['save']();};}function saveUpdates(_0x225f14,_0x5b4ebd){return function(_0x32e1b6){if(_0x32e1b6){return _0x32e1b6[_0x2696('0x21')](_0x225f14)['then'](function(_0xb4895e){return _0xb4895e;});}return null;};}function removeEntity(_0x353b17,_0x57c0ff){return function(_0x405576){if(_0x405576){return _0x405576['destroy']()[_0x2696('0x22')](function(){var _0x8b1aac=_0x405576[_0x2696('0x23')]({'plain':!![]});var _0x542b25='CustomReports';return db[_0x2696('0x24')][_0x2696('0x25')]({'where':{'type':_0x542b25,'resourceId':_0x8b1aac['id']}})['then'](function(){return _0x405576;});})[_0x2696('0x22')](function(){_0x353b17[_0x2696('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3456c3,_0x12bd95){return function(_0x8f7293){if(!_0x8f7293){_0x3456c3[_0x2696('0x18')](0x194);}return _0x8f7293;};}function handleError(_0x855b9c,_0x453bbb){_0x453bbb=_0x453bbb||0x1f4;return function(_0x838b98){logger['error'](_0x838b98[_0x2696('0x26')]);if(_0x838b98[_0x2696('0x27')]){delete _0x838b98[_0x2696('0x27')];}_0x855b9c[_0x2696('0x19')](_0x453bbb)[_0x2696('0x28')](_0x838b98);};}exports[_0x2696('0x29')]=function(_0x261abf,_0x3fef5a){var _0x4e11f7={},_0x95ad00={},_0x479679={'count':0x0,'rows':[]};var _0x231e26=_[_0x2696('0x2a')](db[_0x2696('0x2b')][_0x2696('0x2c')],function(_0x7779b0){return{'name':_0x7779b0[_0x2696('0x2d')],'type':_0x7779b0[_0x2696('0x2e')][_0x2696('0x2f')]};});_0x95ad00[_0x2696('0x30')]=_[_0x2696('0x2a')](_0x231e26,_0x2696('0x27'));_0x95ad00[_0x2696('0x31')]=_[_0x2696('0x32')](_0x261abf['query']);_0x95ad00['filters']=_[_0x2696('0x33')](_0x95ad00[_0x2696('0x30')],_0x95ad00[_0x2696('0x31')]);_0x4e11f7[_0x2696('0x34')]=_[_0x2696('0x33')](_0x95ad00[_0x2696('0x30')],qs['fields'](_0x261abf[_0x2696('0x31')][_0x2696('0x35')]));_0x4e11f7[_0x2696('0x34')]=_0x4e11f7[_0x2696('0x34')][_0x2696('0x36')]?_0x4e11f7[_0x2696('0x34')]:_0x95ad00['model'];if(!_0x261abf[_0x2696('0x31')]['hasOwnProperty'](_0x2696('0x37'))){_0x4e11f7[_0x2696('0x38')]=qs[_0x2696('0x38')](_0x261abf[_0x2696('0x31')]['limit']);_0x4e11f7[_0x2696('0x1d')]=qs[_0x2696('0x1d')](_0x261abf[_0x2696('0x31')][_0x2696('0x1d')]);}_0x4e11f7[_0x2696('0x39')]=qs[_0x2696('0x3a')](_0x261abf[_0x2696('0x31')][_0x2696('0x3a')]);_0x4e11f7[_0x2696('0x3b')]=qs['filters'](_[_0x2696('0x3c')](_0x261abf[_0x2696('0x31')],_0x95ad00[_0x2696('0x3d')]));if(_0x261abf['query'][_0x2696('0x3e')]){_0x4e11f7[_0x2696('0x3b')]=_['merge'](_0x4e11f7[_0x2696('0x3b')],{'$or':_[_0x2696('0x2a')](_0x231e26,function(_0x3e0941){if(_0x3e0941[_0x2696('0x2e')]!==_0x2696('0x3f')){var _0xb0f1bd={};_0xb0f1bd[_0x3e0941[_0x2696('0x27')]]={'$like':'%'+_0x261abf['query'][_0x2696('0x3e')]+'%'};return _0xb0f1bd;}})});}_0x4e11f7=_[_0x2696('0x40')]({},_0x4e11f7,_0x261abf[_0x2696('0x41')]);var _0x1ebddb={'where':_0x4e11f7[_0x2696('0x3b')]};return db[_0x2696('0x2b')][_0x2696('0x1c')](_0x1ebddb)[_0x2696('0x22')](function(_0x6da161){_0x479679['count']=_0x6da161;if(_0x261abf['query'][_0x2696('0x42')]){_0x4e11f7[_0x2696('0x43')]=[{'all':!![]}];}return db[_0x2696('0x2b')][_0x2696('0x44')](_0x4e11f7);})[_0x2696('0x22')](function(_0x3fd286){_0x479679['rows']=_0x3fd286;return _0x479679;})['then'](respondWithFilteredResult(_0x3fef5a,_0x4e11f7))['catch'](handleError(_0x3fef5a,null));};exports[_0x2696('0x45')]=function(_0xd6469c,_0x4ce758){var _0x249d5e={'raw':![],'where':{'id':_0xd6469c['params']['id']}},_0x4a9d91={};_0x4a9d91[_0x2696('0x30')]=_[_0x2696('0x32')](db['AnalyticCustomReport'][_0x2696('0x2c')]);_0x4a9d91[_0x2696('0x31')]=_[_0x2696('0x32')](_0xd6469c[_0x2696('0x31')]);_0x4a9d91[_0x2696('0x3d')]=_['intersection'](_0x4a9d91[_0x2696('0x30')],_0x4a9d91[_0x2696('0x31')]);_0x249d5e[_0x2696('0x34')]=_[_0x2696('0x33')](_0x4a9d91['model'],qs[_0x2696('0x35')](_0xd6469c[_0x2696('0x31')][_0x2696('0x35')]));_0x249d5e[_0x2696('0x34')]=_0x249d5e[_0x2696('0x34')]['length']?_0x249d5e['attributes']:_0x4a9d91[_0x2696('0x30')];if(_0xd6469c[_0x2696('0x31')][_0x2696('0x42')]){_0x249d5e[_0x2696('0x43')]=[{'all':!![]}];}_0x249d5e=_['merge']({},_0x249d5e,_0xd6469c['options']);return db['AnalyticCustomReport']['find'](_0x249d5e)[_0x2696('0x22')](handleEntityNotFound(_0x4ce758,null))[_0x2696('0x22')](respondWithResult(_0x4ce758,null))['catch'](handleError(_0x4ce758,null));};exports['create']=function(_0x32e809,_0x4966be){return db[_0x2696('0x2b')][_0x2696('0x46')](_0x32e809['body'],{})[_0x2696('0x22')](function(_0x48a871){var _0x2451e4=_0x32e809[_0x2696('0x47')][_0x2696('0x23')]({'plain':!![]});if(!_0x2451e4)throw new Error(_0x2696('0x48'));if(_0x2451e4[_0x2696('0x49')]===_0x2696('0x47')){var _0x1afdda=_0x48a871['get']({'plain':!![]});var _0xa63ac3='Reports';return db[_0x2696('0x4a')][_0x2696('0x4b')]({'where':{'name':_0xa63ac3,'userProfileId':_0x2451e4[_0x2696('0x4c')]},'raw':!![]})['then'](function(_0x33363d){if(_0x33363d&&_0x33363d['autoAssociation']===0x0){return db[_0x2696('0x24')]['create']({'name':_0x1afdda[_0x2696('0x27')],'resourceId':_0x1afdda['id'],'type':_0x2696('0x4d'),'sectionId':_0x33363d['id']},{})[_0x2696('0x22')](function(){return _0x48a871;});}else{return _0x48a871;}})['catch'](function(_0x1bdf46){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1bdf46);throw _0x1bdf46;});}return _0x48a871;})[_0x2696('0x22')](respondWithResult(_0x4966be,0xc9))['catch'](handleError(_0x4966be,null));};exports[_0x2696('0x21')]=function(_0x36b466,_0x47d789){if(_0x36b466[_0x2696('0x4e')]['id']){delete _0x36b466[_0x2696('0x4e')]['id'];}return db[_0x2696('0x2b')]['find']({'where':{'id':_0x36b466[_0x2696('0x4f')]['id']}})['then'](handleEntityNotFound(_0x47d789,null))[_0x2696('0x22')](saveUpdates(_0x36b466[_0x2696('0x4e')],null))[_0x2696('0x22')](respondWithResult(_0x47d789,null))[_0x2696('0x50')](handleError(_0x47d789,null));};exports[_0x2696('0x25')]=function(_0x39390d,_0x9c23d1){return db[_0x2696('0x2b')]['find']({'where':{'id':_0x39390d[_0x2696('0x4f')]['id']}})[_0x2696('0x22')](handleEntityNotFound(_0x9c23d1,null))[_0x2696('0x22')](removeEntity(_0x9c23d1,null))['catch'](handleError(_0x9c23d1,null));};exports[_0x2696('0x51')]=function(_0x471f1a,_0x5ccfce){var _0x3d6f78=0xa;var _0x5f03ac=[_0x2696('0x52'),'left_join','right_join',_0x2696('0x53')];var _0x496e8a={'SUM':_0x2696('0x54'),'COUNT':_0x2696('0x55'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x2696('0x56'),'MIN':_0x2696('0x57'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x2696('0x58'),'GROUP_CONCAT ASC':_0x2696('0x59'),'GROUP_CONCAT DESC':_0x2696('0x5a')};var _0x387412={'SEC_TO_TIME':_0x2696('0x5b'),'DATE':_0x2696('0x5c'),'HOUR':'HOUR(%s)','ROUND':_0x2696('0x5d'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x7cbbc8=function(_0x1b5539){return!_[_0x2696('0x5e')]([_0x2696('0x5f'),'IS\x20NOT\x20NULL',_0x2696('0x60'),_0x2696('0x61')],_0x1b5539);};var _0x35e17d=function(_0x5a5c8b){if(!_0x5a5c8b||!_0x5a5c8b[_0x2696('0x62')][_0x2696('0x36')]){return'';}for(var _0x19ee55='(',_0x1ed20c=0x0;_0x1ed20c<_0x5a5c8b[_0x2696('0x62')]['length'];_0x1ed20c+=0x1){_0x1ed20c>0x0&&(_0x19ee55+='\x20'+_0x5a5c8b[_0x2696('0x63')]+'\x20');_0x19ee55+=_0x5a5c8b['rules'][_0x1ed20c][_0x2696('0x64')]?_0x35e17d(_0x5a5c8b[_0x2696('0x62')][_0x1ed20c]['group']):_0x5a5c8b[_0x2696('0x62')][_0x1ed20c][_0x2696('0x65')]+'\x20'+_0x5a5c8b['rules'][_0x1ed20c][_0x2696('0x66')]+(_0x7cbbc8(_0x5a5c8b[_0x2696('0x62')][_0x1ed20c][_0x2696('0x66')])?'\x20'+_0x5a5c8b[_0x2696('0x62')][_0x1ed20c][_0x2696('0x67')]:'');}return _0x19ee55+')';};var _0x2a1968={'where':{'id':_0x471f1a[_0x2696('0x4f')]['id']}},_0x365121,_0x4585be,_0x578f58,_0x183763,_0xa2e103;_0x2a1968=_['merge']({},_0x2a1968,_0x471f1a[_0x2696('0x41')]);return db[_0x2696('0x2b')][_0x2696('0x4b')](_0x2a1968)[_0x2696('0x22')](function(_0x39a2bf){if(_0x39a2bf){_0x365121=_0x39a2bf;return _0x39a2bf[_0x2696('0x68')]();}return null;})['then'](function(_0x3ff225){if(_0x3ff225){if(!_0x3ff225['length']){throw new db['Sequelize'][(_0x2696('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4585be=_0x3ff225;return db['AnalyticMetric'][_0x2696('0x44')]({'raw':!![]});}return null;})[_0x2696('0x22')](function(_0x74b729){if(_0x74b729){_0x578f58=_[_0x2696('0x6a')](_0x74b729,'id');var _0x45a986;var _0x55bcd1=squel[_0x2696('0x6b')]();_0x55bcd1[_0x2696('0x6c')](_0x365121[_0x2696('0x6d')]);for(var _0x1d4a50=0x0;_0x1d4a50<_0x4585be[_0x2696('0x36')];_0x1d4a50+=0x1){_0x45a986=_0x4585be[_0x1d4a50]['MetricId']?_0x578f58[_0x4585be[_0x1d4a50]['MetricId']][_0x2696('0x6e')]:_0x4585be[_0x1d4a50][_0x2696('0x65')];_0x45a986=_0x4585be[_0x1d4a50]['function']?_[_0x2696('0x6f')](_0x496e8a[_0x4585be[_0x1d4a50]['function']],'%s',_0x45a986):_0x45a986;_0x45a986=_0x4585be[_0x1d4a50][_0x2696('0x70')]?_[_0x2696('0x6f')](_0x387412[_0x4585be[_0x1d4a50][_0x2696('0x70')]],'%s',_0x45a986):_0x45a986;if(_0x4585be[_0x1d4a50]['groupBy']){_0x55bcd1['group'](_0x45a986);}_0x4585be[_0x1d4a50]['orderBy']&&_0x55bcd1[_0x2696('0x39')](_0x45a986,_0x4585be[_0x1d4a50]['orderBy']===_0x2696('0x71')?![]:!![]);_0x55bcd1[_0x2696('0x65')](_0x45a986,_0x4585be[_0x1d4a50][_0x2696('0x72')]||_0x45a986);}if(_0x365121[_0x2696('0x73')]){_0x365121[_0x2696('0x73')]=JSON['parse'](_0x365121[_0x2696('0x73')]);for(var _0x1ebb2a=0x0;_0x1ebb2a<_0x365121[_0x2696('0x73')][_0x2696('0x36')];_0x1ebb2a+=0x1){if(_0x365121[_0x2696('0x73')][_0x1ebb2a][_0x2696('0x2e')]&&_[_0x2696('0x5e')](_0x5f03ac,_0x365121['joins'][_0x1ebb2a][_0x2696('0x2e')])&&_0x365121[_0x2696('0x73')][_0x1ebb2a][_0x2696('0x74')]&&_0x365121[_0x2696('0x73')][_0x1ebb2a]['foreignTable']&&_0x365121[_0x2696('0x73')][_0x1ebb2a][_0x2696('0x75')]){_0x55bcd1[_0x365121[_0x2696('0x73')][_0x1ebb2a]['type']](_0x365121[_0x2696('0x73')][_0x1ebb2a][_0x2696('0x76')],null,util[_0x2696('0x70')]('%s.%s\x20=\x20%s.%s',_0x365121[_0x2696('0x6d')],_0x365121[_0x2696('0x73')][_0x1ebb2a][_0x2696('0x74')],_0x365121['joins'][_0x1ebb2a][_0x2696('0x76')],_0x365121[_0x2696('0x73')][_0x1ebb2a][_0x2696('0x75')]));}}}if(_0x365121[_0x2696('0x77')]){_0x365121[_0x2696('0x77')]=JSON[_0x2696('0x78')](_0x365121[_0x2696('0x77')]);_0x55bcd1[_0x2696('0x3b')](_0x35e17d(_0x365121[_0x2696('0x77')][_0x2696('0x64')]));}_0xa2e103=_0x55bcd1[_0x2696('0x79')]();_0x55bcd1[_0x2696('0x38')](_0x3d6f78);_0x55bcd1[_0x2696('0x1d')](0x0);logger['debug'](_0x2696('0x7a'),_0x55bcd1[_0x2696('0x7b')]());return db[_0x2696('0x7c')][_0x2696('0x31')](_0x55bcd1[_0x2696('0x7b')](),{'type':db[_0x2696('0x7c')][_0x2696('0x7d')][_0x2696('0x7e')]});}})[_0x2696('0x22')](respondWithResult(_0x5ccfce,null))[_0x2696('0x50')](handleError(_0x5ccfce,null));};function runReport(_0x47f064,_0x4297ec,_0x3e7fa4){var _0x45097c=_0x4297ec[_0x2696('0x27')];var _0x528e64=0xa;var _0x16918b=[_0x2696('0x52'),_0x2696('0x7f'),_0x2696('0x80'),_0x2696('0x53')];var _0x43d659={'SUM':_0x2696('0x54'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x2696('0x81'),'MAX':_0x2696('0x56'),'MIN':_0x2696('0x57'),'AVG':_0x2696('0x82'),'GROUP_CONCAT':_0x2696('0x58'),'GROUP_CONCAT ASC':_0x2696('0x59'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x38246d={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x2696('0x83'),'ROUND':_0x2696('0x5d'),'UNIX_TIMESTAMP':_0x2696('0x84')};var _0x181367=function(_0xe15910){return!_[_0x2696('0x5e')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x2696('0x60'),_0x2696('0x61')],_0xe15910);};var _0x7c6eae=function(_0x233844){if(!_0x233844||!_0x233844['rules']['length']){return'';}for(var _0xdc9948='(',_0x529cad=0x0;_0x529cad<_0x233844[_0x2696('0x62')]['length'];_0x529cad+=0x1){_0x529cad>0x0&&(_0xdc9948+='\x20'+_0x233844['operator']+'\x20');_0xdc9948+=_0x233844['rules'][_0x529cad][_0x2696('0x64')]?_0x7c6eae(_0x233844['rules'][_0x529cad][_0x2696('0x64')]):_0x233844[_0x2696('0x62')][_0x529cad][_0x2696('0x65')]+'\x20'+_0x233844[_0x2696('0x62')][_0x529cad][_0x2696('0x66')]+(_0x181367(_0x233844[_0x2696('0x62')][_0x529cad][_0x2696('0x66')])?'\x20'+_0x233844[_0x2696('0x62')][_0x529cad]['value']:'');}return _0xdc9948+')';};var _0x146095={'where':{'id':_0x47f064['id']}},_0x33480e,_0x2d8466,_0x403026,_0x145dda,_0x357f43;_0x146095=_[_0x2696('0x40')]({},_0x146095,_0x3e7fa4);return db[_0x2696('0x2b')][_0x2696('0x4b')](_0x146095)[_0x2696('0x22')](function(_0x55c1d2){if(_0x55c1d2){_0x33480e=_0x55c1d2;return _0x55c1d2[_0x2696('0x68')]();}return null;})['then'](function(_0xa6a0b3){if(_0xa6a0b3){if(!_0xa6a0b3[_0x2696('0x36')]){throw new db['Sequelize'][(_0x2696('0x69'))](_0x2696('0x85'),0x193);}_0x2d8466=_0xa6a0b3;return db[_0x2696('0x86')][_0x2696('0x44')]({'raw':!![]});}return null;})[_0x2696('0x22')](function(_0x1b3e90){if(_0x1b3e90){_0x403026=_[_0x2696('0x6a')](_0x1b3e90,'id');var _0x39a143;var _0x5a9389=squel[_0x2696('0x6b')]();_0x5a9389[_0x2696('0x6c')](_0x33480e[_0x2696('0x6d')]);for(var _0x152166=0x0;_0x152166<_0x2d8466[_0x2696('0x36')];_0x152166+=0x1){_0x39a143=_0x2d8466[_0x152166][_0x2696('0x87')]?_0x403026[_0x2d8466[_0x152166]['MetricId']][_0x2696('0x6e')]:_0x2d8466[_0x152166][_0x2696('0x65')];_0x39a143=_0x2d8466[_0x152166]['function']?_[_0x2696('0x6f')](_0x43d659[_0x2d8466[_0x152166]['function']],'%s',_0x39a143):_0x39a143;_0x39a143=_0x2d8466[_0x152166]['format']?_[_0x2696('0x6f')](_0x38246d[_0x2d8466[_0x152166][_0x2696('0x70')]],'%s',_0x39a143):_0x39a143;if(_0x2d8466[_0x152166]['groupBy']){_0x5a9389['group'](_0x39a143);}_0x2d8466[_0x152166][_0x2696('0x88')]&&_0x5a9389['order'](_0x39a143,_0x2d8466[_0x152166][_0x2696('0x88')]===_0x2696('0x71')?![]:!![]);_0x5a9389[_0x2696('0x65')](_0x39a143,_0x2d8466[_0x152166]['alias']||_0x39a143);}if(_0x33480e[_0x2696('0x73')]){_0x33480e['joins']=JSON[_0x2696('0x78')](_0x33480e['joins']);for(var _0x4e21d0=0x0;_0x4e21d0<_0x33480e[_0x2696('0x73')][_0x2696('0x36')];_0x4e21d0+=0x1){if(_0x33480e['joins'][_0x4e21d0][_0x2696('0x2e')]&&_['includes'](_0x16918b,_0x33480e[_0x2696('0x73')][_0x4e21d0]['type'])&&_0x33480e[_0x2696('0x73')][_0x4e21d0]['parentKey']&&_0x33480e['joins'][_0x4e21d0][_0x2696('0x76')]&&_0x33480e[_0x2696('0x73')][_0x4e21d0][_0x2696('0x75')]){_0x5a9389[_0x33480e[_0x2696('0x73')][_0x4e21d0][_0x2696('0x2e')]](_0x33480e['joins'][_0x4e21d0][_0x2696('0x76')],null,util['format'](_0x2696('0x89'),_0x33480e['table'],_0x33480e[_0x2696('0x73')][_0x4e21d0][_0x2696('0x74')],_0x33480e[_0x2696('0x73')][_0x4e21d0][_0x2696('0x76')],_0x33480e[_0x2696('0x73')][_0x4e21d0][_0x2696('0x75')]));}}}if(_0x33480e[_0x2696('0x77')]){_0x33480e['conditions']=JSON[_0x2696('0x78')](_0x33480e[_0x2696('0x77')]);_0x5a9389[_0x2696('0x3b')](_0x7c6eae(_0x33480e[_0x2696('0x77')][_0x2696('0x64')]));}_0x357f43=_0x5a9389[_0x2696('0x79')]();_0x5a9389[_0x2696('0x38')](_0x528e64);_0x5a9389[_0x2696('0x1d')](0x0);logger[_0x2696('0x8a')](_0x2696('0x7a'),_0x5a9389[_0x2696('0x7b')]());return db[_0x2696('0x7c')][_0x2696('0x31')](_0x5a9389['toString'](),{'type':db[_0x2696('0x7c')][_0x2696('0x7d')]['SELECT']});}})[_0x2696('0x22')](function(_0x1d55cd){if(!_0x1d55cd['length']){throw new db[(_0x2696('0x8b'))]['ValidationErrorItem'](_0x2696('0x8c'),0xcc);}if(_0x4297ec['output']===_0x2696('0x8d')){return null;}var _0x495b3f=_[_0x2696('0x40')](_0x4297ec,{'name':_0x4297ec[_0x2696('0x8e')]||_0x4297ec[_0x2696('0x27')]||_0x33480e[_0x2696('0x27')],'basename':_0x45097c,'savename':util[_0x2696('0x70')](_0x2696('0x8f'),_0x4297ec[_0x2696('0x27')]||_0x33480e['name'],require('randomstring')[_0x2696('0x90')](0x4),_0x4297ec[_0x2696('0x91')]||_0x2696('0x92')),'reportId':_0x33480e['id'],'reportType':'custom'});return db[_0x2696('0x93')][_0x2696('0x46')](_0x495b3f,{'raw':!![]});})['then'](function(_0x522633){if(_0x33480e['table']===_0x2696('0x94')){_0x357f43[_0x2696('0x3b')](_0x33480e['table']+_0x2696('0x95'),_0x4297ec['startDate'],_0x4297ec[_0x2696('0x96')]);}else{_0x357f43[_0x2696('0x3b')](_0x33480e[_0x2696('0x6d')]+_0x2696('0x97'),_0x4297ec[_0x2696('0x98')],_0x4297ec[_0x2696('0x96')]);}if(_0x522633){logger[_0x2696('0x99')](_0x2696('0x9a'),_0x357f43['toString']());require(_0x2696('0x9b'))[_0x2696('0x9c')](path['join'](__dirname,_0x2696('0x9d'),_0x522633['output']),[_0x522633['id'],_0x357f43['toString'](),path['join'](__dirname,_0x2696('0x9e'),_0x522633[_0x2696('0x9f')]),_0x45097c]);return _0x522633;}else{var _0x4d214b=squel[_0x2696('0x6b')]();_0x4d214b['from']('('+_0x357f43[_0x2696('0x7b')]()+')',_0x2696('0xa0'));_0x4d214b[_0x2696('0x65')](_0x2696('0xa1'),_0x2696('0x1c'));_0x357f43[_0x2696('0x38')](_0x4297ec[_0x2696('0x38')]||_0x528e64);_0x357f43[_0x2696('0x1d')](_0x4297ec[_0x2696('0x1d')]||0x0);return db[_0x2696('0x7c')][_0x2696('0x31')](_0x4d214b[_0x2696('0x7b')](),{'type':db['sequelize']['QueryTypes'][_0x2696('0x7e')]})[_0x2696('0x22')](function(_0x3af6fe){if(!_0x3af6fe[_0x2696('0x36')]){_0x145dda=0x0;}else{_0x145dda=_0x3af6fe[0x0][_0x2696('0x1c')]||0x0;}return db['sequelize'][_0x2696('0x31')](_0x357f43[_0x2696('0x7b')](),{'type':db[_0x2696('0x7c')][_0x2696('0x7d')][_0x2696('0x7e')]});})['then'](function(_0x4c23d2){return{'rows':_0x4c23d2||[],'count':_0x145dda};});}});}exports[_0x2696('0xa2')]=function(_0x36c345,_0x1d432a){return runReport(_0x36c345['params'],_0x36c345[_0x2696('0x31')],_0x36c345['options'])['then'](respondWithResult(_0x1d432a,null))['catch'](handleError(_0x1d432a,null));};exports[_0x2696('0xa3')]=runReport;exports['query']=function(_0x2234d6,_0x26293c){var _0x5ae023=0xa;var _0xfc7aab=[_0x2696('0x52'),_0x2696('0x7f'),'right_join','cross_join'];var _0xced6a0={'SUM':_0x2696('0x54'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x2696('0x56'),'MIN':'MIN(%s)','AVG':_0x2696('0x82'),'GROUP_CONCAT':_0x2696('0x58'),'GROUP_CONCAT ASC':_0x2696('0x59'),'GROUP_CONCAT DESC':_0x2696('0x5a')};var _0x56d06e={'SEC_TO_TIME':_0x2696('0x5b'),'DATE':_0x2696('0x5c'),'HOUR':_0x2696('0x83'),'ROUND':_0x2696('0x5d'),'UNIX_TIMESTAMP':_0x2696('0x84')};var _0x41de63=function(_0x406fb1){return!_[_0x2696('0x5e')]([_0x2696('0x5f'),_0x2696('0xa4'),'IS\x20EMPTY',_0x2696('0x61')],_0x406fb1);};var _0x392c4b=function(_0x1c3508){if(!_0x1c3508||!_0x1c3508[_0x2696('0x62')][_0x2696('0x36')]){return'';}for(var _0x21cc8f='(',_0x3fcb2a=0x0;_0x3fcb2a<_0x1c3508[_0x2696('0x62')][_0x2696('0x36')];_0x3fcb2a+=0x1){_0x3fcb2a>0x0&&(_0x21cc8f+='\x20'+_0x1c3508[_0x2696('0x63')]+'\x20');_0x21cc8f+=_0x1c3508[_0x2696('0x62')][_0x3fcb2a][_0x2696('0x64')]?_0x392c4b(_0x1c3508[_0x2696('0x62')][_0x3fcb2a][_0x2696('0x64')]):_0x1c3508['rules'][_0x3fcb2a][_0x2696('0x65')]+'\x20'+_0x1c3508[_0x2696('0x62')][_0x3fcb2a][_0x2696('0x66')]+(_0x41de63(_0x1c3508[_0x2696('0x62')][_0x3fcb2a][_0x2696('0x66')])?'\x20'+_0x1c3508[_0x2696('0x62')][_0x3fcb2a][_0x2696('0x67')]:'');}return _0x21cc8f+')';};var _0x48bfdc={'where':{'id':_0x2234d6[_0x2696('0x4f')]['id']}},_0x174540,_0x16a443,_0x42e55b,_0xc9a6ed,_0x18e948;_0x48bfdc=_[_0x2696('0x40')]({},_0x48bfdc,_0x2234d6[_0x2696('0x41')]);return db['AnalyticCustomReport'][_0x2696('0x4b')](_0x48bfdc)['then'](function(_0x1d9270){if(_0x1d9270){_0x174540=_0x1d9270;return _0x1d9270['getFields']();}return null;})['then'](function(_0x3c8706){if(_0x3c8706){if(!_0x3c8706[_0x2696('0x36')]){throw new db[(_0x2696('0x8b'))]['ValidationErrorItem'](_0x2696('0x85'),0x193);}_0x16a443=_0x3c8706;return db[_0x2696('0x86')][_0x2696('0x44')]({'raw':!![]});}return null;})[_0x2696('0x22')](function(_0x8f54ef){if(_0x8f54ef){_0x42e55b=_['keyBy'](_0x8f54ef,'id');var _0x5e22d7;var _0x2a5eb6=squel[_0x2696('0x6b')]();_0x2a5eb6[_0x2696('0x6c')](_0x174540[_0x2696('0x6d')]);for(var _0x39f265=0x0;_0x39f265<_0x16a443[_0x2696('0x36')];_0x39f265+=0x1){_0x5e22d7=_0x16a443[_0x39f265]['MetricId']?_0x42e55b[_0x16a443[_0x39f265][_0x2696('0x87')]][_0x2696('0x6e')]:_0x16a443[_0x39f265][_0x2696('0x65')];_0x5e22d7=_0x16a443[_0x39f265][_0x2696('0xa5')]?_['replace'](_0xced6a0[_0x16a443[_0x39f265][_0x2696('0xa5')]],'%s',_0x5e22d7):_0x5e22d7;_0x5e22d7=_0x16a443[_0x39f265][_0x2696('0x70')]?_[_0x2696('0x6f')](_0x56d06e[_0x16a443[_0x39f265]['format']],'%s',_0x5e22d7):_0x5e22d7;if(_0x16a443[_0x39f265]['groupBy']){_0x2a5eb6[_0x2696('0x64')](_0x5e22d7);}_0x16a443[_0x39f265][_0x2696('0x88')]&&_0x2a5eb6['order'](_0x5e22d7,_0x16a443[_0x39f265]['orderBy']===_0x2696('0x71')?![]:!![]);_0x2a5eb6[_0x2696('0x65')](_0x5e22d7,_0x16a443[_0x39f265][_0x2696('0x72')]||_0x5e22d7);}if(_0x174540[_0x2696('0x73')]){_0x174540['joins']=JSON[_0x2696('0x78')](_0x174540[_0x2696('0x73')]);for(var _0x251af2=0x0;_0x251af2<_0x174540[_0x2696('0x73')]['length'];_0x251af2+=0x1){if(_0x174540['joins'][_0x251af2]['type']&&_[_0x2696('0x5e')](_0xfc7aab,_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x2e')])&&_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x74')]&&_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x76')]&&_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x75')]){_0x2a5eb6[_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x2e')]](_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x76')],null,util[_0x2696('0x70')](_0x2696('0x89'),_0x174540['table'],_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x74')],_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x76')],_0x174540[_0x2696('0x73')][_0x251af2][_0x2696('0x75')]));}}}if(_0x174540[_0x2696('0x77')]){_0x174540[_0x2696('0x77')]=JSON['parse'](_0x174540[_0x2696('0x77')]);_0x2a5eb6[_0x2696('0x3b')](_0x392c4b(_0x174540[_0x2696('0x77')][_0x2696('0x64')]));}_0x18e948=_0x2a5eb6[_0x2696('0x79')]();_0x2a5eb6['limit'](_0x5ae023);_0x2a5eb6[_0x2696('0x1d')](0x0);logger[_0x2696('0x8a')]('Limited\x20Query:',_0x2a5eb6[_0x2696('0x7b')]());return db[_0x2696('0x7c')][_0x2696('0x31')](_0x2a5eb6[_0x2696('0x7b')](),{'type':db[_0x2696('0x7c')][_0x2696('0x7d')][_0x2696('0x7e')]});}})['then'](function(){return{'sql':_0x18e948[_0x2696('0x7b')]()};})['then'](respondWithResult(_0x26293c,null))['catch'](handleError(_0x26293c,null));};