6576122f066732589290cd84f8c4f4329a025827
[motion2.git] / server / api / analyticDefaultReport / analyticDefaultReport.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 _0x7780=['parentKey','foreignTable','%s.%s\x20=\x20%s.%s','foreignKey','conditions','clone','Limited\x20Query:','sequelize','toString','SELECT','AVG(%s)','SEC_TO_TIME(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20EMPTY','AnalyticMetric','MetricId','debug','No\x20available\x20data','output','web','fullPath','%s-%s.%s','generate','csv','default','AnalyticExtractedReport','cdr','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','fork','../../components/export/','../../files/reports','countTable','COUNT(*)','QueryTypes','DESC','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','dbH','status','json','count','offset','limit','set','apply','reject','save','then','destroy','get','DefaultReports','UserProfileResource','end','error','name','index','AnalyticDefaultReport','rawAttributes','fieldName','type','key','model','filters','attributes','intersection','fields','query','length','hasOwnProperty','nolimit','order','where','pick','merge','map','VIRTUAL','options','include','findAll','catch','show','params','keys','includeAll','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','find','userProfileId','autoAssociation','create','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','ROUND(%s)','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','select','from','table','metric','function','replace','format','groupBy','orderBy','alias','parse','joins'];(function(_0x8881c2,_0x114e10){var _0x1b3138=function(_0x3eddaa){while(--_0x3eddaa){_0x8881c2['push'](_0x8881c2['shift']());}};_0x1b3138(++_0x114e10);}(_0x7780,0xca));var _0x0778=function(_0x3f9715,_0x431051){_0x3f9715=_0x3f9715-0x0;var _0x2d1e42=_0x7780[_0x3f9715];return _0x2d1e42;};'use strict';var pdf=require(_0x0778('0x0'));var emlformat=require(_0x0778('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x0778('0x2'));var jsonpatch=require(_0x0778('0x3'));var rp=require('request-promise');var moment=require(_0x0778('0x4'));var BPromise=require(_0x0778('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x0778('0x6'));var csv=require(_0x0778('0x7'));var ejs=require(_0x0778('0x8'));var fs=require('fs');var _=require(_0x0778('0x9'));var squel=require('squel');var crypto=require(_0x0778('0xa'));var jsforce=require(_0x0778('0xb'));var deskjs=require(_0x0778('0xc'));var toCsv=require(_0x0778('0x7'));var querystring=require('querystring');var Papa=require(_0x0778('0xd'));var Redis=require(_0x0778('0xe'));var authService=require(_0x0778('0xf'));var qs=require(_0x0778('0x10'));var as=require(_0x0778('0x11'));var hardwareService=require(_0x0778('0x12'));var logger=require(_0x0778('0x13'))(_0x0778('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0778('0x15'));var db=require('../../mysqldb')['db'];var dbH=require(_0x0778('0x16'))[_0x0778('0x17')];function respondWithStatusCode(_0x56d361,_0x437614){_0x437614=_0x437614||0xcc;return function(_0x455270){if(_0x455270){return _0x56d361['sendStatus'](_0x437614);}return _0x56d361[_0x0778('0x18')](_0x437614)['end']();};}function respondWithResult(_0x50eabe,_0x36e227){_0x36e227=_0x36e227||0xc8;return function(_0xc9c6cc){if(_0xc9c6cc){return _0x50eabe[_0x0778('0x18')](_0x36e227)[_0x0778('0x19')](_0xc9c6cc);}};}function respondWithFilteredResult(_0x1d324e,_0x1bad76){return function(_0x6a304c){if(_0x6a304c){var _0x51d2c0=_0x6a304c[_0x0778('0x1a')],_0x1d42c8=_0x1bad76[_0x0778('0x1b')],_0x1ff6d0=_0x1bad76[_0x0778('0x1b')]+_0x1bad76[_0x0778('0x1c')],_0x13ef60;if(_0x1ff6d0>=_0x51d2c0){_0x1ff6d0=_0x51d2c0;_0x13ef60=0xc8;}else{_0x13ef60=0xce;}_0x1d324e[_0x0778('0x18')](_0x13ef60);return _0x1d324e[_0x0778('0x1d')]('Content-Range',_0x1d42c8+'-'+_0x1ff6d0+'/'+_0x51d2c0)['json'](_0x6a304c);}return null;};}function patchUpdates(_0x4a3a74){return function(_0x2a0417){try{jsonpatch[_0x0778('0x1e')](_0x2a0417,_0x4a3a74,!![]);}catch(_0x228467){return BPromise[_0x0778('0x1f')](_0x228467);}return _0x2a0417[_0x0778('0x20')]();};}function saveUpdates(_0x52621c,_0x2a8e28){return function(_0x2dc55a){if(_0x2dc55a){return _0x2dc55a['update'](_0x52621c)[_0x0778('0x21')](function(_0x57f20c){return _0x57f20c;});}return null;};}function removeEntity(_0x1fa6e7,_0x2af68f){return function(_0x503e9b){if(_0x503e9b){return _0x503e9b[_0x0778('0x22')]()[_0x0778('0x21')](function(){var _0x3031ce=_0x503e9b[_0x0778('0x23')]({'plain':!![]});var _0x5b63dc=_0x0778('0x24');return db[_0x0778('0x25')][_0x0778('0x22')]({'where':{'type':_0x5b63dc,'resourceId':_0x3031ce['id']}})[_0x0778('0x21')](function(){return _0x503e9b;});})[_0x0778('0x21')](function(){_0x1fa6e7[_0x0778('0x18')](0xcc)[_0x0778('0x26')]();});}};}function handleEntityNotFound(_0x4996a5,_0x2610b7){return function(_0x2c3d38){if(!_0x2c3d38){_0x4996a5['sendStatus'](0x194);}return _0x2c3d38;};}function handleError(_0x29d1a4,_0x3b0e7f){_0x3b0e7f=_0x3b0e7f||0x1f4;return function(_0xb68022){logger[_0x0778('0x27')](_0xb68022['stack']);if(_0xb68022[_0x0778('0x28')]){delete _0xb68022[_0x0778('0x28')];}_0x29d1a4[_0x0778('0x18')](_0x3b0e7f)['send'](_0xb68022);};}exports[_0x0778('0x29')]=function(_0xfe0a4d,_0x33d853){var _0x253f09={},_0x2ddee0={},_0x56de6e={'count':0x0,'rows':[]};var _0x2494ff=_['map'](db[_0x0778('0x2a')][_0x0778('0x2b')],function(_0x2e5639){return{'name':_0x2e5639[_0x0778('0x2c')],'type':_0x2e5639[_0x0778('0x2d')][_0x0778('0x2e')]};});_0x2ddee0[_0x0778('0x2f')]=_['map'](_0x2494ff,_0x0778('0x28'));_0x2ddee0['query']=_['keys'](_0xfe0a4d['query']);_0x2ddee0[_0x0778('0x30')]=_['intersection'](_0x2ddee0[_0x0778('0x2f')],_0x2ddee0['query']);_0x253f09[_0x0778('0x31')]=_[_0x0778('0x32')](_0x2ddee0['model'],qs[_0x0778('0x33')](_0xfe0a4d[_0x0778('0x34')][_0x0778('0x33')]));_0x253f09[_0x0778('0x31')]=_0x253f09['attributes'][_0x0778('0x35')]?_0x253f09['attributes']:_0x2ddee0[_0x0778('0x2f')];if(!_0xfe0a4d[_0x0778('0x34')][_0x0778('0x36')](_0x0778('0x37'))){_0x253f09['limit']=qs[_0x0778('0x1c')](_0xfe0a4d[_0x0778('0x34')]['limit']);_0x253f09[_0x0778('0x1b')]=qs[_0x0778('0x1b')](_0xfe0a4d['query'][_0x0778('0x1b')]);}_0x253f09[_0x0778('0x38')]=qs['sort'](_0xfe0a4d[_0x0778('0x34')]['sort']);_0x253f09[_0x0778('0x39')]=qs[_0x0778('0x30')](_[_0x0778('0x3a')](_0xfe0a4d[_0x0778('0x34')],_0x2ddee0[_0x0778('0x30')]),_0x2494ff);if(_0xfe0a4d[_0x0778('0x34')]['filter']){_0x253f09['where']=_[_0x0778('0x3b')](_0x253f09[_0x0778('0x39')],{'$or':_[_0x0778('0x3c')](_0x2494ff,function(_0x14669e){if(_0x14669e['type']!==_0x0778('0x3d')){var _0x50893b={};_0x50893b[_0x14669e[_0x0778('0x28')]]={'$like':'%'+_0xfe0a4d[_0x0778('0x34')]['filter']+'%'};return _0x50893b;}})});}_0x253f09=_[_0x0778('0x3b')]({},_0x253f09,_0xfe0a4d[_0x0778('0x3e')]);var _0x402afb={'where':_0x253f09[_0x0778('0x39')]};return db[_0x0778('0x2a')][_0x0778('0x1a')](_0x402afb)[_0x0778('0x21')](function(_0x211bf0){_0x56de6e['count']=_0x211bf0;if(_0xfe0a4d[_0x0778('0x34')]['includeAll']){_0x253f09[_0x0778('0x3f')]=[{'all':!![]}];}return db[_0x0778('0x2a')][_0x0778('0x40')](_0x253f09);})['then'](function(_0x1d8bb1){_0x56de6e['rows']=_0x1d8bb1;return _0x56de6e;})['then'](respondWithFilteredResult(_0x33d853,_0x253f09))[_0x0778('0x41')](handleError(_0x33d853,null));};exports[_0x0778('0x42')]=function(_0x3c901c,_0x59871d){var _0x5a5063={'raw':!![],'where':{'id':_0x3c901c[_0x0778('0x43')]['id']}},_0x2cca94={};_0x2cca94[_0x0778('0x2f')]=_[_0x0778('0x44')](db[_0x0778('0x2a')][_0x0778('0x2b')]);_0x2cca94[_0x0778('0x34')]=_[_0x0778('0x44')](_0x3c901c[_0x0778('0x34')]);_0x2cca94['filtears']=_[_0x0778('0x32')](_0x2cca94[_0x0778('0x2f')],_0x2cca94['query']);_0x5a5063[_0x0778('0x31')]=_[_0x0778('0x32')](_0x2cca94['model'],qs[_0x0778('0x33')](_0x3c901c[_0x0778('0x34')][_0x0778('0x33')]));_0x5a5063[_0x0778('0x31')]=_0x5a5063[_0x0778('0x31')]['length']?_0x5a5063[_0x0778('0x31')]:_0x2cca94[_0x0778('0x2f')];if(_0x3c901c[_0x0778('0x34')][_0x0778('0x45')]){_0x5a5063['include']=[{'all':!![]}];}_0x5a5063=_[_0x0778('0x3b')]({},_0x5a5063,_0x3c901c[_0x0778('0x3e')]);return db['AnalyticDefaultReport']['find'](_0x5a5063)[_0x0778('0x21')](handleEntityNotFound(_0x59871d,null))[_0x0778('0x21')](respondWithResult(_0x59871d,null))['catch'](handleError(_0x59871d,null));};exports['create']=function(_0xd9b1c4,_0x570a68){return db[_0x0778('0x2a')]['create'](_0xd9b1c4[_0x0778('0x46')],{})['then'](function(_0x1f8165){var _0x282014=_0xd9b1c4[_0x0778('0x47')]['get']({'plain':!![]});if(!_0x282014)throw new Error(_0x0778('0x48'));if(_0x282014[_0x0778('0x49')]===_0x0778('0x47')){var _0x4fc16d=_0x1f8165[_0x0778('0x23')]({'plain':!![]});var _0x56c568=_0x0778('0x4a');return db[_0x0778('0x4b')][_0x0778('0x4c')]({'where':{'name':_0x56c568,'userProfileId':_0x282014[_0x0778('0x4d')]},'raw':!![]})[_0x0778('0x21')](function(_0x46350f){if(_0x46350f&&_0x46350f[_0x0778('0x4e')]===0x0){return db['UserProfileResource'][_0x0778('0x4f')]({'name':_0x4fc16d[_0x0778('0x28')],'resourceId':_0x4fc16d['id'],'type':_0x0778('0x24'),'sectionId':_0x46350f['id']},{})[_0x0778('0x21')](function(){return _0x1f8165;});}else{return _0x1f8165;}})['catch'](function(_0x19198c){logger[_0x0778('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x19198c);throw _0x19198c;});}return _0x1f8165;})['then'](respondWithResult(_0x570a68,0xc9))[_0x0778('0x41')](handleError(_0x570a68,null));};exports['update']=function(_0x384148,_0xa66432){if(_0x384148['body']['id']){delete _0x384148[_0x0778('0x46')]['id'];}return db[_0x0778('0x2a')][_0x0778('0x4c')]({'where':{'id':_0x384148[_0x0778('0x43')]['id']}})[_0x0778('0x21')](handleEntityNotFound(_0xa66432,null))[_0x0778('0x21')](saveUpdates(_0x384148[_0x0778('0x46')],null))['then'](respondWithResult(_0xa66432,null))[_0x0778('0x41')](handleError(_0xa66432,null));};exports[_0x0778('0x22')]=function(_0x526c8b,_0x43f1e6){return db[_0x0778('0x2a')][_0x0778('0x4c')]({'where':{'id':_0x526c8b[_0x0778('0x43')]['id']}})[_0x0778('0x21')](handleEntityNotFound(_0x43f1e6,null))[_0x0778('0x21')](removeEntity(_0x43f1e6,null))[_0x0778('0x41')](handleError(_0x43f1e6,null));};exports[_0x0778('0x50')]=function(_0x18d92a,_0x43938a){var _0x157349=0xa;var _0x119768=[_0x0778('0x51'),_0x0778('0x52'),_0x0778('0x53'),_0x0778('0x54')];var _0x34f661={'SUM':_0x0778('0x55'),'COUNT':_0x0778('0x56'),'COUNT DISTINCT':_0x0778('0x57'),'MAX':_0x0778('0x58'),'MIN':_0x0778('0x59'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x0778('0x5a'),'GROUP_CONCAT ASC':_0x0778('0x5b'),'GROUP_CONCAT DESC':_0x0778('0x5c')};var _0x18e583={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x0778('0x5d'),'HOUR':'HOUR(%s)','ROUND':_0x0778('0x5e'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x3017c0=function(_0x3a3d4f){return!_['includes'](['IS\x20NULL',_0x0778('0x5f'),_0x0778('0x60'),'IS\x20NOT\x20EMPTY'],_0x3a3d4f);};var _0x25ce71=function(_0x4aa50d){if(!_0x4aa50d||!_0x4aa50d[_0x0778('0x61')]['length']){return'';}for(var _0x130922='(',_0x593bed=0x0;_0x593bed<_0x4aa50d[_0x0778('0x61')]['length'];_0x593bed+=0x1){_0x593bed>0x0&&(_0x130922+='\x20'+_0x4aa50d[_0x0778('0x62')]+'\x20');_0x130922+=_0x4aa50d['rules'][_0x593bed][_0x0778('0x63')]?_0x25ce71(_0x4aa50d[_0x0778('0x61')][_0x593bed][_0x0778('0x63')]):_0x4aa50d[_0x0778('0x61')][_0x593bed][_0x0778('0x64')]+'\x20'+_0x4aa50d[_0x0778('0x61')][_0x593bed][_0x0778('0x65')]+(_0x3017c0(_0x4aa50d[_0x0778('0x61')][_0x593bed][_0x0778('0x65')])?'\x20'+_0x4aa50d['rules'][_0x593bed][_0x0778('0x66')]:'');}return _0x130922+')';};var _0x3efcce={'where':{'id':_0x18d92a[_0x0778('0x43')]['id']}},_0x3af083,_0x5ca891,_0x1ba3f4,_0x181c2d,_0x1ac841;_0x3efcce=_['merge']({},_0x3efcce,_0x18d92a['options']);return db[_0x0778('0x2a')][_0x0778('0x4c')](_0x3efcce)['then'](function(_0xf0ab59){if(_0xf0ab59){_0x3af083=_0xf0ab59;return _0xf0ab59[_0x0778('0x67')]();}return null;})[_0x0778('0x21')](function(_0x4ed1f2){if(_0x4ed1f2){if(!_0x4ed1f2['length']){throw new db[(_0x0778('0x68'))][(_0x0778('0x69'))](_0x0778('0x6a'),0x193);}_0x5ca891=_0x4ed1f2;return db['AnalyticMetric'][_0x0778('0x40')]({'raw':!![]});}return null;})[_0x0778('0x21')](function(_0x2092c6){if(_0x2092c6){_0x1ba3f4=_[_0x0778('0x6b')](_0x2092c6,'id');var _0xb1aeda;var _0x477315=squel[_0x0778('0x6c')]();_0x477315[_0x0778('0x6d')](_0x3af083[_0x0778('0x6e')]);for(var _0x1a7dc5=0x0;_0x1a7dc5<_0x5ca891[_0x0778('0x35')];_0x1a7dc5+=0x1){_0xb1aeda=_0x5ca891[_0x1a7dc5]['MetricId']?_0x1ba3f4[_0x5ca891[_0x1a7dc5]['MetricId']][_0x0778('0x6f')]:_0x5ca891[_0x1a7dc5]['field'];_0xb1aeda=_0x5ca891[_0x1a7dc5][_0x0778('0x70')]?_[_0x0778('0x71')](_0x34f661[_0x5ca891[_0x1a7dc5][_0x0778('0x70')]],'%s',_0xb1aeda):_0xb1aeda;_0xb1aeda=_0x5ca891[_0x1a7dc5][_0x0778('0x72')]?_[_0x0778('0x71')](_0x18e583[_0x5ca891[_0x1a7dc5]['format']],'%s',_0xb1aeda):_0xb1aeda;if(_0x5ca891[_0x1a7dc5][_0x0778('0x73')]){_0x477315[_0x0778('0x63')](_0xb1aeda);}_0x5ca891[_0x1a7dc5][_0x0778('0x74')]&&_0x477315['order'](_0xb1aeda,_0x5ca891[_0x1a7dc5][_0x0778('0x74')]==='DESC'?![]:!![]);_0x477315[_0x0778('0x64')](_0xb1aeda,_0x5ca891[_0x1a7dc5][_0x0778('0x75')]||_0xb1aeda);}if(_0x3af083['joins']){_0x3af083['joins']=JSON[_0x0778('0x76')](_0x3af083[_0x0778('0x77')]);for(var _0x3ab15f=0x0;_0x3ab15f<_0x3af083[_0x0778('0x77')][_0x0778('0x35')];_0x3ab15f+=0x1){if(_0x3af083[_0x0778('0x77')][_0x3ab15f][_0x0778('0x2d')]&&_['includes'](_0x119768,_0x3af083[_0x0778('0x77')][_0x3ab15f]['type'])&&_0x3af083[_0x0778('0x77')][_0x3ab15f][_0x0778('0x78')]&&_0x3af083[_0x0778('0x77')][_0x3ab15f]['foreignTable']&&_0x3af083[_0x0778('0x77')][_0x3ab15f]['foreignKey']){_0x477315[_0x3af083[_0x0778('0x77')][_0x3ab15f]['type']](_0x3af083[_0x0778('0x77')][_0x3ab15f][_0x0778('0x79')],null,util[_0x0778('0x72')](_0x0778('0x7a'),_0x3af083['table'],_0x3af083[_0x0778('0x77')][_0x3ab15f][_0x0778('0x78')],_0x3af083[_0x0778('0x77')][_0x3ab15f][_0x0778('0x79')],_0x3af083[_0x0778('0x77')][_0x3ab15f][_0x0778('0x7b')]));}}}if(_0x3af083['conditions']){_0x3af083[_0x0778('0x7c')]=JSON[_0x0778('0x76')](_0x3af083['conditions']);_0x477315[_0x0778('0x39')](_0x25ce71(_0x3af083[_0x0778('0x7c')]['group']));}_0x1ac841=_0x477315[_0x0778('0x7d')]();_0x477315[_0x0778('0x1c')](_0x157349);_0x477315[_0x0778('0x1b')](0x0);logger['debug'](_0x0778('0x7e'),_0x477315['toString']());return db[_0x0778('0x7f')][_0x0778('0x34')](_0x477315[_0x0778('0x80')](),{'type':db[_0x0778('0x7f')]['QueryTypes'][_0x0778('0x81')]});}})['then'](respondWithResult(_0x43938a,null))[_0x0778('0x41')](handleError(_0x43938a,null));};function runReport(_0x4a154f,_0x230f67,_0xa43734){var _0x319d5d=_0x230f67[_0x0778('0x28')];var _0x52b9a4=0xa;var _0x31efe8=[_0x0778('0x51'),_0x0778('0x52'),_0x0778('0x53'),'cross_join'];var _0x212b74={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x0778('0x58'),'MIN':'MIN(%s)','AVG':_0x0778('0x82'),'GROUP_CONCAT':_0x0778('0x5a'),'GROUP_CONCAT ASC':_0x0778('0x5b'),'GROUP_CONCAT DESC':_0x0778('0x5c')};var _0x2f6c0e={'SEC_TO_TIME':_0x0778('0x83'),'DATE':_0x0778('0x5d'),'HOUR':_0x0778('0x84'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x0778('0x85')};var _0x19f556=function(_0x3a66b1){return!_[_0x0778('0x86')]([_0x0778('0x87'),'IS\x20NOT\x20NULL','IS\x20EMPTY',_0x0778('0x88')],_0x3a66b1);};var _0x2ee1b4=function(_0x1a93f4){if(!_0x1a93f4||!_0x1a93f4[_0x0778('0x61')][_0x0778('0x35')]){return'';}for(var _0x556f90='(',_0xc20b43=0x0;_0xc20b43<_0x1a93f4[_0x0778('0x61')][_0x0778('0x35')];_0xc20b43+=0x1){_0xc20b43>0x0&&(_0x556f90+='\x20'+_0x1a93f4[_0x0778('0x62')]+'\x20');_0x556f90+=_0x1a93f4[_0x0778('0x61')][_0xc20b43]['group']?_0x2ee1b4(_0x1a93f4[_0x0778('0x61')][_0xc20b43]['group']):_0x1a93f4[_0x0778('0x61')][_0xc20b43]['field']+'\x20'+_0x1a93f4[_0x0778('0x61')][_0xc20b43][_0x0778('0x65')]+(_0x19f556(_0x1a93f4[_0x0778('0x61')][_0xc20b43][_0x0778('0x65')])?'\x20'+_0x1a93f4[_0x0778('0x61')][_0xc20b43][_0x0778('0x66')]:'');}return _0x556f90+')';};var _0x4f5919={'where':{'id':_0x4a154f['id']}},_0x20582d,_0x298569,_0x45d240,_0x1b1034,_0x3ebc59;_0x4f5919=_['merge']({},_0x4f5919,_0xa43734);return db[_0x0778('0x2a')]['find'](_0x4f5919)[_0x0778('0x21')](function(_0x531786){if(_0x531786){_0x20582d=_0x531786;return _0x531786[_0x0778('0x67')]();}return null;})['then'](function(_0xf31aab){if(_0xf31aab){if(!_0xf31aab[_0x0778('0x35')]){throw new db[(_0x0778('0x68'))]['ValidationErrorItem'](_0x0778('0x6a'),0x193);}_0x298569=_0xf31aab;return db[_0x0778('0x89')][_0x0778('0x40')]({'raw':!![]});}return null;})[_0x0778('0x21')](function(_0x123a19){if(_0x123a19){_0x45d240=_[_0x0778('0x6b')](_0x123a19,'id');var _0x3d6f71;var _0x59bb79=squel[_0x0778('0x6c')]();_0x59bb79[_0x0778('0x6d')](_0x20582d[_0x0778('0x6e')]);for(var _0x5e1718=0x0;_0x5e1718<_0x298569[_0x0778('0x35')];_0x5e1718+=0x1){_0x3d6f71=_0x298569[_0x5e1718][_0x0778('0x8a')]?_0x45d240[_0x298569[_0x5e1718]['MetricId']]['metric']:_0x298569[_0x5e1718][_0x0778('0x64')];_0x3d6f71=_0x298569[_0x5e1718][_0x0778('0x70')]?_[_0x0778('0x71')](_0x212b74[_0x298569[_0x5e1718][_0x0778('0x70')]],'%s',_0x3d6f71):_0x3d6f71;_0x3d6f71=_0x298569[_0x5e1718][_0x0778('0x72')]?_['replace'](_0x2f6c0e[_0x298569[_0x5e1718]['format']],'%s',_0x3d6f71):_0x3d6f71;if(_0x298569[_0x5e1718]['groupBy']){_0x59bb79['group'](_0x3d6f71);}_0x298569[_0x5e1718][_0x0778('0x74')]&&_0x59bb79[_0x0778('0x38')](_0x3d6f71,_0x298569[_0x5e1718][_0x0778('0x74')]==='DESC'?![]:!![]);_0x59bb79[_0x0778('0x64')](_0x3d6f71,_0x298569[_0x5e1718]['alias']||_0x3d6f71);}if(_0x20582d[_0x0778('0x77')]){_0x20582d[_0x0778('0x77')]=JSON['parse'](_0x20582d[_0x0778('0x77')]);for(var _0x31a45b=0x0;_0x31a45b<_0x20582d[_0x0778('0x77')][_0x0778('0x35')];_0x31a45b+=0x1){if(_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x2d')]&&_[_0x0778('0x86')](_0x31efe8,_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x2d')])&&_0x20582d['joins'][_0x31a45b][_0x0778('0x78')]&&_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x79')]&&_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x7b')]){_0x59bb79[_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x2d')]](_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x79')],null,util[_0x0778('0x72')](_0x0778('0x7a'),_0x20582d[_0x0778('0x6e')],_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x78')],_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x79')],_0x20582d[_0x0778('0x77')][_0x31a45b][_0x0778('0x7b')]));}}}if(_0x20582d[_0x0778('0x7c')]){_0x20582d[_0x0778('0x7c')]=JSON[_0x0778('0x76')](_0x20582d[_0x0778('0x7c')]);_0x59bb79[_0x0778('0x39')](_0x2ee1b4(_0x20582d[_0x0778('0x7c')]['group']));}_0x3ebc59=_0x59bb79[_0x0778('0x7d')]();_0x59bb79['limit'](_0x52b9a4);_0x59bb79['offset'](0x0);logger[_0x0778('0x8b')](_0x0778('0x7e'),_0x59bb79[_0x0778('0x80')]());return db['sequelize'][_0x0778('0x34')](_0x59bb79[_0x0778('0x80')](),{'type':db[_0x0778('0x7f')]['QueryTypes'][_0x0778('0x81')]});}})[_0x0778('0x21')](function(_0x5108be){if(!_0x5108be[_0x0778('0x35')]){throw new db['Sequelize'][(_0x0778('0x69'))](_0x0778('0x8c'),0xcc);}if(_0x230f67[_0x0778('0x8d')]===_0x0778('0x8e')){return null;}var _0x2364f3=_['merge'](_0x230f67,{'name':_0x230f67[_0x0778('0x8f')]||_0x230f67[_0x0778('0x28')]||_0x20582d['name'],'basename':_0x319d5d,'savename':util[_0x0778('0x72')](_0x0778('0x90'),_0x230f67['name']||_0x20582d[_0x0778('0x28')],require('randomstring')[_0x0778('0x91')](0x4),_0x230f67[_0x0778('0x8d')]||_0x0778('0x92')),'reportId':_0x20582d['id'],'reportType':_0x0778('0x93')});return db[_0x0778('0x94')]['create'](_0x2364f3,{'raw':!![]});})[_0x0778('0x21')](function(_0x555423){if(_0x20582d[_0x0778('0x6e')]===_0x0778('0x95')){_0x3ebc59[_0x0778('0x39')](_0x20582d[_0x0778('0x6e')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x230f67[_0x0778('0x96')],_0x230f67[_0x0778('0x97')]);}else{_0x3ebc59[_0x0778('0x39')](_0x20582d[_0x0778('0x6e')]+_0x0778('0x98'),_0x230f67[_0x0778('0x96')],_0x230f67[_0x0778('0x97')]);}if(_0x555423){logger[_0x0778('0x99')]('Run\x20Query:',_0x3ebc59[_0x0778('0x80')]());require('child_process')[_0x0778('0x9a')](path['join'](__dirname,_0x0778('0x9b'),_0x555423[_0x0778('0x8d')]),[_0x555423['id'],_0x3ebc59[_0x0778('0x80')](),path[_0x0778('0x51')](__dirname,_0x0778('0x9c'),_0x555423['savename']),_0x319d5d]);return _0x555423;}else{var _0x52bfd8=squel['select']();_0x52bfd8['from']('('+_0x3ebc59['toString']()+')',_0x0778('0x9d'));_0x52bfd8['field'](_0x0778('0x9e'),_0x0778('0x1a'));_0x3ebc59[_0x0778('0x1c')](_0x230f67[_0x0778('0x1c')]||_0x52b9a4);_0x3ebc59[_0x0778('0x1b')](_0x230f67['offset']||0x0);return dbH['sequelize']['query'](_0x52bfd8[_0x0778('0x80')](),{'type':dbH[_0x0778('0x7f')][_0x0778('0x9f')][_0x0778('0x81')]})[_0x0778('0x21')](function(_0x5efdd3){if(!_0x5efdd3[_0x0778('0x35')]){_0x1b1034=0x0;}else{_0x1b1034=_0x5efdd3[0x0][_0x0778('0x1a')]||0x0;}return dbH['sequelize'][_0x0778('0x34')](_0x3ebc59[_0x0778('0x80')](),{'type':dbH[_0x0778('0x7f')][_0x0778('0x9f')][_0x0778('0x81')]});})[_0x0778('0x21')](function(_0x3cb24b){return{'rows':_0x3cb24b||[],'count':_0x1b1034};});}});}exports['run']=function(_0x8aacd6,_0x483d33){return runReport(_0x8aacd6['params'],_0x8aacd6[_0x0778('0x34')],_0x8aacd6[_0x0778('0x3e')])['then'](respondWithResult(_0x483d33,null))[_0x0778('0x41')](handleError(_0x483d33,null));};exports['runReport']=runReport;exports[_0x0778('0x34')]=function(_0x1c3bd1,_0x3258a5){var _0xc35fac=0xa;var _0xa6bd7d=['join',_0x0778('0x52'),'right_join',_0x0778('0x54')];var _0x71c0f={'SUM':_0x0778('0x55'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x0778('0x57'),'MAX':_0x0778('0x58'),'MIN':_0x0778('0x59'),'AVG':_0x0778('0x82'),'GROUP_CONCAT':_0x0778('0x5a'),'GROUP_CONCAT ASC':_0x0778('0x5b'),'GROUP_CONCAT DESC':_0x0778('0x5c')};var _0x2a8a41={'SEC_TO_TIME':_0x0778('0x83'),'DATE':_0x0778('0x5d'),'HOUR':_0x0778('0x84'),'ROUND':_0x0778('0x5e'),'UNIX_TIMESTAMP':_0x0778('0x85')};var _0x1f8614=function(_0x2abb18){return!_[_0x0778('0x86')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x0778('0x60'),_0x0778('0x88')],_0x2abb18);};var _0x2bc093=function(_0x362fa1){if(!_0x362fa1||!_0x362fa1[_0x0778('0x61')][_0x0778('0x35')]){return'';}for(var _0x788a62='(',_0x108749=0x0;_0x108749<_0x362fa1['rules'][_0x0778('0x35')];_0x108749+=0x1){_0x108749>0x0&&(_0x788a62+='\x20'+_0x362fa1['operator']+'\x20');_0x788a62+=_0x362fa1[_0x0778('0x61')][_0x108749][_0x0778('0x63')]?_0x2bc093(_0x362fa1[_0x0778('0x61')][_0x108749]['group']):_0x362fa1[_0x0778('0x61')][_0x108749][_0x0778('0x64')]+'\x20'+_0x362fa1[_0x0778('0x61')][_0x108749]['condition']+(_0x1f8614(_0x362fa1['rules'][_0x108749][_0x0778('0x65')])?'\x20'+_0x362fa1['rules'][_0x108749][_0x0778('0x66')]:'');}return _0x788a62+')';};var _0x2a0607={'where':{'id':_0x1c3bd1['params']['id']}},_0x385fd0,_0x371f2f,_0x39bc93,_0x28ab94,_0x37933f;_0x2a0607=_[_0x0778('0x3b')]({},_0x2a0607,_0x1c3bd1[_0x0778('0x3e')]);return db['AnalyticDefaultReport'][_0x0778('0x4c')](_0x2a0607)[_0x0778('0x21')](function(_0x13d954){if(_0x13d954){_0x385fd0=_0x13d954;return _0x13d954[_0x0778('0x67')]();}return null;})[_0x0778('0x21')](function(_0x46dbd0){if(_0x46dbd0){if(!_0x46dbd0[_0x0778('0x35')]){throw new db[(_0x0778('0x68'))][(_0x0778('0x69'))](_0x0778('0x6a'),0x193);}_0x371f2f=_0x46dbd0;return db['AnalyticMetric'][_0x0778('0x40')]({'raw':!![]});}return null;})[_0x0778('0x21')](function(_0x4addc9){if(_0x4addc9){_0x39bc93=_['keyBy'](_0x4addc9,'id');var _0x1545f0;var _0x489567=squel[_0x0778('0x6c')]();_0x489567['from'](_0x385fd0['table']);for(var _0x2fad88=0x0;_0x2fad88<_0x371f2f[_0x0778('0x35')];_0x2fad88+=0x1){_0x1545f0=_0x371f2f[_0x2fad88]['MetricId']?_0x39bc93[_0x371f2f[_0x2fad88][_0x0778('0x8a')]]['metric']:_0x371f2f[_0x2fad88][_0x0778('0x64')];_0x1545f0=_0x371f2f[_0x2fad88][_0x0778('0x70')]?_[_0x0778('0x71')](_0x71c0f[_0x371f2f[_0x2fad88]['function']],'%s',_0x1545f0):_0x1545f0;_0x1545f0=_0x371f2f[_0x2fad88][_0x0778('0x72')]?_[_0x0778('0x71')](_0x2a8a41[_0x371f2f[_0x2fad88][_0x0778('0x72')]],'%s',_0x1545f0):_0x1545f0;if(_0x371f2f[_0x2fad88][_0x0778('0x73')]){_0x489567[_0x0778('0x63')](_0x1545f0);}_0x371f2f[_0x2fad88][_0x0778('0x74')]&&_0x489567[_0x0778('0x38')](_0x1545f0,_0x371f2f[_0x2fad88][_0x0778('0x74')]===_0x0778('0xa0')?![]:!![]);_0x489567[_0x0778('0x64')](_0x1545f0,_0x371f2f[_0x2fad88][_0x0778('0x75')]||_0x1545f0);}if(_0x385fd0['joins']){_0x385fd0[_0x0778('0x77')]=JSON[_0x0778('0x76')](_0x385fd0[_0x0778('0x77')]);for(var _0x2c194a=0x0;_0x2c194a<_0x385fd0[_0x0778('0x77')][_0x0778('0x35')];_0x2c194a+=0x1){if(_0x385fd0[_0x0778('0x77')][_0x2c194a][_0x0778('0x2d')]&&_['includes'](_0xa6bd7d,_0x385fd0[_0x0778('0x77')][_0x2c194a][_0x0778('0x2d')])&&_0x385fd0[_0x0778('0x77')][_0x2c194a][_0x0778('0x78')]&&_0x385fd0[_0x0778('0x77')][_0x2c194a]['foreignTable']&&_0x385fd0[_0x0778('0x77')][_0x2c194a]['foreignKey']){_0x489567[_0x385fd0[_0x0778('0x77')][_0x2c194a][_0x0778('0x2d')]](_0x385fd0[_0x0778('0x77')][_0x2c194a]['foreignTable'],null,util['format'](_0x0778('0x7a'),_0x385fd0[_0x0778('0x6e')],_0x385fd0[_0x0778('0x77')][_0x2c194a][_0x0778('0x78')],_0x385fd0[_0x0778('0x77')][_0x2c194a]['foreignTable'],_0x385fd0[_0x0778('0x77')][_0x2c194a][_0x0778('0x7b')]));}}}if(_0x385fd0['conditions']){_0x385fd0[_0x0778('0x7c')]=JSON['parse'](_0x385fd0[_0x0778('0x7c')]);_0x489567['where'](_0x2bc093(_0x385fd0[_0x0778('0x7c')][_0x0778('0x63')]));}_0x37933f=_0x489567[_0x0778('0x7d')]();_0x489567[_0x0778('0x1c')](_0xc35fac);_0x489567[_0x0778('0x1b')](0x0);logger[_0x0778('0x8b')](_0x0778('0x7e'),_0x489567[_0x0778('0x80')]());return db[_0x0778('0x7f')][_0x0778('0x34')](_0x489567['toString'](),{'type':db['sequelize']['QueryTypes'][_0x0778('0x81')]});}})[_0x0778('0x21')](function(){return{'sql':_0x37933f['toString']()};})[_0x0778('0x21')](respondWithResult(_0x3258a5,null))['catch'](handleError(_0x3258a5,null));};