Built motion from commit d5e4af8c.|2.6.23
[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 _0x3da6=['Sequelize','findAll','%s.%s\x20=\x20%s.%s','clone','output','web','fullPath','generate','csv','custom','AnalyticExtractedReport','cdr','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','info','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','sequelize','runReport','metric','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','then','CustomReports','UserProfileResource','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','options','includeAll','include','rows','catch','show','params','merge','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','preview','join','right_join','cross_join','SUM(%s)','COUNT(%s)','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','foreignTable','foreignKey','parentKey','conditions','where','debug','Limited\x20Query:','toString','QueryTypes','SELECT','left_join','COUNT(DISTINCT\x20%s)','MIN(%s)','SEC_TO_TIME(%s)','IS\x20NOT\x20NULL'];(function(_0x5e8fc,_0x1ccc06){var _0x41c58c=function(_0x495f2c){while(--_0x495f2c){_0x5e8fc['push'](_0x5e8fc['shift']());}};_0x41c58c(++_0x1ccc06);}(_0x3da6,0xc1));var _0x63da=function(_0x59d216,_0x27fdf6){_0x59d216=_0x59d216-0x0;var _0x309d65=_0x3da6[_0x59d216];return _0x309d65;};'use strict';var emlformat=require(_0x63da('0x0'));var rimraf=require(_0x63da('0x1'));var zipdir=require(_0x63da('0x2'));var jsonpatch=require(_0x63da('0x3'));var rp=require(_0x63da('0x4'));var moment=require(_0x63da('0x5'));var BPromise=require(_0x63da('0x6'));var Mustache=require('mustache');var util=require(_0x63da('0x7'));var path=require(_0x63da('0x8'));var sox=require('sox');var csv=require(_0x63da('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x63da('0xa'));var _=require('lodash');var squel=require(_0x63da('0xb'));var crypto=require(_0x63da('0xc'));var jsforce=require(_0x63da('0xd'));var deskjs=require(_0x63da('0xe'));var toCsv=require('to-csv');var querystring=require(_0x63da('0xf'));var Papa=require(_0x63da('0x10'));var Redis=require('ioredis');var authService=require(_0x63da('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x63da('0x12'));var hardwareService=require(_0x63da('0x13'));var logger=require(_0x63da('0x14'))(_0x63da('0x15'));var utils=require(_0x63da('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x63da('0x17'));var db=require('../../mysqldb')['db'];var dbH=require(_0x63da('0x18'))[_0x63da('0x19')];function respondWithStatusCode(_0x30d1bd,_0x213d63){_0x213d63=_0x213d63||0xcc;return function(_0x276f6a){if(_0x276f6a){return _0x30d1bd[_0x63da('0x1a')](_0x213d63);}return _0x30d1bd[_0x63da('0x1b')](_0x213d63)[_0x63da('0x1c')]();};}function respondWithResult(_0x37ce36,_0x26870d){_0x26870d=_0x26870d||0xc8;return function(_0x3f141c){if(_0x3f141c){return _0x37ce36[_0x63da('0x1b')](_0x26870d)[_0x63da('0x1d')](_0x3f141c);}};}function respondWithFilteredResult(_0x4e6084,_0x48ac11){return function(_0x12ffb3){if(_0x12ffb3){var _0x5cf63d=typeof _0x48ac11[_0x63da('0x1e')]===_0x63da('0x1f')&&typeof _0x48ac11[_0x63da('0x20')]===_0x63da('0x1f');var _0xaf41cb=_0x12ffb3['count'];var _0x8ce2aa=_0x5cf63d?0x0:_0x48ac11['offset'];var _0x5ace3f=_0x5cf63d?_0x12ffb3[_0x63da('0x21')]:_0x48ac11['offset']+_0x48ac11[_0x63da('0x20')];var _0x3b4003;if(_0x5ace3f>=_0xaf41cb){_0x5ace3f=_0xaf41cb;_0x3b4003=0xc8;}else{_0x3b4003=0xce;}_0x4e6084[_0x63da('0x1b')](_0x3b4003);return _0x4e6084['set'](_0x63da('0x22'),_0x8ce2aa+'-'+_0x5ace3f+'/'+_0xaf41cb)[_0x63da('0x1d')](_0x12ffb3);}return null;};}function patchUpdates(_0x54b6c6){return function(_0x30d5ef){try{jsonpatch[_0x63da('0x23')](_0x30d5ef,_0x54b6c6,!![]);}catch(_0x3716bd){return BPromise[_0x63da('0x24')](_0x3716bd);}return _0x30d5ef[_0x63da('0x25')]();};}function saveUpdates(_0x33e5c6,_0x131dc9){return function(_0xd9dbf6){if(_0xd9dbf6){return _0xd9dbf6[_0x63da('0x26')](_0x33e5c6)['then'](function(_0x55df4a){return _0x55df4a;});}return null;};}function removeEntity(_0xef0017,_0x32d43e){return function(_0x13d657){if(_0x13d657){return _0x13d657[_0x63da('0x27')]()[_0x63da('0x28')](function(){var _0x716174=_0x13d657['get']({'plain':!![]});var _0xc44172=_0x63da('0x29');return db[_0x63da('0x2a')][_0x63da('0x27')]({'where':{'type':_0xc44172,'resourceId':_0x716174['id']}})['then'](function(){return _0x13d657;});})[_0x63da('0x28')](function(){_0xef0017[_0x63da('0x1b')](0xcc)[_0x63da('0x1c')]();});}};}function handleEntityNotFound(_0x3505b0,_0x8ed71e){return function(_0x21cb98){if(!_0x21cb98){_0x3505b0[_0x63da('0x1a')](0x194);}return _0x21cb98;};}function handleError(_0x4b5e64,_0x5a4628){_0x5a4628=_0x5a4628||0x1f4;return function(_0x3c646a){logger[_0x63da('0x2b')](_0x3c646a[_0x63da('0x2c')]);if(_0x3c646a[_0x63da('0x2d')]){delete _0x3c646a[_0x63da('0x2d')];}_0x4b5e64[_0x63da('0x1b')](_0x5a4628)[_0x63da('0x2e')](_0x3c646a);};}exports[_0x63da('0x2f')]=function(_0x56fcda,_0x59c9ef){var _0x3fb195={},_0x56e957={},_0x3f2ed0={'count':0x0,'rows':[]};var _0x2e2ec5=_[_0x63da('0x30')](db[_0x63da('0x31')][_0x63da('0x32')],function(_0x21f3fc){return{'name':_0x21f3fc[_0x63da('0x33')],'type':_0x21f3fc[_0x63da('0x34')]['key']};});_0x56e957['model']=_['map'](_0x2e2ec5,_0x63da('0x2d'));_0x56e957['query']=_['keys'](_0x56fcda[_0x63da('0x35')]);_0x56e957[_0x63da('0x36')]=_[_0x63da('0x37')](_0x56e957[_0x63da('0x38')],_0x56e957[_0x63da('0x35')]);_0x3fb195['attributes']=_['intersection'](_0x56e957[_0x63da('0x38')],qs['fields'](_0x56fcda[_0x63da('0x35')][_0x63da('0x39')]));_0x3fb195[_0x63da('0x3a')]=_0x3fb195[_0x63da('0x3a')][_0x63da('0x3b')]?_0x3fb195['attributes']:_0x56e957['model'];if(!_0x56fcda['query'][_0x63da('0x3c')](_0x63da('0x3d'))){_0x3fb195[_0x63da('0x20')]=qs[_0x63da('0x20')](_0x56fcda['query']['limit']);_0x3fb195[_0x63da('0x1e')]=qs[_0x63da('0x1e')](_0x56fcda[_0x63da('0x35')][_0x63da('0x1e')]);}_0x3fb195[_0x63da('0x3e')]=qs[_0x63da('0x3f')](_0x56fcda[_0x63da('0x35')]['sort']);_0x3fb195['where']=qs[_0x63da('0x36')](_[_0x63da('0x40')](_0x56fcda[_0x63da('0x35')],_0x56e957[_0x63da('0x36')]),_0x2e2ec5);if(_0x56fcda[_0x63da('0x35')][_0x63da('0x41')]){_0x3fb195['where']=_['merge'](_0x3fb195['where'],{'$or':_[_0x63da('0x30')](_0x2e2ec5,function(_0x52504f){if(_0x52504f[_0x63da('0x34')]!=='VIRTUAL'){var _0x1c329d={};_0x1c329d[_0x52504f[_0x63da('0x2d')]]={'$like':'%'+_0x56fcda['query'][_0x63da('0x41')]+'%'};return _0x1c329d;}})});}_0x3fb195=_['merge']({},_0x3fb195,_0x56fcda[_0x63da('0x42')]);var _0x59fd31={'where':_0x3fb195['where']};return db[_0x63da('0x31')]['count'](_0x59fd31)[_0x63da('0x28')](function(_0x4e2eba){_0x3f2ed0['count']=_0x4e2eba;if(_0x56fcda['query'][_0x63da('0x43')]){_0x3fb195[_0x63da('0x44')]=[{'all':!![]}];}return db['AnalyticCustomReport']['findAll'](_0x3fb195);})[_0x63da('0x28')](function(_0x262ec2){_0x3f2ed0[_0x63da('0x45')]=_0x262ec2;return _0x3f2ed0;})[_0x63da('0x28')](respondWithFilteredResult(_0x59c9ef,_0x3fb195))[_0x63da('0x46')](handleError(_0x59c9ef,null));};exports[_0x63da('0x47')]=function(_0x1441e8,_0x2498eb){var _0x15d4ee={'raw':![],'where':{'id':_0x1441e8[_0x63da('0x48')]['id']}},_0x2d4373={};_0x2d4373[_0x63da('0x38')]=_['keys'](db['AnalyticCustomReport']['rawAttributes']);_0x2d4373[_0x63da('0x35')]=_['keys'](_0x1441e8[_0x63da('0x35')]);_0x2d4373[_0x63da('0x36')]=_[_0x63da('0x37')](_0x2d4373[_0x63da('0x38')],_0x2d4373[_0x63da('0x35')]);_0x15d4ee[_0x63da('0x3a')]=_[_0x63da('0x37')](_0x2d4373[_0x63da('0x38')],qs['fields'](_0x1441e8['query']['fields']));_0x15d4ee[_0x63da('0x3a')]=_0x15d4ee[_0x63da('0x3a')][_0x63da('0x3b')]?_0x15d4ee['attributes']:_0x2d4373[_0x63da('0x38')];if(_0x1441e8[_0x63da('0x35')][_0x63da('0x43')]){_0x15d4ee[_0x63da('0x44')]=[{'all':!![]}];}_0x15d4ee=_[_0x63da('0x49')]({},_0x15d4ee,_0x1441e8[_0x63da('0x42')]);return db['AnalyticCustomReport'][_0x63da('0x4a')](_0x15d4ee)[_0x63da('0x28')](handleEntityNotFound(_0x2498eb,null))['then'](respondWithResult(_0x2498eb,null))[_0x63da('0x46')](handleError(_0x2498eb,null));};exports[_0x63da('0x4b')]=function(_0x778284,_0xd20751){return db[_0x63da('0x31')][_0x63da('0x4b')](_0x778284['body'],{})[_0x63da('0x28')](function(_0x55d9ed){var _0xb11b7=_0x778284['user']['get']({'plain':!![]});if(!_0xb11b7)throw new Error(_0x63da('0x4c'));if(_0xb11b7[_0x63da('0x4d')]==='user'){var _0x207b8e=_0x55d9ed['get']({'plain':!![]});var _0x4c7f48=_0x63da('0x4e');return db['UserProfileSection']['find']({'where':{'name':_0x4c7f48,'userProfileId':_0xb11b7[_0x63da('0x4f')]},'raw':!![]})[_0x63da('0x28')](function(_0x1c5a4a){if(_0x1c5a4a&&_0x1c5a4a[_0x63da('0x50')]===0x0){return db[_0x63da('0x2a')][_0x63da('0x4b')]({'name':_0x207b8e[_0x63da('0x2d')],'resourceId':_0x207b8e['id'],'type':_0x63da('0x29'),'sectionId':_0x1c5a4a['id']},{})[_0x63da('0x28')](function(){return _0x55d9ed;});}else{return _0x55d9ed;}})[_0x63da('0x46')](function(_0x5bfce6){logger[_0x63da('0x2b')](_0x63da('0x51'),_0x5bfce6);throw _0x5bfce6;});}return _0x55d9ed;})[_0x63da('0x28')](respondWithResult(_0xd20751,0xc9))[_0x63da('0x46')](handleError(_0xd20751,null));};exports[_0x63da('0x26')]=function(_0x37c6d7,_0xd6b1b2){if(_0x37c6d7[_0x63da('0x52')]['id']){delete _0x37c6d7[_0x63da('0x52')]['id'];}return db[_0x63da('0x31')]['find']({'where':{'id':_0x37c6d7[_0x63da('0x48')]['id']}})[_0x63da('0x28')](handleEntityNotFound(_0xd6b1b2,null))['then'](saveUpdates(_0x37c6d7[_0x63da('0x52')],null))[_0x63da('0x28')](respondWithResult(_0xd6b1b2,null))[_0x63da('0x46')](handleError(_0xd6b1b2,null));};exports[_0x63da('0x27')]=function(_0x273c5d,_0xa5e7c){return db[_0x63da('0x31')][_0x63da('0x4a')]({'where':{'id':_0x273c5d[_0x63da('0x48')]['id']}})['then'](handleEntityNotFound(_0xa5e7c,null))[_0x63da('0x28')](removeEntity(_0xa5e7c,null))[_0x63da('0x46')](handleError(_0xa5e7c,null));};exports[_0x63da('0x53')]=function(_0x2908cb,_0x284ef1){var _0x26df3e=0xa;var _0x11bf43=[_0x63da('0x54'),'left_join',_0x63da('0x55'),_0x63da('0x56')];var _0x2bf285={'SUM':_0x63da('0x57'),'COUNT':_0x63da('0x58'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x63da('0x59'),'MIN':'MIN(%s)','AVG':_0x63da('0x5a'),'GROUP_CONCAT':_0x63da('0x5b'),'GROUP_CONCAT ASC':_0x63da('0x5c'),'GROUP_CONCAT DESC':_0x63da('0x5d')};var _0x2cce8e={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x63da('0x5e'),'HOUR':_0x63da('0x5f'),'ROUND':_0x63da('0x60'),'UNIX_TIMESTAMP':_0x63da('0x61')};var _0x4977e6=function(_0x1738f9){return!_[_0x63da('0x62')]([_0x63da('0x63'),'IS\x20NOT\x20NULL',_0x63da('0x64'),_0x63da('0x65')],_0x1738f9);};var _0x50da69=function(_0x2f89d3){if(!_0x2f89d3||!_0x2f89d3[_0x63da('0x66')]['length']){return'';}for(var _0x3c6d05='(',_0x3680cb=0x0;_0x3680cb<_0x2f89d3[_0x63da('0x66')][_0x63da('0x3b')];_0x3680cb+=0x1){_0x3680cb>0x0&&(_0x3c6d05+='\x20'+_0x2f89d3[_0x63da('0x67')]+'\x20');_0x3c6d05+=_0x2f89d3['rules'][_0x3680cb][_0x63da('0x68')]?_0x50da69(_0x2f89d3[_0x63da('0x66')][_0x3680cb][_0x63da('0x68')]):_0x2f89d3[_0x63da('0x66')][_0x3680cb][_0x63da('0x69')]+'\x20'+_0x2f89d3[_0x63da('0x66')][_0x3680cb][_0x63da('0x6a')]+(_0x4977e6(_0x2f89d3[_0x63da('0x66')][_0x3680cb][_0x63da('0x6a')])?'\x20'+_0x2f89d3[_0x63da('0x66')][_0x3680cb][_0x63da('0x6b')]:'');}return _0x3c6d05+')';};var _0x3aee30={'where':{'id':_0x2908cb[_0x63da('0x48')]['id']}},_0x5e7743,_0x36da27,_0x4ca47d,_0x47eead,_0x5a9005;_0x3aee30=_[_0x63da('0x49')]({},_0x3aee30,_0x2908cb[_0x63da('0x42')]);return db[_0x63da('0x31')][_0x63da('0x4a')](_0x3aee30)[_0x63da('0x28')](function(_0x49ec1b){if(_0x49ec1b){_0x5e7743=_0x49ec1b;return _0x49ec1b[_0x63da('0x6c')]();}return null;})['then'](function(_0x3ec1b8){if(_0x3ec1b8){if(!_0x3ec1b8['length']){throw new db['Sequelize'][(_0x63da('0x6d'))](_0x63da('0x6e'),0x193);}_0x36da27=_0x3ec1b8;return db[_0x63da('0x6f')]['findAll']({'raw':!![]});}return null;})[_0x63da('0x28')](function(_0x45adc2){if(_0x45adc2){_0x4ca47d=_[_0x63da('0x70')](_0x45adc2,'id');var _0x7d2375;var _0x1ceef1=squel[_0x63da('0x71')]();_0x1ceef1[_0x63da('0x72')](_0x5e7743[_0x63da('0x73')]);for(var _0x1b32a7=0x0;_0x1b32a7<_0x36da27[_0x63da('0x3b')];_0x1b32a7+=0x1){_0x7d2375=_0x36da27[_0x1b32a7][_0x63da('0x74')]?_0x4ca47d[_0x36da27[_0x1b32a7][_0x63da('0x74')]]['metric']:_0x36da27[_0x1b32a7][_0x63da('0x69')];_0x7d2375=_0x36da27[_0x1b32a7][_0x63da('0x75')]?_[_0x63da('0x76')](_0x2bf285[_0x36da27[_0x1b32a7][_0x63da('0x75')]],'%s',_0x7d2375):_0x7d2375;_0x7d2375=_0x36da27[_0x1b32a7][_0x63da('0x77')]?_[_0x63da('0x76')](_0x2cce8e[_0x36da27[_0x1b32a7][_0x63da('0x77')]],'%s',_0x7d2375):_0x7d2375;if(_0x36da27[_0x1b32a7][_0x63da('0x78')]){_0x1ceef1[_0x63da('0x68')](_0x7d2375);}_0x36da27[_0x1b32a7][_0x63da('0x79')]&&_0x1ceef1['order'](_0x7d2375,_0x36da27[_0x1b32a7]['orderBy']===_0x63da('0x7a')?![]:!![]);_0x1ceef1[_0x63da('0x69')](_0x7d2375,_0x36da27[_0x1b32a7][_0x63da('0x7b')]||_0x7d2375);}if(_0x5e7743[_0x63da('0x7c')]){_0x5e7743[_0x63da('0x7c')]=JSON[_0x63da('0x7d')](_0x5e7743[_0x63da('0x7c')]);for(var _0x548a50=0x0;_0x548a50<_0x5e7743[_0x63da('0x7c')]['length'];_0x548a50+=0x1){if(_0x5e7743[_0x63da('0x7c')][_0x548a50][_0x63da('0x34')]&&_[_0x63da('0x62')](_0x11bf43,_0x5e7743[_0x63da('0x7c')][_0x548a50][_0x63da('0x34')])&&_0x5e7743['joins'][_0x548a50]['parentKey']&&_0x5e7743[_0x63da('0x7c')][_0x548a50][_0x63da('0x7e')]&&_0x5e7743['joins'][_0x548a50][_0x63da('0x7f')]){_0x1ceef1[_0x5e7743['joins'][_0x548a50][_0x63da('0x34')]](_0x5e7743[_0x63da('0x7c')][_0x548a50][_0x63da('0x7e')],null,util[_0x63da('0x77')]('%s.%s\x20=\x20%s.%s',_0x5e7743['table'],_0x5e7743['joins'][_0x548a50][_0x63da('0x80')],_0x5e7743[_0x63da('0x7c')][_0x548a50][_0x63da('0x7e')],_0x5e7743[_0x63da('0x7c')][_0x548a50][_0x63da('0x7f')]));}}}if(_0x5e7743['conditions']){_0x5e7743[_0x63da('0x81')]=JSON[_0x63da('0x7d')](_0x5e7743[_0x63da('0x81')]);_0x1ceef1[_0x63da('0x82')](_0x50da69(_0x5e7743[_0x63da('0x81')][_0x63da('0x68')]));}_0x5a9005=_0x1ceef1['clone']();_0x1ceef1[_0x63da('0x20')](_0x26df3e);_0x1ceef1[_0x63da('0x1e')](0x0);logger[_0x63da('0x83')](_0x63da('0x84'),_0x1ceef1['toString']());return dbH['sequelize'][_0x63da('0x35')](_0x1ceef1[_0x63da('0x85')](),{'type':dbH['sequelize'][_0x63da('0x86')][_0x63da('0x87')]});}})[_0x63da('0x28')](respondWithResult(_0x284ef1,null))[_0x63da('0x46')](handleError(_0x284ef1,null));};function runReport(_0x1c016d,_0x4957f5,_0x438ef5){var _0x2e262a=_0x4957f5[_0x63da('0x2d')];var _0x7990d7=0xa;var _0x3e5fa8=[_0x63da('0x54'),_0x63da('0x88'),_0x63da('0x55'),_0x63da('0x56')];var _0x86380d={'SUM':_0x63da('0x57'),'COUNT':_0x63da('0x58'),'COUNT DISTINCT':_0x63da('0x89'),'MAX':_0x63da('0x59'),'MIN':_0x63da('0x8a'),'AVG':_0x63da('0x5a'),'GROUP_CONCAT':_0x63da('0x5b'),'GROUP_CONCAT ASC':_0x63da('0x5c'),'GROUP_CONCAT DESC':_0x63da('0x5d')};var _0x42b4f5={'SEC_TO_TIME':_0x63da('0x8b'),'DATE':'DATE(%s)','HOUR':_0x63da('0x5f'),'ROUND':_0x63da('0x60'),'UNIX_TIMESTAMP':_0x63da('0x61')};var _0xf1566c=function(_0x5aed2b){return!_['includes']([_0x63da('0x63'),_0x63da('0x8c'),_0x63da('0x64'),_0x63da('0x65')],_0x5aed2b);};var _0x4e3c20=function(_0x24586b){if(!_0x24586b||!_0x24586b[_0x63da('0x66')]['length']){return'';}for(var _0x5983d7='(',_0x5dc5e3=0x0;_0x5dc5e3<_0x24586b[_0x63da('0x66')][_0x63da('0x3b')];_0x5dc5e3+=0x1){_0x5dc5e3>0x0&&(_0x5983d7+='\x20'+_0x24586b[_0x63da('0x67')]+'\x20');_0x5983d7+=_0x24586b[_0x63da('0x66')][_0x5dc5e3][_0x63da('0x68')]?_0x4e3c20(_0x24586b[_0x63da('0x66')][_0x5dc5e3][_0x63da('0x68')]):_0x24586b['rules'][_0x5dc5e3][_0x63da('0x69')]+'\x20'+_0x24586b[_0x63da('0x66')][_0x5dc5e3][_0x63da('0x6a')]+(_0xf1566c(_0x24586b[_0x63da('0x66')][_0x5dc5e3]['condition'])?'\x20'+_0x24586b[_0x63da('0x66')][_0x5dc5e3][_0x63da('0x6b')]:'');}return _0x5983d7+')';};var _0xdd075e={'where':{'id':_0x1c016d['id']}},_0x64c3a6,_0x200d22,_0x3c0340,_0x27adb9,_0x1a2f84;_0xdd075e=_['merge']({},_0xdd075e,_0x438ef5);return db['AnalyticCustomReport'][_0x63da('0x4a')](_0xdd075e)[_0x63da('0x28')](function(_0x3dd6fe){if(_0x3dd6fe){_0x64c3a6=_0x3dd6fe;return _0x3dd6fe[_0x63da('0x6c')]();}return null;})[_0x63da('0x28')](function(_0x3f47db){if(_0x3f47db){if(!_0x3f47db[_0x63da('0x3b')]){throw new db[(_0x63da('0x8d'))][(_0x63da('0x6d'))](_0x63da('0x6e'),0x193);}_0x200d22=_0x3f47db;return db['AnalyticMetric'][_0x63da('0x8e')]({'raw':!![]});}return null;})[_0x63da('0x28')](function(_0x280076){if(_0x280076){_0x3c0340=_['keyBy'](_0x280076,'id');var _0x2f66f6;var _0x44e016=squel[_0x63da('0x71')]();_0x44e016[_0x63da('0x72')](_0x64c3a6[_0x63da('0x73')]);for(var _0x2906a9=0x0;_0x2906a9<_0x200d22['length'];_0x2906a9+=0x1){_0x2f66f6=_0x200d22[_0x2906a9]['MetricId']?_0x3c0340[_0x200d22[_0x2906a9]['MetricId']]['metric']:_0x200d22[_0x2906a9]['field'];_0x2f66f6=_0x200d22[_0x2906a9][_0x63da('0x75')]?_[_0x63da('0x76')](_0x86380d[_0x200d22[_0x2906a9][_0x63da('0x75')]],'%s',_0x2f66f6):_0x2f66f6;_0x2f66f6=_0x200d22[_0x2906a9]['format']?_[_0x63da('0x76')](_0x42b4f5[_0x200d22[_0x2906a9][_0x63da('0x77')]],'%s',_0x2f66f6):_0x2f66f6;if(_0x200d22[_0x2906a9][_0x63da('0x78')]){_0x44e016[_0x63da('0x68')](_0x2f66f6);}_0x200d22[_0x2906a9][_0x63da('0x79')]&&_0x44e016[_0x63da('0x3e')](_0x2f66f6,_0x200d22[_0x2906a9][_0x63da('0x79')]==='DESC'?![]:!![]);_0x44e016[_0x63da('0x69')](_0x2f66f6,_0x200d22[_0x2906a9]['alias']||_0x2f66f6);}if(_0x64c3a6[_0x63da('0x7c')]){_0x64c3a6[_0x63da('0x7c')]=JSON[_0x63da('0x7d')](_0x64c3a6[_0x63da('0x7c')]);for(var _0xce573=0x0;_0xce573<_0x64c3a6[_0x63da('0x7c')][_0x63da('0x3b')];_0xce573+=0x1){if(_0x64c3a6['joins'][_0xce573][_0x63da('0x34')]&&_[_0x63da('0x62')](_0x3e5fa8,_0x64c3a6[_0x63da('0x7c')][_0xce573][_0x63da('0x34')])&&_0x64c3a6['joins'][_0xce573][_0x63da('0x80')]&&_0x64c3a6[_0x63da('0x7c')][_0xce573][_0x63da('0x7e')]&&_0x64c3a6[_0x63da('0x7c')][_0xce573][_0x63da('0x7f')]){_0x44e016[_0x64c3a6[_0x63da('0x7c')][_0xce573]['type']](_0x64c3a6[_0x63da('0x7c')][_0xce573][_0x63da('0x7e')],null,util['format'](_0x63da('0x8f'),_0x64c3a6[_0x63da('0x73')],_0x64c3a6[_0x63da('0x7c')][_0xce573][_0x63da('0x80')],_0x64c3a6[_0x63da('0x7c')][_0xce573][_0x63da('0x7e')],_0x64c3a6['joins'][_0xce573]['foreignKey']));}}}if(_0x64c3a6[_0x63da('0x81')]){_0x64c3a6['conditions']=JSON[_0x63da('0x7d')](_0x64c3a6[_0x63da('0x81')]);_0x44e016[_0x63da('0x82')](_0x4e3c20(_0x64c3a6['conditions'][_0x63da('0x68')]));}_0x1a2f84=_0x44e016[_0x63da('0x90')]();_0x44e016[_0x63da('0x20')](_0x7990d7);_0x44e016[_0x63da('0x1e')](0x0);return;}})[_0x63da('0x28')](function(){if(_0x4957f5[_0x63da('0x91')]===_0x63da('0x92')){return null;}var _0x508f1f=_[_0x63da('0x49')](_0x4957f5,{'name':_0x4957f5[_0x63da('0x93')]||_0x4957f5[_0x63da('0x2d')]||_0x64c3a6[_0x63da('0x2d')],'basename':_0x2e262a,'savename':util[_0x63da('0x77')]('%s-%s.%s',_0x4957f5[_0x63da('0x2d')]||_0x64c3a6[_0x63da('0x2d')],require('randomstring')[_0x63da('0x94')](0x4),_0x4957f5[_0x63da('0x91')]||_0x63da('0x95')),'reportId':_0x64c3a6['id'],'reportType':_0x63da('0x96')});return db[_0x63da('0x97')][_0x63da('0x4b')](_0x508f1f,{'raw':!![]});})[_0x63da('0x28')](function(_0x13077b){if(_0x64c3a6[_0x63da('0x73')]===_0x63da('0x98')){_0x1a2f84[_0x63da('0x82')](_0x64c3a6['table']+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x4957f5['startDate'],_0x4957f5['endDate']);}else{_0x1a2f84[_0x63da('0x82')](_0x64c3a6['table']+_0x63da('0x99'),_0x4957f5[_0x63da('0x9a')],_0x4957f5[_0x63da('0x9b')]);}if(_0x13077b){logger[_0x63da('0x9c')]('Run\x20Query:',_0x1a2f84['toString']());require(_0x63da('0x9d'))[_0x63da('0x9e')](path[_0x63da('0x54')](__dirname,_0x63da('0x9f'),_0x13077b[_0x63da('0x91')]),[_0x13077b['id'],_0x1a2f84[_0x63da('0x85')](),path[_0x63da('0x54')](__dirname,_0x63da('0xa0'),_0x13077b[_0x63da('0xa1')]),_0x2e262a]);return _0x13077b;}else{var _0x2c04ac=squel['select']();_0x2c04ac[_0x63da('0x72')]('('+_0x1a2f84[_0x63da('0x85')]()+')',_0x63da('0xa2'));_0x2c04ac[_0x63da('0x69')](_0x63da('0xa3'),_0x63da('0x21'));_0x1a2f84[_0x63da('0x20')](_0x4957f5[_0x63da('0x20')]||_0x7990d7);_0x1a2f84['offset'](_0x4957f5[_0x63da('0x1e')]||0x0);return dbH['sequelize'][_0x63da('0x35')](_0x2c04ac[_0x63da('0x85')](),{'type':dbH[_0x63da('0xa4')]['QueryTypes'][_0x63da('0x87')]})['then'](function(_0x284563){if(!_0x284563['length']){_0x27adb9=0x0;}else{_0x27adb9=_0x284563[0x0][_0x63da('0x21')]||0x0;}return dbH['sequelize'][_0x63da('0x35')](_0x1a2f84[_0x63da('0x85')](),{'type':dbH[_0x63da('0xa4')]['QueryTypes'][_0x63da('0x87')]});})[_0x63da('0x28')](function(_0x361397){return{'rows':_0x361397||[],'count':_0x27adb9};});}});}exports['run']=function(_0x4bdebf,_0x2c690e){return runReport(_0x4bdebf[_0x63da('0x48')],_0x4bdebf['query'],_0x4bdebf[_0x63da('0x42')])[_0x63da('0x28')](respondWithResult(_0x2c690e,null))[_0x63da('0x46')](handleError(_0x2c690e,null));};exports[_0x63da('0xa5')]=runReport;exports[_0x63da('0x35')]=function(_0x4312dd,_0xf4f38d){var _0x167411=0xa;var _0x1ea9e7=[_0x63da('0x54'),'left_join',_0x63da('0x55'),_0x63da('0x56')];var _0x3cf3f4={'SUM':_0x63da('0x57'),'COUNT':_0x63da('0x58'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x63da('0x59'),'MIN':_0x63da('0x8a'),'AVG':_0x63da('0x5a'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x63da('0x5d')};var _0x399571={'SEC_TO_TIME':_0x63da('0x8b'),'DATE':_0x63da('0x5e'),'HOUR':'HOUR(%s)','ROUND':_0x63da('0x60'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x40992e=function(_0x527ca0){return!_[_0x63da('0x62')]([_0x63da('0x63'),_0x63da('0x8c'),_0x63da('0x64'),_0x63da('0x65')],_0x527ca0);};var _0x28874b=function(_0x2cbecf){if(!_0x2cbecf||!_0x2cbecf[_0x63da('0x66')][_0x63da('0x3b')]){return'';}for(var _0x2afb51='(',_0xb771cb=0x0;_0xb771cb<_0x2cbecf['rules'][_0x63da('0x3b')];_0xb771cb+=0x1){_0xb771cb>0x0&&(_0x2afb51+='\x20'+_0x2cbecf['operator']+'\x20');_0x2afb51+=_0x2cbecf[_0x63da('0x66')][_0xb771cb][_0x63da('0x68')]?_0x28874b(_0x2cbecf[_0x63da('0x66')][_0xb771cb]['group']):_0x2cbecf['rules'][_0xb771cb][_0x63da('0x69')]+'\x20'+_0x2cbecf[_0x63da('0x66')][_0xb771cb][_0x63da('0x6a')]+(_0x40992e(_0x2cbecf['rules'][_0xb771cb][_0x63da('0x6a')])?'\x20'+_0x2cbecf[_0x63da('0x66')][_0xb771cb][_0x63da('0x6b')]:'');}return _0x2afb51+')';};var _0x3d4dd6={'where':{'id':_0x4312dd[_0x63da('0x48')]['id']}},_0x521e3f,_0x5e11bd,_0x581bca,_0x48edda,_0x48a5a4;_0x3d4dd6=_[_0x63da('0x49')]({},_0x3d4dd6,_0x4312dd[_0x63da('0x42')]);return db[_0x63da('0x31')][_0x63da('0x4a')](_0x3d4dd6)[_0x63da('0x28')](function(_0x14763c){if(_0x14763c){_0x521e3f=_0x14763c;return _0x14763c[_0x63da('0x6c')]();}return null;})[_0x63da('0x28')](function(_0x4d6e9a){if(_0x4d6e9a){if(!_0x4d6e9a[_0x63da('0x3b')]){throw new db[(_0x63da('0x8d'))][(_0x63da('0x6d'))](_0x63da('0x6e'),0x193);}_0x5e11bd=_0x4d6e9a;return db[_0x63da('0x6f')][_0x63da('0x8e')]({'raw':!![]});}return null;})['then'](function(_0x42e36d){if(_0x42e36d){_0x581bca=_[_0x63da('0x70')](_0x42e36d,'id');var _0xa1aa4f;var _0x3c4d14=squel[_0x63da('0x71')]();_0x3c4d14[_0x63da('0x72')](_0x521e3f[_0x63da('0x73')]);for(var _0x29b03c=0x0;_0x29b03c<_0x5e11bd['length'];_0x29b03c+=0x1){_0xa1aa4f=_0x5e11bd[_0x29b03c]['MetricId']?_0x581bca[_0x5e11bd[_0x29b03c][_0x63da('0x74')]][_0x63da('0xa6')]:_0x5e11bd[_0x29b03c][_0x63da('0x69')];_0xa1aa4f=_0x5e11bd[_0x29b03c][_0x63da('0x75')]?_[_0x63da('0x76')](_0x3cf3f4[_0x5e11bd[_0x29b03c][_0x63da('0x75')]],'%s',_0xa1aa4f):_0xa1aa4f;_0xa1aa4f=_0x5e11bd[_0x29b03c][_0x63da('0x77')]?_[_0x63da('0x76')](_0x399571[_0x5e11bd[_0x29b03c]['format']],'%s',_0xa1aa4f):_0xa1aa4f;if(_0x5e11bd[_0x29b03c][_0x63da('0x78')]){_0x3c4d14[_0x63da('0x68')](_0xa1aa4f);}_0x5e11bd[_0x29b03c]['orderBy']&&_0x3c4d14[_0x63da('0x3e')](_0xa1aa4f,_0x5e11bd[_0x29b03c]['orderBy']===_0x63da('0x7a')?![]:!![]);_0x3c4d14['field'](_0xa1aa4f,_0x5e11bd[_0x29b03c]['alias']||_0xa1aa4f);}if(_0x521e3f[_0x63da('0x7c')]){_0x521e3f[_0x63da('0x7c')]=JSON[_0x63da('0x7d')](_0x521e3f[_0x63da('0x7c')]);for(var _0x406b0c=0x0;_0x406b0c<_0x521e3f[_0x63da('0x7c')][_0x63da('0x3b')];_0x406b0c+=0x1){if(_0x521e3f[_0x63da('0x7c')][_0x406b0c][_0x63da('0x34')]&&_['includes'](_0x1ea9e7,_0x521e3f[_0x63da('0x7c')][_0x406b0c][_0x63da('0x34')])&&_0x521e3f[_0x63da('0x7c')][_0x406b0c][_0x63da('0x80')]&&_0x521e3f['joins'][_0x406b0c][_0x63da('0x7e')]&&_0x521e3f[_0x63da('0x7c')][_0x406b0c][_0x63da('0x7f')]){_0x3c4d14[_0x521e3f['joins'][_0x406b0c][_0x63da('0x34')]](_0x521e3f[_0x63da('0x7c')][_0x406b0c][_0x63da('0x7e')],null,util['format'](_0x63da('0x8f'),_0x521e3f[_0x63da('0x73')],_0x521e3f[_0x63da('0x7c')][_0x406b0c]['parentKey'],_0x521e3f[_0x63da('0x7c')][_0x406b0c][_0x63da('0x7e')],_0x521e3f[_0x63da('0x7c')][_0x406b0c][_0x63da('0x7f')]));}}}if(_0x521e3f['conditions']){_0x521e3f['conditions']=JSON['parse'](_0x521e3f[_0x63da('0x81')]);_0x3c4d14[_0x63da('0x82')](_0x28874b(_0x521e3f[_0x63da('0x81')][_0x63da('0x68')]));}_0x48a5a4=_0x3c4d14[_0x63da('0x90')]();_0x3c4d14['limit'](_0x167411);_0x3c4d14['offset'](0x0);logger[_0x63da('0x83')]('Limited\x20Query:',_0x3c4d14[_0x63da('0x85')]());return dbH['sequelize'][_0x63da('0x35')](_0x3c4d14[_0x63da('0x85')](),{'type':dbH['sequelize'][_0x63da('0x86')][_0x63da('0x87')]});}})[_0x63da('0x28')](function(){return{'sql':_0x48a5a4[_0x63da('0x85')]()};})[_0x63da('0x28')](respondWithResult(_0xf4f38d,null))[_0x63da('0x46')](handleError(_0xf4f38d,null));};