Built motion from commit (unavailable).|2.5.4
[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 _0x0ef0=['CustomReports','UserProfileResource','end','stack','name','send','AnalyticCustomReport','rawAttributes','type','key','model','map','keys','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','where','VIRTUAL','filter','merge','includeAll','include','findAll','rows','catch','show','params','fields','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','error','preview','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\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','field','condition','value','options','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','replace','function','format','groupBy','group','orderBy','order','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','join','COUNT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','IS\x20NULL','getFields','metric','No\x20available\x20data','output','web','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','countTable','run','runReport','Sequelize','DESC','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x0ef0,0x80));var _0x00ef=function(_0x56c758,_0x540591){_0x56c758=_0x56c758-0x0;var _0x9bb0db=_0x0ef0[_0x56c758];return _0x9bb0db;};'use strict';var pdf=require(_0x00ef('0x0'));var emlformat=require(_0x00ef('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x00ef('0x2'));var jsonpatch=require(_0x00ef('0x3'));var rp=require(_0x00ef('0x4'));var moment=require(_0x00ef('0x5'));var BPromise=require(_0x00ef('0x6'));var Mustache=require(_0x00ef('0x7'));var util=require('util');var path=require('path');var sox=require(_0x00ef('0x8'));var csv=require(_0x00ef('0x9'));var ejs=require(_0x00ef('0xa'));var fs=require('fs');var _=require(_0x00ef('0xb'));var squel=require('squel');var crypto=require(_0x00ef('0xc'));var jsforce=require(_0x00ef('0xd'));var deskjs=require(_0x00ef('0xe'));var toCsv=require(_0x00ef('0x9'));var querystring=require(_0x00ef('0xf'));var Papa=require('papaparse');var Redis=require(_0x00ef('0x10'));var authService=require(_0x00ef('0x11'));var qs=require(_0x00ef('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x00ef('0x13'));var logger=require('../../config/logger')(_0x00ef('0x14'));var utils=require(_0x00ef('0x15'));var config=require(_0x00ef('0x16'));var db=require(_0x00ef('0x17'))['db'];var dbH=require(_0x00ef('0x17'))['dbH'];function respondWithStatusCode(_0x217ac9,_0x4c9a9c){_0x4c9a9c=_0x4c9a9c||0xcc;return function(_0x1e1b41){if(_0x1e1b41){return _0x217ac9[_0x00ef('0x18')](_0x4c9a9c);}return _0x217ac9[_0x00ef('0x19')](_0x4c9a9c)['end']();};}function respondWithResult(_0x2bbc55,_0x4aed97){_0x4aed97=_0x4aed97||0xc8;return function(_0x5a657a){if(_0x5a657a){return _0x2bbc55[_0x00ef('0x19')](_0x4aed97)[_0x00ef('0x1a')](_0x5a657a);}};}function respondWithFilteredResult(_0x8f5256,_0x250c3d){return function(_0x5b60ec){if(_0x5b60ec){var _0x19aa34=_0x5b60ec[_0x00ef('0x1b')],_0x4a8a86=_0x250c3d['offset'],_0xbd149a=_0x250c3d[_0x00ef('0x1c')]+_0x250c3d[_0x00ef('0x1d')],_0x164690;if(_0xbd149a>=_0x19aa34){_0xbd149a=_0x19aa34;_0x164690=0xc8;}else{_0x164690=0xce;}_0x8f5256[_0x00ef('0x19')](_0x164690);return _0x8f5256[_0x00ef('0x1e')](_0x00ef('0x1f'),_0x4a8a86+'-'+_0xbd149a+'/'+_0x19aa34)[_0x00ef('0x1a')](_0x5b60ec);}return null;};}function patchUpdates(_0x437560){return function(_0x51031e){try{jsonpatch[_0x00ef('0x20')](_0x51031e,_0x437560,!![]);}catch(_0x2c0508){return BPromise[_0x00ef('0x21')](_0x2c0508);}return _0x51031e[_0x00ef('0x22')]();};}function saveUpdates(_0x3b815b,_0x3ab135){return function(_0x2f6998){if(_0x2f6998){return _0x2f6998[_0x00ef('0x23')](_0x3b815b)[_0x00ef('0x24')](function(_0x547e82){return _0x547e82;});}return null;};}function removeEntity(_0x369db9,_0x3772e4){return function(_0x413add){if(_0x413add){return _0x413add[_0x00ef('0x25')]()[_0x00ef('0x24')](function(){var _0x283d49=_0x413add[_0x00ef('0x26')]({'plain':!![]});var _0x6d76aa=_0x00ef('0x27');return db[_0x00ef('0x28')][_0x00ef('0x25')]({'where':{'type':_0x6d76aa,'resourceId':_0x283d49['id']}})['then'](function(){return _0x413add;});})[_0x00ef('0x24')](function(){_0x369db9[_0x00ef('0x19')](0xcc)[_0x00ef('0x29')]();});}};}function handleEntityNotFound(_0x305911,_0x515b09){return function(_0x50b38b){if(!_0x50b38b){_0x305911[_0x00ef('0x18')](0x194);}return _0x50b38b;};}function handleError(_0x278dbe,_0x27dece){_0x27dece=_0x27dece||0x1f4;return function(_0x26939e){logger['error'](_0x26939e[_0x00ef('0x2a')]);if(_0x26939e['name']){delete _0x26939e[_0x00ef('0x2b')];}_0x278dbe[_0x00ef('0x19')](_0x27dece)[_0x00ef('0x2c')](_0x26939e);};}exports['index']=function(_0x3f021e,_0xf8f7db){var _0x22c0c3={},_0x973720={},_0xb3869f={'count':0x0,'rows':[]};var _0x286e98=_['map'](db[_0x00ef('0x2d')][_0x00ef('0x2e')],function(_0x1be6a7){return{'name':_0x1be6a7['fieldName'],'type':_0x1be6a7[_0x00ef('0x2f')][_0x00ef('0x30')]};});_0x973720[_0x00ef('0x31')]=_[_0x00ef('0x32')](_0x286e98,_0x00ef('0x2b'));_0x973720['query']=_[_0x00ef('0x33')](_0x3f021e[_0x00ef('0x34')]);_0x973720[_0x00ef('0x35')]=_[_0x00ef('0x36')](_0x973720[_0x00ef('0x31')],_0x973720[_0x00ef('0x34')]);_0x22c0c3[_0x00ef('0x37')]=_['intersection'](_0x973720[_0x00ef('0x31')],qs['fields'](_0x3f021e[_0x00ef('0x34')]['fields']));_0x22c0c3[_0x00ef('0x37')]=_0x22c0c3[_0x00ef('0x37')][_0x00ef('0x38')]?_0x22c0c3['attributes']:_0x973720[_0x00ef('0x31')];if(!_0x3f021e[_0x00ef('0x34')][_0x00ef('0x39')](_0x00ef('0x3a'))){_0x22c0c3[_0x00ef('0x1d')]=qs['limit'](_0x3f021e[_0x00ef('0x34')]['limit']);_0x22c0c3[_0x00ef('0x1c')]=qs[_0x00ef('0x1c')](_0x3f021e['query'][_0x00ef('0x1c')]);}_0x22c0c3['order']=qs['sort'](_0x3f021e[_0x00ef('0x34')]['sort']);_0x22c0c3[_0x00ef('0x3b')]=qs[_0x00ef('0x35')](_['pick'](_0x3f021e[_0x00ef('0x34')],_0x973720['filters']),_0x286e98);if(_0x3f021e[_0x00ef('0x34')]['filter']){_0x22c0c3[_0x00ef('0x3b')]=_['merge'](_0x22c0c3[_0x00ef('0x3b')],{'$or':_['map'](_0x286e98,function(_0x22179f){if(_0x22179f[_0x00ef('0x2f')]!==_0x00ef('0x3c')){var _0x13e5a4={};_0x13e5a4[_0x22179f[_0x00ef('0x2b')]]={'$like':'%'+_0x3f021e[_0x00ef('0x34')][_0x00ef('0x3d')]+'%'};return _0x13e5a4;}})});}_0x22c0c3=_[_0x00ef('0x3e')]({},_0x22c0c3,_0x3f021e['options']);var _0x709250={'where':_0x22c0c3['where']};return db[_0x00ef('0x2d')]['count'](_0x709250)['then'](function(_0x484702){_0xb3869f['count']=_0x484702;if(_0x3f021e['query'][_0x00ef('0x3f')]){_0x22c0c3[_0x00ef('0x40')]=[{'all':!![]}];}return db[_0x00ef('0x2d')][_0x00ef('0x41')](_0x22c0c3);})[_0x00ef('0x24')](function(_0x212539){_0xb3869f[_0x00ef('0x42')]=_0x212539;return _0xb3869f;})[_0x00ef('0x24')](respondWithFilteredResult(_0xf8f7db,_0x22c0c3))[_0x00ef('0x43')](handleError(_0xf8f7db,null));};exports[_0x00ef('0x44')]=function(_0x171335,_0x20a7b6){var _0x513ef9={'raw':![],'where':{'id':_0x171335[_0x00ef('0x45')]['id']}},_0x565917={};_0x565917[_0x00ef('0x31')]=_[_0x00ef('0x33')](db[_0x00ef('0x2d')][_0x00ef('0x2e')]);_0x565917[_0x00ef('0x34')]=_[_0x00ef('0x33')](_0x171335[_0x00ef('0x34')]);_0x565917[_0x00ef('0x35')]=_[_0x00ef('0x36')](_0x565917['model'],_0x565917[_0x00ef('0x34')]);_0x513ef9[_0x00ef('0x37')]=_[_0x00ef('0x36')](_0x565917[_0x00ef('0x31')],qs[_0x00ef('0x46')](_0x171335['query']['fields']));_0x513ef9[_0x00ef('0x37')]=_0x513ef9[_0x00ef('0x37')]['length']?_0x513ef9[_0x00ef('0x37')]:_0x565917[_0x00ef('0x31')];if(_0x171335[_0x00ef('0x34')][_0x00ef('0x3f')]){_0x513ef9['include']=[{'all':!![]}];}_0x513ef9=_[_0x00ef('0x3e')]({},_0x513ef9,_0x171335['options']);return db[_0x00ef('0x2d')][_0x00ef('0x47')](_0x513ef9)[_0x00ef('0x24')](handleEntityNotFound(_0x20a7b6,null))[_0x00ef('0x24')](respondWithResult(_0x20a7b6,null))['catch'](handleError(_0x20a7b6,null));};exports['create']=function(_0x67cd51,_0x379f50){return db[_0x00ef('0x2d')][_0x00ef('0x48')](_0x67cd51[_0x00ef('0x49')],{})[_0x00ef('0x24')](function(_0x362c6b){var _0x4d7124=_0x67cd51['user'][_0x00ef('0x26')]({'plain':!![]});if(!_0x4d7124)throw new Error(_0x00ef('0x4a'));if(_0x4d7124['role']===_0x00ef('0x4b')){var _0xf88a0d=_0x362c6b[_0x00ef('0x26')]({'plain':!![]});var _0x9d6a43='Reports';return db[_0x00ef('0x4c')]['find']({'where':{'name':_0x9d6a43,'userProfileId':_0x4d7124[_0x00ef('0x4d')]},'raw':!![]})[_0x00ef('0x24')](function(_0x25e759){if(_0x25e759&&_0x25e759[_0x00ef('0x4e')]===0x0){return db[_0x00ef('0x28')]['create']({'name':_0xf88a0d[_0x00ef('0x2b')],'resourceId':_0xf88a0d['id'],'type':_0x00ef('0x27'),'sectionId':_0x25e759['id']},{})[_0x00ef('0x24')](function(){return _0x362c6b;});}else{return _0x362c6b;}})[_0x00ef('0x43')](function(_0x23e6ab){logger[_0x00ef('0x4f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x23e6ab);throw _0x23e6ab;});}return _0x362c6b;})[_0x00ef('0x24')](respondWithResult(_0x379f50,0xc9))[_0x00ef('0x43')](handleError(_0x379f50,null));};exports[_0x00ef('0x23')]=function(_0x1ddf67,_0x2af867){if(_0x1ddf67[_0x00ef('0x49')]['id']){delete _0x1ddf67[_0x00ef('0x49')]['id'];}return db[_0x00ef('0x2d')][_0x00ef('0x47')]({'where':{'id':_0x1ddf67['params']['id']}})[_0x00ef('0x24')](handleEntityNotFound(_0x2af867,null))['then'](saveUpdates(_0x1ddf67[_0x00ef('0x49')],null))[_0x00ef('0x24')](respondWithResult(_0x2af867,null))[_0x00ef('0x43')](handleError(_0x2af867,null));};exports[_0x00ef('0x25')]=function(_0x6b17a1,_0x4aa5d2){return db[_0x00ef('0x2d')][_0x00ef('0x47')]({'where':{'id':_0x6b17a1[_0x00ef('0x45')]['id']}})[_0x00ef('0x24')](handleEntityNotFound(_0x4aa5d2,null))[_0x00ef('0x24')](removeEntity(_0x4aa5d2,null))[_0x00ef('0x43')](handleError(_0x4aa5d2,null));};exports[_0x00ef('0x50')]=function(_0x5d3464,_0x31983e){var _0x102903=0xa;var _0x30fe1b=['join',_0x00ef('0x51'),_0x00ef('0x52'),_0x00ef('0x53')];var _0x5098a5={'SUM':_0x00ef('0x54'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x00ef('0x55'),'MAX':_0x00ef('0x56'),'MIN':_0x00ef('0x57'),'AVG':_0x00ef('0x58'),'GROUP_CONCAT':_0x00ef('0x59'),'GROUP_CONCAT ASC':_0x00ef('0x5a'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x19f89b={'SEC_TO_TIME':_0x00ef('0x5b'),'DATE':_0x00ef('0x5c'),'HOUR':_0x00ef('0x5d'),'ROUND':_0x00ef('0x5e'),'UNIX_TIMESTAMP':_0x00ef('0x5f')};var _0x591af1=function(_0xcabbe5){return!_[_0x00ef('0x60')](['IS\x20NULL',_0x00ef('0x61'),_0x00ef('0x62'),_0x00ef('0x63')],_0xcabbe5);};var _0x53828a=function(_0x34a30d){if(!_0x34a30d||!_0x34a30d['rules'][_0x00ef('0x38')]){return'';}for(var _0x4b355e='(',_0x3aa5c1=0x0;_0x3aa5c1<_0x34a30d[_0x00ef('0x64')]['length'];_0x3aa5c1+=0x1){_0x3aa5c1>0x0&&(_0x4b355e+='\x20'+_0x34a30d[_0x00ef('0x65')]+'\x20');_0x4b355e+=_0x34a30d[_0x00ef('0x64')][_0x3aa5c1]['group']?_0x53828a(_0x34a30d[_0x00ef('0x64')][_0x3aa5c1]['group']):_0x34a30d['rules'][_0x3aa5c1][_0x00ef('0x66')]+'\x20'+_0x34a30d[_0x00ef('0x64')][_0x3aa5c1][_0x00ef('0x67')]+(_0x591af1(_0x34a30d[_0x00ef('0x64')][_0x3aa5c1][_0x00ef('0x67')])?'\x20'+_0x34a30d[_0x00ef('0x64')][_0x3aa5c1][_0x00ef('0x68')]:'');}return _0x4b355e+')';};var _0x50104a={'where':{'id':_0x5d3464[_0x00ef('0x45')]['id']}},_0x387907,_0x3ae9c7,_0x3b1d80,_0x589869,_0x3058e9;_0x50104a=_[_0x00ef('0x3e')]({},_0x50104a,_0x5d3464[_0x00ef('0x69')]);return db[_0x00ef('0x2d')][_0x00ef('0x47')](_0x50104a)[_0x00ef('0x24')](function(_0x23a15f){if(_0x23a15f){_0x387907=_0x23a15f;return _0x23a15f['getFields']();}return null;})['then'](function(_0x131446){if(_0x131446){if(!_0x131446[_0x00ef('0x38')]){throw new db['Sequelize'][(_0x00ef('0x6a'))](_0x00ef('0x6b'),0x193);}_0x3ae9c7=_0x131446;return db[_0x00ef('0x6c')][_0x00ef('0x41')]({'raw':!![]});}return null;})[_0x00ef('0x24')](function(_0x21c9a5){if(_0x21c9a5){_0x3b1d80=_[_0x00ef('0x6d')](_0x21c9a5,'id');var _0x458961;var _0x2b234f=squel[_0x00ef('0x6e')]();_0x2b234f[_0x00ef('0x6f')](_0x387907[_0x00ef('0x70')]);for(var _0x11a94b=0x0;_0x11a94b<_0x3ae9c7['length'];_0x11a94b+=0x1){_0x458961=_0x3ae9c7[_0x11a94b][_0x00ef('0x71')]?_0x3b1d80[_0x3ae9c7[_0x11a94b]['MetricId']]['metric']:_0x3ae9c7[_0x11a94b][_0x00ef('0x66')];_0x458961=_0x3ae9c7[_0x11a94b]['function']?_[_0x00ef('0x72')](_0x5098a5[_0x3ae9c7[_0x11a94b][_0x00ef('0x73')]],'%s',_0x458961):_0x458961;_0x458961=_0x3ae9c7[_0x11a94b][_0x00ef('0x74')]?_[_0x00ef('0x72')](_0x19f89b[_0x3ae9c7[_0x11a94b][_0x00ef('0x74')]],'%s',_0x458961):_0x458961;if(_0x3ae9c7[_0x11a94b][_0x00ef('0x75')]){_0x2b234f[_0x00ef('0x76')](_0x458961);}_0x3ae9c7[_0x11a94b][_0x00ef('0x77')]&&_0x2b234f[_0x00ef('0x78')](_0x458961,_0x3ae9c7[_0x11a94b][_0x00ef('0x77')]==='DESC'?![]:!![]);_0x2b234f[_0x00ef('0x66')](_0x458961,_0x3ae9c7[_0x11a94b][_0x00ef('0x79')]||_0x458961);}if(_0x387907[_0x00ef('0x7a')]){_0x387907[_0x00ef('0x7a')]=JSON[_0x00ef('0x7b')](_0x387907[_0x00ef('0x7a')]);for(var _0x4abcca=0x0;_0x4abcca<_0x387907['joins'][_0x00ef('0x38')];_0x4abcca+=0x1){if(_0x387907[_0x00ef('0x7a')][_0x4abcca][_0x00ef('0x2f')]&&_[_0x00ef('0x60')](_0x30fe1b,_0x387907['joins'][_0x4abcca]['type'])&&_0x387907[_0x00ef('0x7a')][_0x4abcca][_0x00ef('0x7c')]&&_0x387907[_0x00ef('0x7a')][_0x4abcca][_0x00ef('0x7d')]&&_0x387907[_0x00ef('0x7a')][_0x4abcca][_0x00ef('0x7e')]){_0x2b234f[_0x387907['joins'][_0x4abcca]['type']](_0x387907[_0x00ef('0x7a')][_0x4abcca][_0x00ef('0x7d')],null,util[_0x00ef('0x74')](_0x00ef('0x7f'),_0x387907[_0x00ef('0x70')],_0x387907[_0x00ef('0x7a')][_0x4abcca][_0x00ef('0x7c')],_0x387907['joins'][_0x4abcca][_0x00ef('0x7d')],_0x387907[_0x00ef('0x7a')][_0x4abcca][_0x00ef('0x7e')]));}}}if(_0x387907['conditions']){_0x387907[_0x00ef('0x80')]=JSON['parse'](_0x387907[_0x00ef('0x80')]);_0x2b234f[_0x00ef('0x3b')](_0x53828a(_0x387907[_0x00ef('0x80')][_0x00ef('0x76')]));}_0x3058e9=_0x2b234f[_0x00ef('0x81')]();_0x2b234f['limit'](_0x102903);_0x2b234f[_0x00ef('0x1c')](0x0);logger[_0x00ef('0x82')](_0x00ef('0x83'),_0x2b234f[_0x00ef('0x84')]());return db[_0x00ef('0x85')][_0x00ef('0x34')](_0x2b234f[_0x00ef('0x84')](),{'type':db[_0x00ef('0x85')][_0x00ef('0x86')][_0x00ef('0x87')]});}})['then'](respondWithResult(_0x31983e,null))[_0x00ef('0x43')](handleError(_0x31983e,null));};function runReport(_0x5d4962,_0x210fb5,_0x442472){var _0x42db3d=_0x210fb5[_0x00ef('0x2b')];var _0xa99f30=0xa;var _0x1a7751=[_0x00ef('0x88'),_0x00ef('0x51'),_0x00ef('0x52'),_0x00ef('0x53')];var _0x247141={'SUM':_0x00ef('0x54'),'COUNT':_0x00ef('0x89'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x00ef('0x56'),'MIN':_0x00ef('0x57'),'AVG':_0x00ef('0x58'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x00ef('0x8a')};var _0x45fbe4={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x00ef('0x5d'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x30aa1f=function(_0xe8a407){return!_[_0x00ef('0x60')]([_0x00ef('0x8b'),_0x00ef('0x61'),_0x00ef('0x62'),'IS\x20NOT\x20EMPTY'],_0xe8a407);};var _0x1f5c49=function(_0x4d419c){if(!_0x4d419c||!_0x4d419c[_0x00ef('0x64')]['length']){return'';}for(var _0x101709='(',_0x14e270=0x0;_0x14e270<_0x4d419c[_0x00ef('0x64')][_0x00ef('0x38')];_0x14e270+=0x1){_0x14e270>0x0&&(_0x101709+='\x20'+_0x4d419c[_0x00ef('0x65')]+'\x20');_0x101709+=_0x4d419c['rules'][_0x14e270][_0x00ef('0x76')]?_0x1f5c49(_0x4d419c['rules'][_0x14e270]['group']):_0x4d419c[_0x00ef('0x64')][_0x14e270][_0x00ef('0x66')]+'\x20'+_0x4d419c[_0x00ef('0x64')][_0x14e270]['condition']+(_0x30aa1f(_0x4d419c['rules'][_0x14e270][_0x00ef('0x67')])?'\x20'+_0x4d419c['rules'][_0x14e270]['value']:'');}return _0x101709+')';};var _0x5773f6={'where':{'id':_0x5d4962['id']}},_0x279c8b,_0x52a717,_0x509833,_0x273315,_0x366706;_0x5773f6=_['merge']({},_0x5773f6,_0x442472);return db[_0x00ef('0x2d')][_0x00ef('0x47')](_0x5773f6)['then'](function(_0x95002f){if(_0x95002f){_0x279c8b=_0x95002f;return _0x95002f[_0x00ef('0x8c')]();}return null;})[_0x00ef('0x24')](function(_0x22e30b){if(_0x22e30b){if(!_0x22e30b[_0x00ef('0x38')]){throw new db['Sequelize'][(_0x00ef('0x6a'))](_0x00ef('0x6b'),0x193);}_0x52a717=_0x22e30b;return db[_0x00ef('0x6c')]['findAll']({'raw':!![]});}return null;})[_0x00ef('0x24')](function(_0x25e757){if(_0x25e757){_0x509833=_[_0x00ef('0x6d')](_0x25e757,'id');var _0x33de48;var _0x9ea2e0=squel[_0x00ef('0x6e')]();_0x9ea2e0['from'](_0x279c8b[_0x00ef('0x70')]);for(var _0xbffeca=0x0;_0xbffeca<_0x52a717['length'];_0xbffeca+=0x1){_0x33de48=_0x52a717[_0xbffeca]['MetricId']?_0x509833[_0x52a717[_0xbffeca]['MetricId']][_0x00ef('0x8d')]:_0x52a717[_0xbffeca][_0x00ef('0x66')];_0x33de48=_0x52a717[_0xbffeca][_0x00ef('0x73')]?_[_0x00ef('0x72')](_0x247141[_0x52a717[_0xbffeca][_0x00ef('0x73')]],'%s',_0x33de48):_0x33de48;_0x33de48=_0x52a717[_0xbffeca][_0x00ef('0x74')]?_[_0x00ef('0x72')](_0x45fbe4[_0x52a717[_0xbffeca][_0x00ef('0x74')]],'%s',_0x33de48):_0x33de48;if(_0x52a717[_0xbffeca][_0x00ef('0x75')]){_0x9ea2e0[_0x00ef('0x76')](_0x33de48);}_0x52a717[_0xbffeca][_0x00ef('0x77')]&&_0x9ea2e0['order'](_0x33de48,_0x52a717[_0xbffeca][_0x00ef('0x77')]==='DESC'?![]:!![]);_0x9ea2e0[_0x00ef('0x66')](_0x33de48,_0x52a717[_0xbffeca][_0x00ef('0x79')]||_0x33de48);}if(_0x279c8b['joins']){_0x279c8b[_0x00ef('0x7a')]=JSON[_0x00ef('0x7b')](_0x279c8b[_0x00ef('0x7a')]);for(var _0x37abba=0x0;_0x37abba<_0x279c8b[_0x00ef('0x7a')][_0x00ef('0x38')];_0x37abba+=0x1){if(_0x279c8b[_0x00ef('0x7a')][_0x37abba][_0x00ef('0x2f')]&&_['includes'](_0x1a7751,_0x279c8b['joins'][_0x37abba][_0x00ef('0x2f')])&&_0x279c8b[_0x00ef('0x7a')][_0x37abba][_0x00ef('0x7c')]&&_0x279c8b[_0x00ef('0x7a')][_0x37abba]['foreignTable']&&_0x279c8b[_0x00ef('0x7a')][_0x37abba][_0x00ef('0x7e')]){_0x9ea2e0[_0x279c8b['joins'][_0x37abba]['type']](_0x279c8b[_0x00ef('0x7a')][_0x37abba][_0x00ef('0x7d')],null,util[_0x00ef('0x74')](_0x00ef('0x7f'),_0x279c8b[_0x00ef('0x70')],_0x279c8b[_0x00ef('0x7a')][_0x37abba][_0x00ef('0x7c')],_0x279c8b[_0x00ef('0x7a')][_0x37abba]['foreignTable'],_0x279c8b['joins'][_0x37abba]['foreignKey']));}}}if(_0x279c8b['conditions']){_0x279c8b['conditions']=JSON[_0x00ef('0x7b')](_0x279c8b[_0x00ef('0x80')]);_0x9ea2e0['where'](_0x1f5c49(_0x279c8b[_0x00ef('0x80')]['group']));}_0x366706=_0x9ea2e0['clone']();_0x9ea2e0[_0x00ef('0x1d')](_0xa99f30);_0x9ea2e0[_0x00ef('0x1c')](0x0);logger[_0x00ef('0x82')](_0x00ef('0x83'),_0x9ea2e0[_0x00ef('0x84')]());return db[_0x00ef('0x85')][_0x00ef('0x34')](_0x9ea2e0[_0x00ef('0x84')](),{'type':db[_0x00ef('0x85')][_0x00ef('0x86')][_0x00ef('0x87')]});}})['then'](function(_0xe8f5cf){if(!_0xe8f5cf[_0x00ef('0x38')]){throw new db['Sequelize'][(_0x00ef('0x6a'))](_0x00ef('0x8e'),0xcc);}if(_0x210fb5[_0x00ef('0x8f')]===_0x00ef('0x90')){return null;}var _0x5b40cd=_['merge'](_0x210fb5,{'name':_0x210fb5['fullPath']||_0x210fb5[_0x00ef('0x2b')]||_0x279c8b['name'],'basename':_0x42db3d,'savename':util[_0x00ef('0x74')](_0x00ef('0x91'),_0x210fb5['name']||_0x279c8b['name'],require(_0x00ef('0x92'))[_0x00ef('0x93')](0x4),_0x210fb5[_0x00ef('0x8f')]||_0x00ef('0x94')),'reportId':_0x279c8b['id'],'reportType':_0x00ef('0x95')});return db[_0x00ef('0x96')]['create'](_0x5b40cd,{'raw':!![]});})['then'](function(_0x25e8b7){if(_0x279c8b[_0x00ef('0x70')]===_0x00ef('0x97')){_0x366706[_0x00ef('0x3b')](_0x279c8b['table']+_0x00ef('0x98'),_0x210fb5[_0x00ef('0x99')],_0x210fb5[_0x00ef('0x9a')]);}else{_0x366706[_0x00ef('0x3b')](_0x279c8b['table']+_0x00ef('0x9b'),_0x210fb5[_0x00ef('0x99')],_0x210fb5[_0x00ef('0x9a')]);}if(_0x25e8b7){logger[_0x00ef('0x9c')](_0x00ef('0x9d'),_0x366706['toString']());require(_0x00ef('0x9e'))[_0x00ef('0x9f')](path[_0x00ef('0x88')](__dirname,_0x00ef('0xa0'),_0x25e8b7['output']),[_0x25e8b7['id'],_0x366706[_0x00ef('0x84')](),path[_0x00ef('0x88')](__dirname,_0x00ef('0xa1'),_0x25e8b7['savename']),_0x42db3d]);return _0x25e8b7;}else{var _0x2d8f12=squel['select']();_0x2d8f12[_0x00ef('0x6f')]('('+_0x366706[_0x00ef('0x84')]()+')',_0x00ef('0xa2'));_0x2d8f12['field']('COUNT(*)',_0x00ef('0x1b'));_0x366706[_0x00ef('0x1d')](_0x210fb5[_0x00ef('0x1d')]||_0xa99f30);_0x366706['offset'](_0x210fb5[_0x00ef('0x1c')]||0x0);return dbH[_0x00ef('0x85')][_0x00ef('0x34')](_0x2d8f12[_0x00ef('0x84')](),{'type':dbH['sequelize'][_0x00ef('0x86')][_0x00ef('0x87')]})['then'](function(_0xbdc975){if(!_0xbdc975[_0x00ef('0x38')]){_0x273315=0x0;}else{_0x273315=_0xbdc975[0x0][_0x00ef('0x1b')]||0x0;}return dbH['sequelize'][_0x00ef('0x34')](_0x366706[_0x00ef('0x84')](),{'type':dbH[_0x00ef('0x85')]['QueryTypes'][_0x00ef('0x87')]});})[_0x00ef('0x24')](function(_0xb11102){return{'rows':_0xb11102||[],'count':_0x273315};});}});}exports[_0x00ef('0xa3')]=function(_0x5dbec1,_0x47a378){return runReport(_0x5dbec1[_0x00ef('0x45')],_0x5dbec1[_0x00ef('0x34')],_0x5dbec1[_0x00ef('0x69')])['then'](respondWithResult(_0x47a378,null))[_0x00ef('0x43')](handleError(_0x47a378,null));};exports[_0x00ef('0xa4')]=runReport;exports['query']=function(_0x46804b,_0x4fe549){var _0x1f22b7=0xa;var _0x1043a1=[_0x00ef('0x88'),_0x00ef('0x51'),_0x00ef('0x52'),_0x00ef('0x53')];var _0x134062={'SUM':_0x00ef('0x54'),'COUNT':_0x00ef('0x89'),'COUNT DISTINCT':_0x00ef('0x55'),'MAX':_0x00ef('0x56'),'MIN':_0x00ef('0x57'),'AVG':_0x00ef('0x58'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x00ef('0x8a')};var _0x447447={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x00ef('0x5c'),'HOUR':_0x00ef('0x5d'),'ROUND':_0x00ef('0x5e'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x354818=function(_0x5e08cd){return!_[_0x00ef('0x60')]([_0x00ef('0x8b'),_0x00ef('0x61'),'IS\x20EMPTY',_0x00ef('0x63')],_0x5e08cd);};var _0x26c2f0=function(_0x5a97b8){if(!_0x5a97b8||!_0x5a97b8[_0x00ef('0x64')]['length']){return'';}for(var _0x20fd57='(',_0x4fd829=0x0;_0x4fd829<_0x5a97b8[_0x00ef('0x64')]['length'];_0x4fd829+=0x1){_0x4fd829>0x0&&(_0x20fd57+='\x20'+_0x5a97b8[_0x00ef('0x65')]+'\x20');_0x20fd57+=_0x5a97b8[_0x00ef('0x64')][_0x4fd829][_0x00ef('0x76')]?_0x26c2f0(_0x5a97b8[_0x00ef('0x64')][_0x4fd829][_0x00ef('0x76')]):_0x5a97b8[_0x00ef('0x64')][_0x4fd829][_0x00ef('0x66')]+'\x20'+_0x5a97b8[_0x00ef('0x64')][_0x4fd829][_0x00ef('0x67')]+(_0x354818(_0x5a97b8[_0x00ef('0x64')][_0x4fd829][_0x00ef('0x67')])?'\x20'+_0x5a97b8[_0x00ef('0x64')][_0x4fd829][_0x00ef('0x68')]:'');}return _0x20fd57+')';};var _0x4420c5={'where':{'id':_0x46804b[_0x00ef('0x45')]['id']}},_0x7c0e60,_0x356509,_0x4aa3ca,_0x24f672,_0x52759c;_0x4420c5=_['merge']({},_0x4420c5,_0x46804b[_0x00ef('0x69')]);return db[_0x00ef('0x2d')][_0x00ef('0x47')](_0x4420c5)['then'](function(_0x3c5ab4){if(_0x3c5ab4){_0x7c0e60=_0x3c5ab4;return _0x3c5ab4[_0x00ef('0x8c')]();}return null;})[_0x00ef('0x24')](function(_0x16007a){if(_0x16007a){if(!_0x16007a[_0x00ef('0x38')]){throw new db[(_0x00ef('0xa5'))][(_0x00ef('0x6a'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x356509=_0x16007a;return db[_0x00ef('0x6c')][_0x00ef('0x41')]({'raw':!![]});}return null;})[_0x00ef('0x24')](function(_0x4ac3df){if(_0x4ac3df){_0x4aa3ca=_['keyBy'](_0x4ac3df,'id');var _0x6e3662;var _0x302737=squel[_0x00ef('0x6e')]();_0x302737['from'](_0x7c0e60[_0x00ef('0x70')]);for(var _0x3cd5f4=0x0;_0x3cd5f4<_0x356509[_0x00ef('0x38')];_0x3cd5f4+=0x1){_0x6e3662=_0x356509[_0x3cd5f4][_0x00ef('0x71')]?_0x4aa3ca[_0x356509[_0x3cd5f4][_0x00ef('0x71')]][_0x00ef('0x8d')]:_0x356509[_0x3cd5f4]['field'];_0x6e3662=_0x356509[_0x3cd5f4][_0x00ef('0x73')]?_[_0x00ef('0x72')](_0x134062[_0x356509[_0x3cd5f4][_0x00ef('0x73')]],'%s',_0x6e3662):_0x6e3662;_0x6e3662=_0x356509[_0x3cd5f4][_0x00ef('0x74')]?_[_0x00ef('0x72')](_0x447447[_0x356509[_0x3cd5f4][_0x00ef('0x74')]],'%s',_0x6e3662):_0x6e3662;if(_0x356509[_0x3cd5f4][_0x00ef('0x75')]){_0x302737[_0x00ef('0x76')](_0x6e3662);}_0x356509[_0x3cd5f4][_0x00ef('0x77')]&&_0x302737[_0x00ef('0x78')](_0x6e3662,_0x356509[_0x3cd5f4][_0x00ef('0x77')]===_0x00ef('0xa6')?![]:!![]);_0x302737[_0x00ef('0x66')](_0x6e3662,_0x356509[_0x3cd5f4][_0x00ef('0x79')]||_0x6e3662);}if(_0x7c0e60[_0x00ef('0x7a')]){_0x7c0e60['joins']=JSON[_0x00ef('0x7b')](_0x7c0e60[_0x00ef('0x7a')]);for(var _0x295727=0x0;_0x295727<_0x7c0e60['joins'][_0x00ef('0x38')];_0x295727+=0x1){if(_0x7c0e60[_0x00ef('0x7a')][_0x295727][_0x00ef('0x2f')]&&_[_0x00ef('0x60')](_0x1043a1,_0x7c0e60[_0x00ef('0x7a')][_0x295727][_0x00ef('0x2f')])&&_0x7c0e60['joins'][_0x295727][_0x00ef('0x7c')]&&_0x7c0e60[_0x00ef('0x7a')][_0x295727]['foreignTable']&&_0x7c0e60[_0x00ef('0x7a')][_0x295727]['foreignKey']){_0x302737[_0x7c0e60[_0x00ef('0x7a')][_0x295727][_0x00ef('0x2f')]](_0x7c0e60[_0x00ef('0x7a')][_0x295727][_0x00ef('0x7d')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x7c0e60[_0x00ef('0x70')],_0x7c0e60[_0x00ef('0x7a')][_0x295727][_0x00ef('0x7c')],_0x7c0e60[_0x00ef('0x7a')][_0x295727][_0x00ef('0x7d')],_0x7c0e60['joins'][_0x295727][_0x00ef('0x7e')]));}}}if(_0x7c0e60[_0x00ef('0x80')]){_0x7c0e60[_0x00ef('0x80')]=JSON[_0x00ef('0x7b')](_0x7c0e60['conditions']);_0x302737[_0x00ef('0x3b')](_0x26c2f0(_0x7c0e60[_0x00ef('0x80')][_0x00ef('0x76')]));}_0x52759c=_0x302737[_0x00ef('0x81')]();_0x302737[_0x00ef('0x1d')](_0x1f22b7);_0x302737['offset'](0x0);logger[_0x00ef('0x82')](_0x00ef('0x83'),_0x302737[_0x00ef('0x84')]());return db['sequelize'][_0x00ef('0x34')](_0x302737[_0x00ef('0x84')](),{'type':db[_0x00ef('0x85')][_0x00ef('0x86')][_0x00ef('0x87')]});}})[_0x00ef('0x24')](function(){return{'sql':_0x52759c[_0x00ef('0x84')]()};})[_0x00ef('0x24')](respondWithResult(_0x4fe549,null))[_0x00ef('0x43')](handleError(_0x4fe549,null));};