Built motion from commit (unavailable).|2.5.16
[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 _0x39c8=['DATE(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','length','rules','group','field','condition','value','ValidationErrorItem','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','alias','joins','parse','parentKey','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','join','COUNT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','IS\x20EMPTY','operator','Please\x20insert\x20at\x20least\x20one\x20field','DESC','fullPath','%s-%s.%s','randomstring','generate','output','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','child_process','../../components/export/','../../files/reports','countTable','COUNT(*)','SELECT','run','runReport','ROUND(%s)','getFields','Sequelize','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','end','status','json','offset','set','Content-Range','apply','reject','save','then','destroy','get','CustomReports','UserProfileResource','error','stack','send','index','AnalyticCustomReport','rawAttributes','fieldName','type','map','name','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','limit','order','sort','where','pick','merge','VIRTUAL','options','count','includeAll','catch','params','include','find','create','user','role','Reports','UserProfileSection','userProfileId','autoAssociation','body','left_join','right_join','cross_join','SUM(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)'];(function(_0x37c987,_0x481484){var _0x213a8a=function(_0xee1ea0){while(--_0xee1ea0){_0x37c987['push'](_0x37c987['shift']());}};_0x213a8a(++_0x481484);}(_0x39c8,0xe9));var _0x839c=function(_0x28b0a1,_0x99bd0a){_0x28b0a1=_0x28b0a1-0x0;var _0x21470c=_0x39c8[_0x28b0a1];return _0x21470c;};'use strict';var pdf=require(_0x839c('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x839c('0x1'));var zipdir=require(_0x839c('0x2'));var jsonpatch=require(_0x839c('0x3'));var rp=require('request-promise');var moment=require(_0x839c('0x4'));var BPromise=require(_0x839c('0x5'));var Mustache=require(_0x839c('0x6'));var util=require(_0x839c('0x7'));var path=require(_0x839c('0x8'));var sox=require(_0x839c('0x9'));var csv=require(_0x839c('0xa'));var ejs=require(_0x839c('0xb'));var fs=require('fs');var _=require(_0x839c('0xc'));var squel=require(_0x839c('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x839c('0xa'));var querystring=require('querystring');var Papa=require(_0x839c('0xe'));var Redis=require(_0x839c('0xf'));var authService=require(_0x839c('0x10'));var qs=require(_0x839c('0x11'));var as=require(_0x839c('0x12'));var hardwareService=require(_0x839c('0x13'));var logger=require(_0x839c('0x14'))(_0x839c('0x15'));var utils=require(_0x839c('0x16'));var config=require(_0x839c('0x17'));var licenseUtil=require(_0x839c('0x18'));var db=require('../../mysqldb')['db'];var dbH=require(_0x839c('0x19'))[_0x839c('0x1a')];function respondWithStatusCode(_0x7e5bd,_0x29f26a){_0x29f26a=_0x29f26a||0xcc;return function(_0x56069d){if(_0x56069d){return _0x7e5bd[_0x839c('0x1b')](_0x29f26a);}return _0x7e5bd['status'](_0x29f26a)[_0x839c('0x1c')]();};}function respondWithResult(_0x1238ca,_0x1e3882){_0x1e3882=_0x1e3882||0xc8;return function(_0x2c9330){if(_0x2c9330){return _0x1238ca[_0x839c('0x1d')](_0x1e3882)[_0x839c('0x1e')](_0x2c9330);}};}function respondWithFilteredResult(_0x7a98d7,_0x41a5a4){return function(_0x12249f){if(_0x12249f){var _0x4e325c=_0x12249f['count'],_0x35cd59=_0x41a5a4[_0x839c('0x1f')],_0x9a68b3=_0x41a5a4[_0x839c('0x1f')]+_0x41a5a4['limit'],_0x25765a;if(_0x9a68b3>=_0x4e325c){_0x9a68b3=_0x4e325c;_0x25765a=0xc8;}else{_0x25765a=0xce;}_0x7a98d7[_0x839c('0x1d')](_0x25765a);return _0x7a98d7[_0x839c('0x20')](_0x839c('0x21'),_0x35cd59+'-'+_0x9a68b3+'/'+_0x4e325c)['json'](_0x12249f);}return null;};}function patchUpdates(_0x25d7cb){return function(_0x19d4fb){try{jsonpatch[_0x839c('0x22')](_0x19d4fb,_0x25d7cb,!![]);}catch(_0x4495e2){return BPromise[_0x839c('0x23')](_0x4495e2);}return _0x19d4fb[_0x839c('0x24')]();};}function saveUpdates(_0x5b20ef,_0x44783d){return function(_0x1baced){if(_0x1baced){return _0x1baced['update'](_0x5b20ef)[_0x839c('0x25')](function(_0x4a83dc){return _0x4a83dc;});}return null;};}function removeEntity(_0x5d72e7,_0x270965){return function(_0x329937){if(_0x329937){return _0x329937[_0x839c('0x26')]()[_0x839c('0x25')](function(){var _0xe7f431=_0x329937[_0x839c('0x27')]({'plain':!![]});var _0x3bd086=_0x839c('0x28');return db[_0x839c('0x29')][_0x839c('0x26')]({'where':{'type':_0x3bd086,'resourceId':_0xe7f431['id']}})[_0x839c('0x25')](function(){return _0x329937;});})[_0x839c('0x25')](function(){_0x5d72e7[_0x839c('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4a4926,_0x2dfca2){return function(_0xfe1092){if(!_0xfe1092){_0x4a4926[_0x839c('0x1b')](0x194);}return _0xfe1092;};}function handleError(_0x45d493,_0x323087){_0x323087=_0x323087||0x1f4;return function(_0x42fd7c){logger[_0x839c('0x2a')](_0x42fd7c[_0x839c('0x2b')]);if(_0x42fd7c['name']){delete _0x42fd7c['name'];}_0x45d493[_0x839c('0x1d')](_0x323087)[_0x839c('0x2c')](_0x42fd7c);};}exports[_0x839c('0x2d')]=function(_0x211625,_0x180256){var _0x2ff921={},_0x5b2636={},_0x54d6b1={'count':0x0,'rows':[]};var _0x5757ca=_['map'](db[_0x839c('0x2e')][_0x839c('0x2f')],function(_0x4ea753){return{'name':_0x4ea753[_0x839c('0x30')],'type':_0x4ea753[_0x839c('0x31')]['key']};});_0x5b2636['model']=_[_0x839c('0x32')](_0x5757ca,_0x839c('0x33'));_0x5b2636[_0x839c('0x34')]=_[_0x839c('0x35')](_0x211625['query']);_0x5b2636[_0x839c('0x36')]=_['intersection'](_0x5b2636['model'],_0x5b2636['query']);_0x2ff921['attributes']=_[_0x839c('0x37')](_0x5b2636[_0x839c('0x38')],qs[_0x839c('0x39')](_0x211625[_0x839c('0x34')][_0x839c('0x39')]));_0x2ff921[_0x839c('0x3a')]=_0x2ff921['attributes']['length']?_0x2ff921[_0x839c('0x3a')]:_0x5b2636[_0x839c('0x38')];if(!_0x211625[_0x839c('0x34')][_0x839c('0x3b')]('nolimit')){_0x2ff921[_0x839c('0x3c')]=qs[_0x839c('0x3c')](_0x211625['query'][_0x839c('0x3c')]);_0x2ff921[_0x839c('0x1f')]=qs['offset'](_0x211625[_0x839c('0x34')]['offset']);}_0x2ff921[_0x839c('0x3d')]=qs[_0x839c('0x3e')](_0x211625['query'][_0x839c('0x3e')]);_0x2ff921[_0x839c('0x3f')]=qs[_0x839c('0x36')](_[_0x839c('0x40')](_0x211625[_0x839c('0x34')],_0x5b2636['filters']),_0x5757ca);if(_0x211625[_0x839c('0x34')]['filter']){_0x2ff921[_0x839c('0x3f')]=_[_0x839c('0x41')](_0x2ff921[_0x839c('0x3f')],{'$or':_[_0x839c('0x32')](_0x5757ca,function(_0x32c259){if(_0x32c259[_0x839c('0x31')]!==_0x839c('0x42')){var _0x4470d6={};_0x4470d6[_0x32c259[_0x839c('0x33')]]={'$like':'%'+_0x211625[_0x839c('0x34')]['filter']+'%'};return _0x4470d6;}})});}_0x2ff921=_['merge']({},_0x2ff921,_0x211625[_0x839c('0x43')]);var _0x5b8faa={'where':_0x2ff921[_0x839c('0x3f')]};return db['AnalyticCustomReport'][_0x839c('0x44')](_0x5b8faa)[_0x839c('0x25')](function(_0x403b88){_0x54d6b1[_0x839c('0x44')]=_0x403b88;if(_0x211625[_0x839c('0x34')][_0x839c('0x45')]){_0x2ff921['include']=[{'all':!![]}];}return db['AnalyticCustomReport']['findAll'](_0x2ff921);})[_0x839c('0x25')](function(_0xbcc191){_0x54d6b1['rows']=_0xbcc191;return _0x54d6b1;})[_0x839c('0x25')](respondWithFilteredResult(_0x180256,_0x2ff921))[_0x839c('0x46')](handleError(_0x180256,null));};exports['show']=function(_0x33f7a1,_0x19d2d7){var _0x52919b={'raw':![],'where':{'id':_0x33f7a1[_0x839c('0x47')]['id']}},_0x5e3a7c={};_0x5e3a7c[_0x839c('0x38')]=_[_0x839c('0x35')](db[_0x839c('0x2e')][_0x839c('0x2f')]);_0x5e3a7c[_0x839c('0x34')]=_[_0x839c('0x35')](_0x33f7a1[_0x839c('0x34')]);_0x5e3a7c['filters']=_[_0x839c('0x37')](_0x5e3a7c[_0x839c('0x38')],_0x5e3a7c[_0x839c('0x34')]);_0x52919b['attributes']=_['intersection'](_0x5e3a7c[_0x839c('0x38')],qs['fields'](_0x33f7a1[_0x839c('0x34')][_0x839c('0x39')]));_0x52919b[_0x839c('0x3a')]=_0x52919b[_0x839c('0x3a')]['length']?_0x52919b[_0x839c('0x3a')]:_0x5e3a7c[_0x839c('0x38')];if(_0x33f7a1[_0x839c('0x34')]['includeAll']){_0x52919b[_0x839c('0x48')]=[{'all':!![]}];}_0x52919b=_[_0x839c('0x41')]({},_0x52919b,_0x33f7a1[_0x839c('0x43')]);return db['AnalyticCustomReport'][_0x839c('0x49')](_0x52919b)[_0x839c('0x25')](handleEntityNotFound(_0x19d2d7,null))[_0x839c('0x25')](respondWithResult(_0x19d2d7,null))[_0x839c('0x46')](handleError(_0x19d2d7,null));};exports[_0x839c('0x4a')]=function(_0x1f87ff,_0xb3654a){return db[_0x839c('0x2e')][_0x839c('0x4a')](_0x1f87ff['body'],{})[_0x839c('0x25')](function(_0x1c672b){var _0x5de251=_0x1f87ff[_0x839c('0x4b')][_0x839c('0x27')]({'plain':!![]});if(!_0x5de251)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5de251[_0x839c('0x4c')]===_0x839c('0x4b')){var _0x3d6c92=_0x1c672b[_0x839c('0x27')]({'plain':!![]});var _0x1fbf55=_0x839c('0x4d');return db[_0x839c('0x4e')][_0x839c('0x49')]({'where':{'name':_0x1fbf55,'userProfileId':_0x5de251[_0x839c('0x4f')]},'raw':!![]})[_0x839c('0x25')](function(_0x63297a){if(_0x63297a&&_0x63297a[_0x839c('0x50')]===0x0){return db[_0x839c('0x29')]['create']({'name':_0x3d6c92[_0x839c('0x33')],'resourceId':_0x3d6c92['id'],'type':_0x839c('0x28'),'sectionId':_0x63297a['id']},{})[_0x839c('0x25')](function(){return _0x1c672b;});}else{return _0x1c672b;}})[_0x839c('0x46')](function(_0x37bc99){logger[_0x839c('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x37bc99);throw _0x37bc99;});}return _0x1c672b;})['then'](respondWithResult(_0xb3654a,0xc9))[_0x839c('0x46')](handleError(_0xb3654a,null));};exports['update']=function(_0x9e543,_0x44db9f){if(_0x9e543[_0x839c('0x51')]['id']){delete _0x9e543['body']['id'];}return db['AnalyticCustomReport'][_0x839c('0x49')]({'where':{'id':_0x9e543['params']['id']}})[_0x839c('0x25')](handleEntityNotFound(_0x44db9f,null))[_0x839c('0x25')](saveUpdates(_0x9e543['body'],null))['then'](respondWithResult(_0x44db9f,null))['catch'](handleError(_0x44db9f,null));};exports[_0x839c('0x26')]=function(_0x48e4d9,_0x4d86d9){return db[_0x839c('0x2e')][_0x839c('0x49')]({'where':{'id':_0x48e4d9[_0x839c('0x47')]['id']}})[_0x839c('0x25')](handleEntityNotFound(_0x4d86d9,null))[_0x839c('0x25')](removeEntity(_0x4d86d9,null))[_0x839c('0x46')](handleError(_0x4d86d9,null));};exports['preview']=function(_0x592838,_0x105cc5){var _0x2f516d=0xa;var _0x156546=['join',_0x839c('0x52'),_0x839c('0x53'),_0x839c('0x54')];var _0x42366d={'SUM':_0x839c('0x55'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x839c('0x56'),'MAX':_0x839c('0x57'),'MIN':_0x839c('0x58'),'AVG':_0x839c('0x59'),'GROUP_CONCAT':_0x839c('0x5a'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x839c('0x5b')};var _0x25feab={'SEC_TO_TIME':_0x839c('0x5c'),'DATE':_0x839c('0x5d'),'HOUR':_0x839c('0x5e'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x839c('0x5f')};var _0x30f132=function(_0x260209){return!_[_0x839c('0x60')]([_0x839c('0x61'),_0x839c('0x62'),'IS\x20EMPTY',_0x839c('0x63')],_0x260209);};var _0x259cf3=function(_0x3e84cf){if(!_0x3e84cf||!_0x3e84cf['rules'][_0x839c('0x64')]){return'';}for(var _0x183f1a='(',_0x109f03=0x0;_0x109f03<_0x3e84cf[_0x839c('0x65')]['length'];_0x109f03+=0x1){_0x109f03>0x0&&(_0x183f1a+='\x20'+_0x3e84cf['operator']+'\x20');_0x183f1a+=_0x3e84cf['rules'][_0x109f03][_0x839c('0x66')]?_0x259cf3(_0x3e84cf[_0x839c('0x65')][_0x109f03]['group']):_0x3e84cf['rules'][_0x109f03][_0x839c('0x67')]+'\x20'+_0x3e84cf[_0x839c('0x65')][_0x109f03][_0x839c('0x68')]+(_0x30f132(_0x3e84cf[_0x839c('0x65')][_0x109f03][_0x839c('0x68')])?'\x20'+_0x3e84cf[_0x839c('0x65')][_0x109f03][_0x839c('0x69')]:'');}return _0x183f1a+')';};var _0x2d28f4={'where':{'id':_0x592838['params']['id']}},_0xc31e8b,_0x551686,_0x56f03c,_0xa771cf,_0x4a5acb;_0x2d28f4=_[_0x839c('0x41')]({},_0x2d28f4,_0x592838[_0x839c('0x43')]);return db[_0x839c('0x2e')][_0x839c('0x49')](_0x2d28f4)[_0x839c('0x25')](function(_0x31e54d){if(_0x31e54d){_0xc31e8b=_0x31e54d;return _0x31e54d['getFields']();}return null;})['then'](function(_0x5f4c5d){if(_0x5f4c5d){if(!_0x5f4c5d['length']){throw new db['Sequelize'][(_0x839c('0x6a'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x551686=_0x5f4c5d;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0x839c('0x25')](function(_0x43ba0f){if(_0x43ba0f){_0x56f03c=_[_0x839c('0x6b')](_0x43ba0f,'id');var _0x3637ec;var _0x447410=squel[_0x839c('0x6c')]();_0x447410[_0x839c('0x6d')](_0xc31e8b[_0x839c('0x6e')]);for(var _0x436a7c=0x0;_0x436a7c<_0x551686[_0x839c('0x64')];_0x436a7c+=0x1){_0x3637ec=_0x551686[_0x436a7c][_0x839c('0x6f')]?_0x56f03c[_0x551686[_0x436a7c][_0x839c('0x6f')]][_0x839c('0x70')]:_0x551686[_0x436a7c]['field'];_0x3637ec=_0x551686[_0x436a7c][_0x839c('0x71')]?_['replace'](_0x42366d[_0x551686[_0x436a7c][_0x839c('0x71')]],'%s',_0x3637ec):_0x3637ec;_0x3637ec=_0x551686[_0x436a7c]['format']?_[_0x839c('0x72')](_0x25feab[_0x551686[_0x436a7c][_0x839c('0x73')]],'%s',_0x3637ec):_0x3637ec;if(_0x551686[_0x436a7c][_0x839c('0x74')]){_0x447410[_0x839c('0x66')](_0x3637ec);}_0x551686[_0x436a7c][_0x839c('0x75')]&&_0x447410['order'](_0x3637ec,_0x551686[_0x436a7c][_0x839c('0x75')]==='DESC'?![]:!![]);_0x447410[_0x839c('0x67')](_0x3637ec,_0x551686[_0x436a7c][_0x839c('0x76')]||_0x3637ec);}if(_0xc31e8b['joins']){_0xc31e8b[_0x839c('0x77')]=JSON[_0x839c('0x78')](_0xc31e8b[_0x839c('0x77')]);for(var _0x24dcd1=0x0;_0x24dcd1<_0xc31e8b['joins']['length'];_0x24dcd1+=0x1){if(_0xc31e8b[_0x839c('0x77')][_0x24dcd1]['type']&&_[_0x839c('0x60')](_0x156546,_0xc31e8b['joins'][_0x24dcd1][_0x839c('0x31')])&&_0xc31e8b[_0x839c('0x77')][_0x24dcd1][_0x839c('0x79')]&&_0xc31e8b[_0x839c('0x77')][_0x24dcd1]['foreignTable']&&_0xc31e8b[_0x839c('0x77')][_0x24dcd1][_0x839c('0x7a')]){_0x447410[_0xc31e8b[_0x839c('0x77')][_0x24dcd1][_0x839c('0x31')]](_0xc31e8b['joins'][_0x24dcd1][_0x839c('0x7b')],null,util[_0x839c('0x73')](_0x839c('0x7c'),_0xc31e8b[_0x839c('0x6e')],_0xc31e8b[_0x839c('0x77')][_0x24dcd1][_0x839c('0x79')],_0xc31e8b[_0x839c('0x77')][_0x24dcd1][_0x839c('0x7b')],_0xc31e8b[_0x839c('0x77')][_0x24dcd1][_0x839c('0x7a')]));}}}if(_0xc31e8b['conditions']){_0xc31e8b[_0x839c('0x7d')]=JSON[_0x839c('0x78')](_0xc31e8b[_0x839c('0x7d')]);_0x447410[_0x839c('0x3f')](_0x259cf3(_0xc31e8b[_0x839c('0x7d')][_0x839c('0x66')]));}_0x4a5acb=_0x447410[_0x839c('0x7e')]();_0x447410['limit'](_0x2f516d);_0x447410[_0x839c('0x1f')](0x0);logger[_0x839c('0x7f')](_0x839c('0x80'),_0x447410[_0x839c('0x81')]());return dbH[_0x839c('0x82')][_0x839c('0x34')](_0x447410[_0x839c('0x81')](),{'type':dbH[_0x839c('0x82')][_0x839c('0x83')]['SELECT']});}})[_0x839c('0x25')](respondWithResult(_0x105cc5,null))[_0x839c('0x46')](handleError(_0x105cc5,null));};function runReport(_0x4ad1c5,_0x36343d,_0x1d282a){var _0x5e7305=_0x36343d[_0x839c('0x33')];var _0x3cbf4e=0xa;var _0x4dd09a=[_0x839c('0x84'),_0x839c('0x52'),'right_join',_0x839c('0x54')];var _0x21ab6b={'SUM':_0x839c('0x55'),'COUNT':_0x839c('0x85'),'COUNT DISTINCT':_0x839c('0x56'),'MAX':_0x839c('0x57'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x839c('0x86'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2b81ca={'SEC_TO_TIME':_0x839c('0x5c'),'DATE':_0x839c('0x5d'),'HOUR':_0x839c('0x5e'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x839c('0x5f')};var _0x24f72a=function(_0x138e09){return!_[_0x839c('0x60')]([_0x839c('0x61'),_0x839c('0x62'),_0x839c('0x87'),_0x839c('0x63')],_0x138e09);};var _0x45b20f=function(_0x4f610d){if(!_0x4f610d||!_0x4f610d[_0x839c('0x65')][_0x839c('0x64')]){return'';}for(var _0x156de8='(',_0x8ac890=0x0;_0x8ac890<_0x4f610d[_0x839c('0x65')][_0x839c('0x64')];_0x8ac890+=0x1){_0x8ac890>0x0&&(_0x156de8+='\x20'+_0x4f610d[_0x839c('0x88')]+'\x20');_0x156de8+=_0x4f610d['rules'][_0x8ac890][_0x839c('0x66')]?_0x45b20f(_0x4f610d[_0x839c('0x65')][_0x8ac890][_0x839c('0x66')]):_0x4f610d['rules'][_0x8ac890]['field']+'\x20'+_0x4f610d[_0x839c('0x65')][_0x8ac890][_0x839c('0x68')]+(_0x24f72a(_0x4f610d['rules'][_0x8ac890][_0x839c('0x68')])?'\x20'+_0x4f610d['rules'][_0x8ac890][_0x839c('0x69')]:'');}return _0x156de8+')';};var _0x5eac1b={'where':{'id':_0x4ad1c5['id']}},_0x5e030a,_0x1f9b2,_0x165b58,_0x564e78,_0x9adca6;_0x5eac1b=_[_0x839c('0x41')]({},_0x5eac1b,_0x1d282a);return db[_0x839c('0x2e')][_0x839c('0x49')](_0x5eac1b)[_0x839c('0x25')](function(_0x4daf2c){if(_0x4daf2c){_0x5e030a=_0x4daf2c;return _0x4daf2c['getFields']();}return null;})[_0x839c('0x25')](function(_0xe24e94){if(_0xe24e94){if(!_0xe24e94[_0x839c('0x64')]){throw new db['Sequelize'][(_0x839c('0x6a'))](_0x839c('0x89'),0x193);}_0x1f9b2=_0xe24e94;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})['then'](function(_0x34d0f4){if(_0x34d0f4){_0x165b58=_[_0x839c('0x6b')](_0x34d0f4,'id');var _0x1d7cc0;var _0x38b999=squel[_0x839c('0x6c')]();_0x38b999['from'](_0x5e030a[_0x839c('0x6e')]);for(var _0x384571=0x0;_0x384571<_0x1f9b2[_0x839c('0x64')];_0x384571+=0x1){_0x1d7cc0=_0x1f9b2[_0x384571]['MetricId']?_0x165b58[_0x1f9b2[_0x384571][_0x839c('0x6f')]][_0x839c('0x70')]:_0x1f9b2[_0x384571][_0x839c('0x67')];_0x1d7cc0=_0x1f9b2[_0x384571][_0x839c('0x71')]?_[_0x839c('0x72')](_0x21ab6b[_0x1f9b2[_0x384571][_0x839c('0x71')]],'%s',_0x1d7cc0):_0x1d7cc0;_0x1d7cc0=_0x1f9b2[_0x384571][_0x839c('0x73')]?_[_0x839c('0x72')](_0x2b81ca[_0x1f9b2[_0x384571][_0x839c('0x73')]],'%s',_0x1d7cc0):_0x1d7cc0;if(_0x1f9b2[_0x384571][_0x839c('0x74')]){_0x38b999[_0x839c('0x66')](_0x1d7cc0);}_0x1f9b2[_0x384571]['orderBy']&&_0x38b999[_0x839c('0x3d')](_0x1d7cc0,_0x1f9b2[_0x384571][_0x839c('0x75')]===_0x839c('0x8a')?![]:!![]);_0x38b999['field'](_0x1d7cc0,_0x1f9b2[_0x384571][_0x839c('0x76')]||_0x1d7cc0);}if(_0x5e030a[_0x839c('0x77')]){_0x5e030a['joins']=JSON['parse'](_0x5e030a['joins']);for(var _0x7011e2=0x0;_0x7011e2<_0x5e030a['joins'][_0x839c('0x64')];_0x7011e2+=0x1){if(_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x31')]&&_[_0x839c('0x60')](_0x4dd09a,_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x31')])&&_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x79')]&&_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x7b')]&&_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x7a')]){_0x38b999[_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x31')]](_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x7b')],null,util[_0x839c('0x73')](_0x839c('0x7c'),_0x5e030a[_0x839c('0x6e')],_0x5e030a[_0x839c('0x77')][_0x7011e2]['parentKey'],_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x7b')],_0x5e030a[_0x839c('0x77')][_0x7011e2][_0x839c('0x7a')]));}}}if(_0x5e030a['conditions']){_0x5e030a[_0x839c('0x7d')]=JSON[_0x839c('0x78')](_0x5e030a[_0x839c('0x7d')]);_0x38b999['where'](_0x45b20f(_0x5e030a[_0x839c('0x7d')][_0x839c('0x66')]));}_0x9adca6=_0x38b999[_0x839c('0x7e')]();_0x38b999[_0x839c('0x3c')](_0x3cbf4e);_0x38b999[_0x839c('0x1f')](0x0);return;}})[_0x839c('0x25')](function(){if(_0x36343d['output']==='web'){return null;}var _0x5d59fd=_['merge'](_0x36343d,{'name':_0x36343d[_0x839c('0x8b')]||_0x36343d[_0x839c('0x33')]||_0x5e030a['name'],'basename':_0x5e7305,'savename':util[_0x839c('0x73')](_0x839c('0x8c'),_0x36343d[_0x839c('0x33')]||_0x5e030a[_0x839c('0x33')],require(_0x839c('0x8d'))[_0x839c('0x8e')](0x4),_0x36343d[_0x839c('0x8f')]||'csv'),'reportId':_0x5e030a['id'],'reportType':_0x839c('0x90')});return db[_0x839c('0x91')][_0x839c('0x4a')](_0x5d59fd,{'raw':!![]});})[_0x839c('0x25')](function(_0x423687){if(_0x5e030a[_0x839c('0x6e')]===_0x839c('0x92')){_0x9adca6[_0x839c('0x3f')](_0x5e030a[_0x839c('0x6e')]+_0x839c('0x93'),_0x36343d[_0x839c('0x94')],_0x36343d[_0x839c('0x95')]);}else{_0x9adca6[_0x839c('0x3f')](_0x5e030a['table']+_0x839c('0x96'),_0x36343d[_0x839c('0x94')],_0x36343d['endDate']);}if(_0x423687){logger['info'](_0x839c('0x97'),_0x9adca6['toString']());require(_0x839c('0x98'))['fork'](path[_0x839c('0x84')](__dirname,_0x839c('0x99'),_0x423687['output']),[_0x423687['id'],_0x9adca6[_0x839c('0x81')](),path['join'](__dirname,_0x839c('0x9a'),_0x423687['savename']),_0x5e7305]);return _0x423687;}else{var _0x51c65f=squel[_0x839c('0x6c')]();_0x51c65f[_0x839c('0x6d')]('('+_0x9adca6['toString']()+')',_0x839c('0x9b'));_0x51c65f[_0x839c('0x67')](_0x839c('0x9c'),'count');_0x9adca6['limit'](_0x36343d[_0x839c('0x3c')]||_0x3cbf4e);_0x9adca6[_0x839c('0x1f')](_0x36343d['offset']||0x0);return dbH[_0x839c('0x82')]['query'](_0x51c65f[_0x839c('0x81')](),{'type':dbH[_0x839c('0x82')]['QueryTypes']['SELECT']})[_0x839c('0x25')](function(_0x3288ed){if(!_0x3288ed['length']){_0x564e78=0x0;}else{_0x564e78=_0x3288ed[0x0]['count']||0x0;}return dbH['sequelize'][_0x839c('0x34')](_0x9adca6['toString'](),{'type':dbH['sequelize']['QueryTypes'][_0x839c('0x9d')]});})[_0x839c('0x25')](function(_0x3a0fa7){return{'rows':_0x3a0fa7||[],'count':_0x564e78};});}});}exports[_0x839c('0x9e')]=function(_0x5cde8d,_0x54e4ec){return runReport(_0x5cde8d['params'],_0x5cde8d['query'],_0x5cde8d['options'])[_0x839c('0x25')](respondWithResult(_0x54e4ec,null))[_0x839c('0x46')](handleError(_0x54e4ec,null));};exports[_0x839c('0x9f')]=runReport;exports[_0x839c('0x34')]=function(_0x33a593,_0x2a8366){var _0x5651cd=0xa;var _0x3f8c5d=[_0x839c('0x84'),_0x839c('0x52'),'right_join',_0x839c('0x54')];var _0x19659e={'SUM':_0x839c('0x55'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x839c('0x57'),'MIN':_0x839c('0x58'),'AVG':_0x839c('0x59'),'GROUP_CONCAT':_0x839c('0x5a'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x839c('0x5b')};var _0x5b9784={'SEC_TO_TIME':_0x839c('0x5c'),'DATE':_0x839c('0x5d'),'HOUR':'HOUR(%s)','ROUND':_0x839c('0xa0'),'UNIX_TIMESTAMP':_0x839c('0x5f')};var _0x4e1080=function(_0xd1be46){return!_[_0x839c('0x60')](['IS\x20NULL',_0x839c('0x62'),_0x839c('0x87'),_0x839c('0x63')],_0xd1be46);};var _0x4f3d56=function(_0x19b882){if(!_0x19b882||!_0x19b882[_0x839c('0x65')]['length']){return'';}for(var _0xd7592b='(',_0x5f432f=0x0;_0x5f432f<_0x19b882[_0x839c('0x65')]['length'];_0x5f432f+=0x1){_0x5f432f>0x0&&(_0xd7592b+='\x20'+_0x19b882[_0x839c('0x88')]+'\x20');_0xd7592b+=_0x19b882[_0x839c('0x65')][_0x5f432f][_0x839c('0x66')]?_0x4f3d56(_0x19b882['rules'][_0x5f432f][_0x839c('0x66')]):_0x19b882[_0x839c('0x65')][_0x5f432f]['field']+'\x20'+_0x19b882[_0x839c('0x65')][_0x5f432f]['condition']+(_0x4e1080(_0x19b882[_0x839c('0x65')][_0x5f432f]['condition'])?'\x20'+_0x19b882[_0x839c('0x65')][_0x5f432f][_0x839c('0x69')]:'');}return _0xd7592b+')';};var _0x314235={'where':{'id':_0x33a593['params']['id']}},_0x3da757,_0x35e330,_0x2ba4e2,_0x149d5c,_0x565851;_0x314235=_[_0x839c('0x41')]({},_0x314235,_0x33a593[_0x839c('0x43')]);return db[_0x839c('0x2e')][_0x839c('0x49')](_0x314235)[_0x839c('0x25')](function(_0x1c1475){if(_0x1c1475){_0x3da757=_0x1c1475;return _0x1c1475[_0x839c('0xa1')]();}return null;})[_0x839c('0x25')](function(_0x106a7c){if(_0x106a7c){if(!_0x106a7c['length']){throw new db[(_0x839c('0xa2'))][(_0x839c('0x6a'))](_0x839c('0x89'),0x193);}_0x35e330=_0x106a7c;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})['then'](function(_0x5338fc){if(_0x5338fc){_0x2ba4e2=_[_0x839c('0x6b')](_0x5338fc,'id');var _0xe58292;var _0x15d945=squel[_0x839c('0x6c')]();_0x15d945[_0x839c('0x6d')](_0x3da757[_0x839c('0x6e')]);for(var _0x17ae0c=0x0;_0x17ae0c<_0x35e330[_0x839c('0x64')];_0x17ae0c+=0x1){_0xe58292=_0x35e330[_0x17ae0c][_0x839c('0x6f')]?_0x2ba4e2[_0x35e330[_0x17ae0c][_0x839c('0x6f')]][_0x839c('0x70')]:_0x35e330[_0x17ae0c][_0x839c('0x67')];_0xe58292=_0x35e330[_0x17ae0c][_0x839c('0x71')]?_[_0x839c('0x72')](_0x19659e[_0x35e330[_0x17ae0c][_0x839c('0x71')]],'%s',_0xe58292):_0xe58292;_0xe58292=_0x35e330[_0x17ae0c][_0x839c('0x73')]?_[_0x839c('0x72')](_0x5b9784[_0x35e330[_0x17ae0c][_0x839c('0x73')]],'%s',_0xe58292):_0xe58292;if(_0x35e330[_0x17ae0c]['groupBy']){_0x15d945[_0x839c('0x66')](_0xe58292);}_0x35e330[_0x17ae0c][_0x839c('0x75')]&&_0x15d945[_0x839c('0x3d')](_0xe58292,_0x35e330[_0x17ae0c][_0x839c('0x75')]==='DESC'?![]:!![]);_0x15d945[_0x839c('0x67')](_0xe58292,_0x35e330[_0x17ae0c]['alias']||_0xe58292);}if(_0x3da757[_0x839c('0x77')]){_0x3da757[_0x839c('0x77')]=JSON[_0x839c('0x78')](_0x3da757[_0x839c('0x77')]);for(var _0xf88e62=0x0;_0xf88e62<_0x3da757[_0x839c('0x77')][_0x839c('0x64')];_0xf88e62+=0x1){if(_0x3da757[_0x839c('0x77')][_0xf88e62]['type']&&_[_0x839c('0x60')](_0x3f8c5d,_0x3da757[_0x839c('0x77')][_0xf88e62]['type'])&&_0x3da757['joins'][_0xf88e62]['parentKey']&&_0x3da757['joins'][_0xf88e62][_0x839c('0x7b')]&&_0x3da757[_0x839c('0x77')][_0xf88e62][_0x839c('0x7a')]){_0x15d945[_0x3da757[_0x839c('0x77')][_0xf88e62][_0x839c('0x31')]](_0x3da757[_0x839c('0x77')][_0xf88e62][_0x839c('0x7b')],null,util[_0x839c('0x73')](_0x839c('0x7c'),_0x3da757['table'],_0x3da757[_0x839c('0x77')][_0xf88e62][_0x839c('0x79')],_0x3da757[_0x839c('0x77')][_0xf88e62][_0x839c('0x7b')],_0x3da757[_0x839c('0x77')][_0xf88e62][_0x839c('0x7a')]));}}}if(_0x3da757[_0x839c('0x7d')]){_0x3da757['conditions']=JSON[_0x839c('0x78')](_0x3da757[_0x839c('0x7d')]);_0x15d945[_0x839c('0x3f')](_0x4f3d56(_0x3da757[_0x839c('0x7d')][_0x839c('0x66')]));}_0x565851=_0x15d945['clone']();_0x15d945[_0x839c('0x3c')](_0x5651cd);_0x15d945[_0x839c('0x1f')](0x0);logger[_0x839c('0x7f')](_0x839c('0x80'),_0x15d945[_0x839c('0x81')]());return dbH['sequelize']['query'](_0x15d945[_0x839c('0x81')](),{'type':dbH[_0x839c('0x82')]['QueryTypes']['SELECT']});}})[_0x839c('0x25')](function(){return{'sql':_0x565851[_0x839c('0x81')]()};})[_0x839c('0x25')](respondWithResult(_0x2a8366,null))['catch'](handleError(_0x2a8366,null));};