6004421aaf34383d705253c2d1828513bcebc628
[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 _0x9feb=['AnalyticCustomReport','rawAttributes','fieldName','type','key','model','map','keys','intersection','attributes','fields','query','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','CustomReports','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','preview','join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','AVG(%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)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','operator','rules','group','field','condition','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','from','table','MetricId','function','replace','format','orderBy','DESC','joins','parentKey','foreignTable','foreignKey','conditions','parse','clone','debug','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','left_join','SUM(%s)','MAX(%s)','includes','AnalyticMetric','select','metric','%s.%s\x20=\x20%s.%s','output','fullPath','%s-%s.%s','randomstring','generate','csv','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','startDate','Run\x20Query:','child_process','fork','../../components/export/','savename','COUNT(*)','value','groupBy','alias','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','update','destroy','then','get','UserProfileResource','name'];(function(_0xa6e4c8,_0x52e242){var _0x29e0c8=function(_0x2caaf2){while(--_0x2caaf2){_0xa6e4c8['push'](_0xa6e4c8['shift']());}};_0x29e0c8(++_0x52e242);}(_0x9feb,0x1c0));var _0xb9fe=function(_0xf879bb,_0x5aaebf){_0xf879bb=_0xf879bb-0x0;var _0x277abc=_0x9feb[_0xf879bb];return _0x277abc;};'use strict';var emlformat=require(_0xb9fe('0x0'));var rimraf=require(_0xb9fe('0x1'));var zipdir=require(_0xb9fe('0x2'));var jsonpatch=require(_0xb9fe('0x3'));var rp=require(_0xb9fe('0x4'));var moment=require(_0xb9fe('0x5'));var BPromise=require(_0xb9fe('0x6'));var Mustache=require('mustache');var util=require(_0xb9fe('0x7'));var path=require(_0xb9fe('0x8'));var sox=require(_0xb9fe('0x9'));var csv=require(_0xb9fe('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb9fe('0xb'));var _=require(_0xb9fe('0xc'));var squel=require(_0xb9fe('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb9fe('0xe'));var toCsv=require(_0xb9fe('0xa'));var querystring=require('querystring');var Papa=require(_0xb9fe('0xf'));var Redis=require('ioredis');var authService=require(_0xb9fe('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xb9fe('0x11'));var hardwareService=require(_0xb9fe('0x12'));var logger=require(_0xb9fe('0x13'))(_0xb9fe('0x14'));var utils=require(_0xb9fe('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xb9fe('0x16'))['db'];var dbH=require('../../mysqldb')[_0xb9fe('0x17')];function respondWithStatusCode(_0x231fbf,_0x2aba6a){_0x2aba6a=_0x2aba6a||0xcc;return function(_0x216678){if(_0x216678){return _0x231fbf[_0xb9fe('0x18')](_0x2aba6a);}return _0x231fbf[_0xb9fe('0x19')](_0x2aba6a)[_0xb9fe('0x1a')]();};}function respondWithResult(_0x572bb4,_0x4c4784){_0x4c4784=_0x4c4784||0xc8;return function(_0x206af1){if(_0x206af1){return _0x572bb4[_0xb9fe('0x19')](_0x4c4784)[_0xb9fe('0x1b')](_0x206af1);}};}function respondWithFilteredResult(_0x154b38,_0x3b894c){return function(_0x548376){if(_0x548376){var _0x3416f0=typeof _0x3b894c[_0xb9fe('0x1c')]===_0xb9fe('0x1d')&&typeof _0x3b894c['limit']===_0xb9fe('0x1d');var _0x2fae14=_0x548376['count'];var _0x55aa68=_0x3416f0?0x0:_0x3b894c['offset'];var _0x1fa7d0=_0x3416f0?_0x548376[_0xb9fe('0x1e')]:_0x3b894c[_0xb9fe('0x1c')]+_0x3b894c[_0xb9fe('0x1f')];var _0x13e68a;if(_0x1fa7d0>=_0x2fae14){_0x1fa7d0=_0x2fae14;_0x13e68a=0xc8;}else{_0x13e68a=0xce;}_0x154b38['status'](_0x13e68a);return _0x154b38[_0xb9fe('0x20')](_0xb9fe('0x21'),_0x55aa68+'-'+_0x1fa7d0+'/'+_0x2fae14)[_0xb9fe('0x1b')](_0x548376);}return null;};}function patchUpdates(_0xbcedb6){return function(_0x1b8ccf){try{jsonpatch[_0xb9fe('0x22')](_0x1b8ccf,_0xbcedb6,!![]);}catch(_0x398d5b){return BPromise['reject'](_0x398d5b);}return _0x1b8ccf['save']();};}function saveUpdates(_0x56db76,_0xe1a332){return function(_0x462909){if(_0x462909){return _0x462909[_0xb9fe('0x23')](_0x56db76)['then'](function(_0x4e8e6a){return _0x4e8e6a;});}return null;};}function removeEntity(_0x106bbd,_0x1c3058){return function(_0xc2b2c6){if(_0xc2b2c6){return _0xc2b2c6[_0xb9fe('0x24')]()[_0xb9fe('0x25')](function(){var _0x359f66=_0xc2b2c6[_0xb9fe('0x26')]({'plain':!![]});var _0x20a8f6='CustomReports';return db[_0xb9fe('0x27')][_0xb9fe('0x24')]({'where':{'type':_0x20a8f6,'resourceId':_0x359f66['id']}})[_0xb9fe('0x25')](function(){return _0xc2b2c6;});})['then'](function(){_0x106bbd[_0xb9fe('0x19')](0xcc)[_0xb9fe('0x1a')]();});}};}function handleEntityNotFound(_0x58fa64,_0x5c9cf4){return function(_0x10c2f2){if(!_0x10c2f2){_0x58fa64[_0xb9fe('0x18')](0x194);}return _0x10c2f2;};}function handleError(_0xaff1cd,_0x499d59){_0x499d59=_0x499d59||0x1f4;return function(_0x21981f){logger['error'](_0x21981f['stack']);if(_0x21981f[_0xb9fe('0x28')]){delete _0x21981f[_0xb9fe('0x28')];}_0xaff1cd['status'](_0x499d59)['send'](_0x21981f);};}exports['index']=function(_0x129a8f,_0x1477fa){var _0x4be4fd={},_0x3de764={},_0x216839={'count':0x0,'rows':[]};var _0x1b8bbb=_['map'](db[_0xb9fe('0x29')][_0xb9fe('0x2a')],function(_0x5eb5ed){return{'name':_0x5eb5ed[_0xb9fe('0x2b')],'type':_0x5eb5ed[_0xb9fe('0x2c')][_0xb9fe('0x2d')]};});_0x3de764[_0xb9fe('0x2e')]=_[_0xb9fe('0x2f')](_0x1b8bbb,_0xb9fe('0x28'));_0x3de764['query']=_[_0xb9fe('0x30')](_0x129a8f['query']);_0x3de764['filters']=_[_0xb9fe('0x31')](_0x3de764['model'],_0x3de764['query']);_0x4be4fd[_0xb9fe('0x32')]=_[_0xb9fe('0x31')](_0x3de764[_0xb9fe('0x2e')],qs[_0xb9fe('0x33')](_0x129a8f[_0xb9fe('0x34')][_0xb9fe('0x33')]));_0x4be4fd[_0xb9fe('0x32')]=_0x4be4fd[_0xb9fe('0x32')]['length']?_0x4be4fd[_0xb9fe('0x32')]:_0x3de764['model'];if(!_0x129a8f[_0xb9fe('0x34')][_0xb9fe('0x35')](_0xb9fe('0x36'))){_0x4be4fd[_0xb9fe('0x1f')]=qs['limit'](_0x129a8f[_0xb9fe('0x34')][_0xb9fe('0x1f')]);_0x4be4fd['offset']=qs[_0xb9fe('0x1c')](_0x129a8f[_0xb9fe('0x34')][_0xb9fe('0x1c')]);}_0x4be4fd[_0xb9fe('0x37')]=qs['sort'](_0x129a8f['query'][_0xb9fe('0x38')]);_0x4be4fd[_0xb9fe('0x39')]=qs['filters'](_[_0xb9fe('0x3a')](_0x129a8f[_0xb9fe('0x34')],_0x3de764[_0xb9fe('0x3b')]),_0x1b8bbb);if(_0x129a8f[_0xb9fe('0x34')][_0xb9fe('0x3c')]){_0x4be4fd[_0xb9fe('0x39')]=_['merge'](_0x4be4fd['where'],{'$or':_[_0xb9fe('0x2f')](_0x1b8bbb,function(_0x172419){if(_0x172419['type']!==_0xb9fe('0x3d')){var _0x22b4b1={};_0x22b4b1[_0x172419[_0xb9fe('0x28')]]={'$like':'%'+_0x129a8f[_0xb9fe('0x34')]['filter']+'%'};return _0x22b4b1;}})});}_0x4be4fd=_[_0xb9fe('0x3e')]({},_0x4be4fd,_0x129a8f[_0xb9fe('0x3f')]);var _0x1def98={'where':_0x4be4fd[_0xb9fe('0x39')]};return db[_0xb9fe('0x29')][_0xb9fe('0x1e')](_0x1def98)[_0xb9fe('0x25')](function(_0x5769fb){_0x216839[_0xb9fe('0x1e')]=_0x5769fb;if(_0x129a8f[_0xb9fe('0x34')][_0xb9fe('0x40')]){_0x4be4fd[_0xb9fe('0x41')]=[{'all':!![]}];}return db[_0xb9fe('0x29')][_0xb9fe('0x42')](_0x4be4fd);})[_0xb9fe('0x25')](function(_0xcea1d9){_0x216839[_0xb9fe('0x43')]=_0xcea1d9;return _0x216839;})[_0xb9fe('0x25')](respondWithFilteredResult(_0x1477fa,_0x4be4fd))[_0xb9fe('0x44')](handleError(_0x1477fa,null));};exports[_0xb9fe('0x45')]=function(_0x4d4a0b,_0x236a91){var _0x3b4101={'raw':![],'where':{'id':_0x4d4a0b['params']['id']}},_0x48095f={};_0x48095f[_0xb9fe('0x2e')]=_[_0xb9fe('0x30')](db['AnalyticCustomReport'][_0xb9fe('0x2a')]);_0x48095f[_0xb9fe('0x34')]=_[_0xb9fe('0x30')](_0x4d4a0b[_0xb9fe('0x34')]);_0x48095f[_0xb9fe('0x3b')]=_['intersection'](_0x48095f[_0xb9fe('0x2e')],_0x48095f['query']);_0x3b4101['attributes']=_['intersection'](_0x48095f[_0xb9fe('0x2e')],qs[_0xb9fe('0x33')](_0x4d4a0b[_0xb9fe('0x34')]['fields']));_0x3b4101[_0xb9fe('0x32')]=_0x3b4101[_0xb9fe('0x32')][_0xb9fe('0x46')]?_0x3b4101[_0xb9fe('0x32')]:_0x48095f[_0xb9fe('0x2e')];if(_0x4d4a0b[_0xb9fe('0x34')]['includeAll']){_0x3b4101[_0xb9fe('0x41')]=[{'all':!![]}];}_0x3b4101=_[_0xb9fe('0x3e')]({},_0x3b4101,_0x4d4a0b[_0xb9fe('0x3f')]);return db['AnalyticCustomReport'][_0xb9fe('0x47')](_0x3b4101)[_0xb9fe('0x25')](handleEntityNotFound(_0x236a91,null))['then'](respondWithResult(_0x236a91,null))['catch'](handleError(_0x236a91,null));};exports[_0xb9fe('0x48')]=function(_0x572083,_0x3f6f3c){return db[_0xb9fe('0x29')]['create'](_0x572083[_0xb9fe('0x49')],{})[_0xb9fe('0x25')](function(_0x451e2a){var _0xca115f=_0x572083[_0xb9fe('0x4a')]['get']({'plain':!![]});if(!_0xca115f)throw new Error(_0xb9fe('0x4b'));if(_0xca115f[_0xb9fe('0x4c')]===_0xb9fe('0x4a')){var _0x17c13a=_0x451e2a['get']({'plain':!![]});var _0x23d606=_0xb9fe('0x4d');return db[_0xb9fe('0x4e')][_0xb9fe('0x47')]({'where':{'name':_0x23d606,'userProfileId':_0xca115f[_0xb9fe('0x4f')]},'raw':!![]})[_0xb9fe('0x25')](function(_0x854f87){if(_0x854f87&&_0x854f87[_0xb9fe('0x50')]===0x0){return db[_0xb9fe('0x27')][_0xb9fe('0x48')]({'name':_0x17c13a['name'],'resourceId':_0x17c13a['id'],'type':_0xb9fe('0x51'),'sectionId':_0x854f87['id']},{})[_0xb9fe('0x25')](function(){return _0x451e2a;});}else{return _0x451e2a;}})[_0xb9fe('0x44')](function(_0x15cd91){logger[_0xb9fe('0x52')](_0xb9fe('0x53'),_0x15cd91);throw _0x15cd91;});}return _0x451e2a;})[_0xb9fe('0x25')](respondWithResult(_0x3f6f3c,0xc9))[_0xb9fe('0x44')](handleError(_0x3f6f3c,null));};exports[_0xb9fe('0x23')]=function(_0x288f8e,_0x15f4f3){if(_0x288f8e[_0xb9fe('0x49')]['id']){delete _0x288f8e[_0xb9fe('0x49')]['id'];}return db['AnalyticCustomReport'][_0xb9fe('0x47')]({'where':{'id':_0x288f8e[_0xb9fe('0x54')]['id']}})[_0xb9fe('0x25')](handleEntityNotFound(_0x15f4f3,null))['then'](saveUpdates(_0x288f8e[_0xb9fe('0x49')],null))[_0xb9fe('0x25')](respondWithResult(_0x15f4f3,null))[_0xb9fe('0x44')](handleError(_0x15f4f3,null));};exports[_0xb9fe('0x24')]=function(_0x4bdac3,_0x4c847c){return db[_0xb9fe('0x29')]['find']({'where':{'id':_0x4bdac3[_0xb9fe('0x54')]['id']}})[_0xb9fe('0x25')](handleEntityNotFound(_0x4c847c,null))[_0xb9fe('0x25')](removeEntity(_0x4c847c,null))[_0xb9fe('0x44')](handleError(_0x4c847c,null));};exports[_0xb9fe('0x55')]=function(_0x1e0e25,_0x110804){var _0x524246=0xa;var _0x248154=[_0xb9fe('0x56'),'left_join',_0xb9fe('0x57'),_0xb9fe('0x58')];var _0xb68519={'SUM':'SUM(%s)','COUNT':_0xb9fe('0x59'),'COUNT DISTINCT':_0xb9fe('0x5a'),'MAX':'MAX(%s)','MIN':_0xb9fe('0x5b'),'AVG':_0xb9fe('0x5c'),'GROUP_CONCAT':_0xb9fe('0x5d'),'GROUP_CONCAT ASC':_0xb9fe('0x5e'),'GROUP_CONCAT DESC':_0xb9fe('0x5f')};var _0x38a3a7={'SEC_TO_TIME':_0xb9fe('0x60'),'DATE':_0xb9fe('0x61'),'HOUR':_0xb9fe('0x62'),'ROUND':_0xb9fe('0x63'),'UNIX_TIMESTAMP':_0xb9fe('0x64')};var _0x635d4a=function(_0x1d1457){return!_['includes']([_0xb9fe('0x65'),_0xb9fe('0x66'),_0xb9fe('0x67'),_0xb9fe('0x68')],_0x1d1457);};var _0x32b1d2=function(_0x4c9d34){if(!_0x4c9d34||!_0x4c9d34['rules'][_0xb9fe('0x46')]){return'';}for(var _0x3b6294='(',_0x1db89c=0x0;_0x1db89c<_0x4c9d34['rules'][_0xb9fe('0x46')];_0x1db89c+=0x1){_0x1db89c>0x0&&(_0x3b6294+='\x20'+_0x4c9d34[_0xb9fe('0x69')]+'\x20');_0x3b6294+=_0x4c9d34[_0xb9fe('0x6a')][_0x1db89c][_0xb9fe('0x6b')]?_0x32b1d2(_0x4c9d34['rules'][_0x1db89c]['group']):_0x4c9d34[_0xb9fe('0x6a')][_0x1db89c][_0xb9fe('0x6c')]+'\x20'+_0x4c9d34[_0xb9fe('0x6a')][_0x1db89c][_0xb9fe('0x6d')]+(_0x635d4a(_0x4c9d34[_0xb9fe('0x6a')][_0x1db89c][_0xb9fe('0x6d')])?'\x20'+_0x4c9d34[_0xb9fe('0x6a')][_0x1db89c]['value']:'');}return _0x3b6294+')';};var _0x30366e={'where':{'id':_0x1e0e25['params']['id']}},_0x526343,_0x4d356d,_0x3adcae,_0x2684c6,_0x4970dd;_0x30366e=_[_0xb9fe('0x3e')]({},_0x30366e,_0x1e0e25[_0xb9fe('0x3f')]);return db[_0xb9fe('0x29')][_0xb9fe('0x47')](_0x30366e)[_0xb9fe('0x25')](function(_0x1f62f6){if(_0x1f62f6){_0x526343=_0x1f62f6;return _0x1f62f6[_0xb9fe('0x6e')]();}return null;})[_0xb9fe('0x25')](function(_0x592da4){if(_0x592da4){if(!_0x592da4[_0xb9fe('0x46')]){throw new db[(_0xb9fe('0x6f'))][(_0xb9fe('0x70'))](_0xb9fe('0x71'),0x193);}_0x4d356d=_0x592da4;return db['AnalyticMetric'][_0xb9fe('0x42')]({'raw':!![]});}return null;})[_0xb9fe('0x25')](function(_0x214eee){if(_0x214eee){_0x3adcae=_[_0xb9fe('0x72')](_0x214eee,'id');var _0x41ddba;var _0x13dbb8=squel['select']();_0x13dbb8[_0xb9fe('0x73')](_0x526343[_0xb9fe('0x74')]);for(var _0x3788d8=0x0;_0x3788d8<_0x4d356d[_0xb9fe('0x46')];_0x3788d8+=0x1){_0x41ddba=_0x4d356d[_0x3788d8]['MetricId']?_0x3adcae[_0x4d356d[_0x3788d8][_0xb9fe('0x75')]]['metric']:_0x4d356d[_0x3788d8][_0xb9fe('0x6c')];_0x41ddba=_0x4d356d[_0x3788d8][_0xb9fe('0x76')]?_[_0xb9fe('0x77')](_0xb68519[_0x4d356d[_0x3788d8][_0xb9fe('0x76')]],'%s',_0x41ddba):_0x41ddba;_0x41ddba=_0x4d356d[_0x3788d8][_0xb9fe('0x78')]?_[_0xb9fe('0x77')](_0x38a3a7[_0x4d356d[_0x3788d8][_0xb9fe('0x78')]],'%s',_0x41ddba):_0x41ddba;if(_0x4d356d[_0x3788d8]['groupBy']){_0x13dbb8[_0xb9fe('0x6b')](_0x41ddba);}_0x4d356d[_0x3788d8][_0xb9fe('0x79')]&&_0x13dbb8[_0xb9fe('0x37')](_0x41ddba,_0x4d356d[_0x3788d8][_0xb9fe('0x79')]===_0xb9fe('0x7a')?![]:!![]);_0x13dbb8['field'](_0x41ddba,_0x4d356d[_0x3788d8]['alias']||_0x41ddba);}if(_0x526343[_0xb9fe('0x7b')]){_0x526343[_0xb9fe('0x7b')]=JSON['parse'](_0x526343['joins']);for(var _0x28b324=0x0;_0x28b324<_0x526343[_0xb9fe('0x7b')][_0xb9fe('0x46')];_0x28b324+=0x1){if(_0x526343[_0xb9fe('0x7b')][_0x28b324]['type']&&_['includes'](_0x248154,_0x526343[_0xb9fe('0x7b')][_0x28b324][_0xb9fe('0x2c')])&&_0x526343[_0xb9fe('0x7b')][_0x28b324][_0xb9fe('0x7c')]&&_0x526343[_0xb9fe('0x7b')][_0x28b324][_0xb9fe('0x7d')]&&_0x526343[_0xb9fe('0x7b')][_0x28b324][_0xb9fe('0x7e')]){_0x13dbb8[_0x526343[_0xb9fe('0x7b')][_0x28b324][_0xb9fe('0x2c')]](_0x526343['joins'][_0x28b324][_0xb9fe('0x7d')],null,util[_0xb9fe('0x78')]('%s.%s\x20=\x20%s.%s',_0x526343['table'],_0x526343[_0xb9fe('0x7b')][_0x28b324]['parentKey'],_0x526343[_0xb9fe('0x7b')][_0x28b324]['foreignTable'],_0x526343[_0xb9fe('0x7b')][_0x28b324]['foreignKey']));}}}if(_0x526343[_0xb9fe('0x7f')]){_0x526343['conditions']=JSON[_0xb9fe('0x80')](_0x526343[_0xb9fe('0x7f')]);_0x13dbb8[_0xb9fe('0x39')](_0x32b1d2(_0x526343[_0xb9fe('0x7f')][_0xb9fe('0x6b')]));}_0x4970dd=_0x13dbb8[_0xb9fe('0x81')]();_0x13dbb8[_0xb9fe('0x1f')](_0x524246);_0x13dbb8[_0xb9fe('0x1c')](0x0);logger[_0xb9fe('0x82')](_0xb9fe('0x83'),_0x13dbb8['toString']());return dbH[_0xb9fe('0x84')][_0xb9fe('0x34')](_0x13dbb8[_0xb9fe('0x85')](),{'type':dbH['sequelize'][_0xb9fe('0x86')][_0xb9fe('0x87')]});}})[_0xb9fe('0x25')](respondWithResult(_0x110804,null))['catch'](handleError(_0x110804,null));};function runReport(_0x2ab114,_0x2b7158,_0x1a0e6d){var _0x178747=_0x2b7158[_0xb9fe('0x28')];var _0x10588d=0xa;var _0x23206f=[_0xb9fe('0x56'),_0xb9fe('0x88'),'right_join','cross_join'];var _0x389a32={'SUM':_0xb9fe('0x89'),'COUNT':_0xb9fe('0x59'),'COUNT DISTINCT':_0xb9fe('0x5a'),'MAX':_0xb9fe('0x8a'),'MIN':_0xb9fe('0x5b'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xb9fe('0x5e'),'GROUP_CONCAT DESC':_0xb9fe('0x5f')};var _0xf21778={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xb9fe('0x64')};var _0x28e714=function(_0xd7a4dd){return!_[_0xb9fe('0x8b')]([_0xb9fe('0x65'),'IS\x20NOT\x20NULL',_0xb9fe('0x67'),_0xb9fe('0x68')],_0xd7a4dd);};var _0x1128e0=function(_0x27d5c1){if(!_0x27d5c1||!_0x27d5c1['rules']['length']){return'';}for(var _0x3d3011='(',_0x48230c=0x0;_0x48230c<_0x27d5c1[_0xb9fe('0x6a')][_0xb9fe('0x46')];_0x48230c+=0x1){_0x48230c>0x0&&(_0x3d3011+='\x20'+_0x27d5c1[_0xb9fe('0x69')]+'\x20');_0x3d3011+=_0x27d5c1['rules'][_0x48230c][_0xb9fe('0x6b')]?_0x1128e0(_0x27d5c1[_0xb9fe('0x6a')][_0x48230c][_0xb9fe('0x6b')]):_0x27d5c1['rules'][_0x48230c][_0xb9fe('0x6c')]+'\x20'+_0x27d5c1[_0xb9fe('0x6a')][_0x48230c][_0xb9fe('0x6d')]+(_0x28e714(_0x27d5c1[_0xb9fe('0x6a')][_0x48230c][_0xb9fe('0x6d')])?'\x20'+_0x27d5c1[_0xb9fe('0x6a')][_0x48230c]['value']:'');}return _0x3d3011+')';};var _0x289e43={'where':{'id':_0x2ab114['id']}},_0x5e9974,_0xf94bd9,_0x2d16f4,_0x25efa7,_0x37e70e;_0x289e43=_['merge']({},_0x289e43,_0x1a0e6d);return db[_0xb9fe('0x29')]['find'](_0x289e43)[_0xb9fe('0x25')](function(_0x2a25e3){if(_0x2a25e3){_0x5e9974=_0x2a25e3;return _0x2a25e3[_0xb9fe('0x6e')]();}return null;})[_0xb9fe('0x25')](function(_0x34302c){if(_0x34302c){if(!_0x34302c[_0xb9fe('0x46')]){throw new db['Sequelize'][(_0xb9fe('0x70'))](_0xb9fe('0x71'),0x193);}_0xf94bd9=_0x34302c;return db[_0xb9fe('0x8c')][_0xb9fe('0x42')]({'raw':!![]});}return null;})['then'](function(_0x4c40dd){if(_0x4c40dd){_0x2d16f4=_[_0xb9fe('0x72')](_0x4c40dd,'id');var _0xa431d6;var _0x4588ef=squel[_0xb9fe('0x8d')]();_0x4588ef[_0xb9fe('0x73')](_0x5e9974['table']);for(var _0xf8fb62=0x0;_0xf8fb62<_0xf94bd9[_0xb9fe('0x46')];_0xf8fb62+=0x1){_0xa431d6=_0xf94bd9[_0xf8fb62][_0xb9fe('0x75')]?_0x2d16f4[_0xf94bd9[_0xf8fb62]['MetricId']][_0xb9fe('0x8e')]:_0xf94bd9[_0xf8fb62][_0xb9fe('0x6c')];_0xa431d6=_0xf94bd9[_0xf8fb62][_0xb9fe('0x76')]?_[_0xb9fe('0x77')](_0x389a32[_0xf94bd9[_0xf8fb62][_0xb9fe('0x76')]],'%s',_0xa431d6):_0xa431d6;_0xa431d6=_0xf94bd9[_0xf8fb62][_0xb9fe('0x78')]?_[_0xb9fe('0x77')](_0xf21778[_0xf94bd9[_0xf8fb62][_0xb9fe('0x78')]],'%s',_0xa431d6):_0xa431d6;if(_0xf94bd9[_0xf8fb62]['groupBy']){_0x4588ef[_0xb9fe('0x6b')](_0xa431d6);}_0xf94bd9[_0xf8fb62][_0xb9fe('0x79')]&&_0x4588ef[_0xb9fe('0x37')](_0xa431d6,_0xf94bd9[_0xf8fb62]['orderBy']===_0xb9fe('0x7a')?![]:!![]);_0x4588ef[_0xb9fe('0x6c')](_0xa431d6,_0xf94bd9[_0xf8fb62]['alias']||_0xa431d6);}if(_0x5e9974['joins']){_0x5e9974[_0xb9fe('0x7b')]=JSON['parse'](_0x5e9974[_0xb9fe('0x7b')]);for(var _0x1cffb7=0x0;_0x1cffb7<_0x5e9974[_0xb9fe('0x7b')][_0xb9fe('0x46')];_0x1cffb7+=0x1){if(_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7][_0xb9fe('0x2c')]&&_[_0xb9fe('0x8b')](_0x23206f,_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7][_0xb9fe('0x2c')])&&_0x5e9974['joins'][_0x1cffb7][_0xb9fe('0x7c')]&&_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7][_0xb9fe('0x7d')]&&_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7][_0xb9fe('0x7e')]){_0x4588ef[_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7]['type']](_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7][_0xb9fe('0x7d')],null,util['format'](_0xb9fe('0x8f'),_0x5e9974[_0xb9fe('0x74')],_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7][_0xb9fe('0x7c')],_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7][_0xb9fe('0x7d')],_0x5e9974[_0xb9fe('0x7b')][_0x1cffb7][_0xb9fe('0x7e')]));}}}if(_0x5e9974[_0xb9fe('0x7f')]){_0x5e9974[_0xb9fe('0x7f')]=JSON['parse'](_0x5e9974['conditions']);_0x4588ef[_0xb9fe('0x39')](_0x1128e0(_0x5e9974[_0xb9fe('0x7f')][_0xb9fe('0x6b')]));}_0x37e70e=_0x4588ef[_0xb9fe('0x81')]();_0x4588ef[_0xb9fe('0x1f')](_0x10588d);_0x4588ef[_0xb9fe('0x1c')](0x0);return;}})[_0xb9fe('0x25')](function(){if(_0x2b7158[_0xb9fe('0x90')]==='web'){return null;}var _0x421ad2=_[_0xb9fe('0x3e')](_0x2b7158,{'name':_0x2b7158[_0xb9fe('0x91')]||_0x2b7158['name']||_0x5e9974[_0xb9fe('0x28')],'basename':_0x178747,'savename':util[_0xb9fe('0x78')](_0xb9fe('0x92'),_0x2b7158[_0xb9fe('0x28')]||_0x5e9974[_0xb9fe('0x28')],require(_0xb9fe('0x93'))[_0xb9fe('0x94')](0x4),_0x2b7158[_0xb9fe('0x90')]||_0xb9fe('0x95')),'reportId':_0x5e9974['id'],'reportType':'custom'});return db['AnalyticExtractedReport'][_0xb9fe('0x48')](_0x421ad2,{'raw':!![]});})['then'](function(_0x36e603){if(_0x5e9974[_0xb9fe('0x74')]===_0xb9fe('0x96')){_0x37e70e[_0xb9fe('0x39')](_0x5e9974[_0xb9fe('0x74')]+_0xb9fe('0x97'),_0x2b7158['startDate'],_0x2b7158[_0xb9fe('0x98')]);}else{_0x37e70e[_0xb9fe('0x39')](_0x5e9974['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2b7158[_0xb9fe('0x99')],_0x2b7158[_0xb9fe('0x98')]);}if(_0x36e603){logger['info'](_0xb9fe('0x9a'),_0x37e70e[_0xb9fe('0x85')]());require(_0xb9fe('0x9b'))[_0xb9fe('0x9c')](path[_0xb9fe('0x56')](__dirname,_0xb9fe('0x9d'),_0x36e603['output']),[_0x36e603['id'],_0x37e70e[_0xb9fe('0x85')](),path['join'](__dirname,'../../files/reports',_0x36e603[_0xb9fe('0x9e')]),_0x178747]);return _0x36e603;}else{var _0x186d17=squel[_0xb9fe('0x8d')]();_0x186d17[_0xb9fe('0x73')]('('+_0x37e70e[_0xb9fe('0x85')]()+')','countTable');_0x186d17[_0xb9fe('0x6c')](_0xb9fe('0x9f'),_0xb9fe('0x1e'));_0x37e70e[_0xb9fe('0x1f')](_0x2b7158[_0xb9fe('0x1f')]||_0x10588d);_0x37e70e[_0xb9fe('0x1c')](_0x2b7158[_0xb9fe('0x1c')]||0x0);return dbH[_0xb9fe('0x84')][_0xb9fe('0x34')](_0x186d17[_0xb9fe('0x85')](),{'type':dbH[_0xb9fe('0x84')][_0xb9fe('0x86')][_0xb9fe('0x87')]})['then'](function(_0x3fcab5){if(!_0x3fcab5[_0xb9fe('0x46')]){_0x25efa7=0x0;}else{_0x25efa7=_0x3fcab5[0x0][_0xb9fe('0x1e')]||0x0;}return dbH[_0xb9fe('0x84')][_0xb9fe('0x34')](_0x37e70e[_0xb9fe('0x85')](),{'type':dbH['sequelize'][_0xb9fe('0x86')][_0xb9fe('0x87')]});})['then'](function(_0x2cc240){return{'rows':_0x2cc240||[],'count':_0x25efa7};});}});}exports['run']=function(_0x2fe34d,_0x4d0c1d){return runReport(_0x2fe34d[_0xb9fe('0x54')],_0x2fe34d['query'],_0x2fe34d[_0xb9fe('0x3f')])[_0xb9fe('0x25')](respondWithResult(_0x4d0c1d,null))[_0xb9fe('0x44')](handleError(_0x4d0c1d,null));};exports['runReport']=runReport;exports['query']=function(_0x30bf41,_0x359d49){var _0x642ec4=0xa;var _0x1324c7=[_0xb9fe('0x56'),_0xb9fe('0x88'),_0xb9fe('0x57'),'cross_join'];var _0x2d0a78={'SUM':'SUM(%s)','COUNT':_0xb9fe('0x59'),'COUNT DISTINCT':_0xb9fe('0x5a'),'MAX':_0xb9fe('0x8a'),'MIN':_0xb9fe('0x5b'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xb9fe('0x5d'),'GROUP_CONCAT ASC':_0xb9fe('0x5e'),'GROUP_CONCAT DESC':_0xb9fe('0x5f')};var _0x587ae7={'SEC_TO_TIME':_0xb9fe('0x60'),'DATE':_0xb9fe('0x61'),'HOUR':_0xb9fe('0x62'),'ROUND':_0xb9fe('0x63'),'UNIX_TIMESTAMP':_0xb9fe('0x64')};var _0x52819e=function(_0x3bb5a5){return!_[_0xb9fe('0x8b')]([_0xb9fe('0x65'),_0xb9fe('0x66'),'IS\x20EMPTY',_0xb9fe('0x68')],_0x3bb5a5);};var _0x86aafa=function(_0x1aa7e8){if(!_0x1aa7e8||!_0x1aa7e8[_0xb9fe('0x6a')][_0xb9fe('0x46')]){return'';}for(var _0x46df6b='(',_0x1c4829=0x0;_0x1c4829<_0x1aa7e8[_0xb9fe('0x6a')][_0xb9fe('0x46')];_0x1c4829+=0x1){_0x1c4829>0x0&&(_0x46df6b+='\x20'+_0x1aa7e8[_0xb9fe('0x69')]+'\x20');_0x46df6b+=_0x1aa7e8[_0xb9fe('0x6a')][_0x1c4829]['group']?_0x86aafa(_0x1aa7e8[_0xb9fe('0x6a')][_0x1c4829]['group']):_0x1aa7e8[_0xb9fe('0x6a')][_0x1c4829][_0xb9fe('0x6c')]+'\x20'+_0x1aa7e8['rules'][_0x1c4829][_0xb9fe('0x6d')]+(_0x52819e(_0x1aa7e8[_0xb9fe('0x6a')][_0x1c4829][_0xb9fe('0x6d')])?'\x20'+_0x1aa7e8[_0xb9fe('0x6a')][_0x1c4829][_0xb9fe('0xa0')]:'');}return _0x46df6b+')';};var _0x2dbeed={'where':{'id':_0x30bf41[_0xb9fe('0x54')]['id']}},_0x53b8f0,_0x32203d,_0x4a86d7,_0x5d5b0e,_0x22efc8;_0x2dbeed=_[_0xb9fe('0x3e')]({},_0x2dbeed,_0x30bf41[_0xb9fe('0x3f')]);return db[_0xb9fe('0x29')][_0xb9fe('0x47')](_0x2dbeed)['then'](function(_0x51947b){if(_0x51947b){_0x53b8f0=_0x51947b;return _0x51947b[_0xb9fe('0x6e')]();}return null;})[_0xb9fe('0x25')](function(_0x517238){if(_0x517238){if(!_0x517238[_0xb9fe('0x46')]){throw new db[(_0xb9fe('0x6f'))]['ValidationErrorItem'](_0xb9fe('0x71'),0x193);}_0x32203d=_0x517238;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0xb9fe('0x25')](function(_0x23a547){if(_0x23a547){_0x4a86d7=_[_0xb9fe('0x72')](_0x23a547,'id');var _0x8538de;var _0xd33570=squel[_0xb9fe('0x8d')]();_0xd33570[_0xb9fe('0x73')](_0x53b8f0[_0xb9fe('0x74')]);for(var _0x45144c=0x0;_0x45144c<_0x32203d[_0xb9fe('0x46')];_0x45144c+=0x1){_0x8538de=_0x32203d[_0x45144c][_0xb9fe('0x75')]?_0x4a86d7[_0x32203d[_0x45144c]['MetricId']][_0xb9fe('0x8e')]:_0x32203d[_0x45144c][_0xb9fe('0x6c')];_0x8538de=_0x32203d[_0x45144c][_0xb9fe('0x76')]?_[_0xb9fe('0x77')](_0x2d0a78[_0x32203d[_0x45144c][_0xb9fe('0x76')]],'%s',_0x8538de):_0x8538de;_0x8538de=_0x32203d[_0x45144c][_0xb9fe('0x78')]?_[_0xb9fe('0x77')](_0x587ae7[_0x32203d[_0x45144c]['format']],'%s',_0x8538de):_0x8538de;if(_0x32203d[_0x45144c][_0xb9fe('0xa1')]){_0xd33570[_0xb9fe('0x6b')](_0x8538de);}_0x32203d[_0x45144c][_0xb9fe('0x79')]&&_0xd33570[_0xb9fe('0x37')](_0x8538de,_0x32203d[_0x45144c]['orderBy']==='DESC'?![]:!![]);_0xd33570['field'](_0x8538de,_0x32203d[_0x45144c][_0xb9fe('0xa2')]||_0x8538de);}if(_0x53b8f0[_0xb9fe('0x7b')]){_0x53b8f0[_0xb9fe('0x7b')]=JSON['parse'](_0x53b8f0[_0xb9fe('0x7b')]);for(var _0x5c30e0=0x0;_0x5c30e0<_0x53b8f0[_0xb9fe('0x7b')]['length'];_0x5c30e0+=0x1){if(_0x53b8f0['joins'][_0x5c30e0][_0xb9fe('0x2c')]&&_[_0xb9fe('0x8b')](_0x1324c7,_0x53b8f0[_0xb9fe('0x7b')][_0x5c30e0]['type'])&&_0x53b8f0['joins'][_0x5c30e0][_0xb9fe('0x7c')]&&_0x53b8f0['joins'][_0x5c30e0][_0xb9fe('0x7d')]&&_0x53b8f0[_0xb9fe('0x7b')][_0x5c30e0][_0xb9fe('0x7e')]){_0xd33570[_0x53b8f0[_0xb9fe('0x7b')][_0x5c30e0][_0xb9fe('0x2c')]](_0x53b8f0['joins'][_0x5c30e0][_0xb9fe('0x7d')],null,util[_0xb9fe('0x78')](_0xb9fe('0x8f'),_0x53b8f0['table'],_0x53b8f0[_0xb9fe('0x7b')][_0x5c30e0]['parentKey'],_0x53b8f0[_0xb9fe('0x7b')][_0x5c30e0]['foreignTable'],_0x53b8f0[_0xb9fe('0x7b')][_0x5c30e0]['foreignKey']));}}}if(_0x53b8f0[_0xb9fe('0x7f')]){_0x53b8f0[_0xb9fe('0x7f')]=JSON[_0xb9fe('0x80')](_0x53b8f0['conditions']);_0xd33570[_0xb9fe('0x39')](_0x86aafa(_0x53b8f0[_0xb9fe('0x7f')][_0xb9fe('0x6b')]));}_0x22efc8=_0xd33570[_0xb9fe('0x81')]();_0xd33570[_0xb9fe('0x1f')](_0x642ec4);_0xd33570[_0xb9fe('0x1c')](0x0);logger[_0xb9fe('0x82')](_0xb9fe('0x83'),_0xd33570[_0xb9fe('0x85')]());return dbH[_0xb9fe('0x84')]['query'](_0xd33570['toString'](),{'type':dbH[_0xb9fe('0x84')]['QueryTypes'][_0xb9fe('0x87')]});}})[_0xb9fe('0x25')](function(){return{'sql':_0x22efc8['toString']()};})[_0xb9fe('0x25')](respondWithResult(_0x359d49,null))[_0xb9fe('0x44')](handleError(_0x359d49,null));};