7c8e50fb625013109a6b534da874d103fc5edf99
[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 _0x82d0=['preview','left_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)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','replace','function','format','orderBy','order','joins','parse','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','parentKey','conditions','debug','Limited\x20Query:','toString','sequelize','SELECT','right_join','COUNT(DISTINCT\x20%s)','MIN(%s)','UNIX_TIMESTAMP(%s)','value','Sequelize','ValidationErrorItem','groupBy','DESC','web','fullPath','%s-%s.%s','generate','output','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','fork','join','../../components/export/','../../files/reports','savename','COUNT(*)','QueryTypes','run','clone','eml-format','zip-dir','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','DefaultReports','send','map','AnalyticDefaultReport','rawAttributes','fieldName','key','name','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','rows','catch','params','include','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body'];(function(_0x1cc325,_0x537298){var _0x33d644=function(_0x4cd101){while(--_0x4cd101){_0x1cc325['push'](_0x1cc325['shift']());}};_0x33d644(++_0x537298);}(_0x82d0,0x1a3));var _0x082d=function(_0x59cf41,_0x292757){_0x59cf41=_0x59cf41-0x0;var _0x3d7568=_0x82d0[_0x59cf41];return _0x3d7568;};'use strict';var emlformat=require(_0x082d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x082d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x082d('0x2'));var moment=require(_0x082d('0x3'));var BPromise=require(_0x082d('0x4'));var Mustache=require(_0x082d('0x5'));var util=require('util');var path=require('path');var sox=require(_0x082d('0x6'));var csv=require(_0x082d('0x7'));var ejs=require(_0x082d('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x082d('0x9'));var squel=require(_0x082d('0xa'));var crypto=require(_0x082d('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x082d('0xc'));var toCsv=require('to-csv');var querystring=require(_0x082d('0xd'));var Papa=require(_0x082d('0xe'));var Redis=require(_0x082d('0xf'));var authService=require(_0x082d('0x10'));var qs=require(_0x082d('0x11'));var as=require(_0x082d('0x12'));var hardwareService=require(_0x082d('0x13'));var logger=require(_0x082d('0x14'))(_0x082d('0x15'));var utils=require(_0x082d('0x16'));var config=require(_0x082d('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x082d('0x18'))['db'];var dbH=require(_0x082d('0x18'))[_0x082d('0x19')];function respondWithStatusCode(_0x5052aa,_0x1f8fe5){_0x1f8fe5=_0x1f8fe5||0xcc;return function(_0x17ae48){if(_0x17ae48){return _0x5052aa[_0x082d('0x1a')](_0x1f8fe5);}return _0x5052aa[_0x082d('0x1b')](_0x1f8fe5)[_0x082d('0x1c')]();};}function respondWithResult(_0x23196a,_0x4d8048){_0x4d8048=_0x4d8048||0xc8;return function(_0x50d1fd){if(_0x50d1fd){return _0x23196a[_0x082d('0x1b')](_0x4d8048)[_0x082d('0x1d')](_0x50d1fd);}};}function respondWithFilteredResult(_0x52bd8c,_0x6785c){return function(_0x34844d){if(_0x34844d){var _0x25f387=typeof _0x6785c[_0x082d('0x1e')]===_0x082d('0x1f')&&typeof _0x6785c[_0x082d('0x20')]===_0x082d('0x1f');var _0x4fcc89=_0x34844d[_0x082d('0x21')];var _0x2564a1=_0x25f387?0x0:_0x6785c[_0x082d('0x1e')];var _0x4524f1=_0x25f387?_0x34844d[_0x082d('0x21')]:_0x6785c[_0x082d('0x1e')]+_0x6785c[_0x082d('0x20')];var _0x418550;if(_0x4524f1>=_0x4fcc89){_0x4524f1=_0x4fcc89;_0x418550=0xc8;}else{_0x418550=0xce;}_0x52bd8c[_0x082d('0x1b')](_0x418550);return _0x52bd8c[_0x082d('0x22')](_0x082d('0x23'),_0x2564a1+'-'+_0x4524f1+'/'+_0x4fcc89)[_0x082d('0x1d')](_0x34844d);}return null;};}function patchUpdates(_0x142c7c){return function(_0x29a81d){try{jsonpatch[_0x082d('0x24')](_0x29a81d,_0x142c7c,!![]);}catch(_0x1f4a5c){return BPromise[_0x082d('0x25')](_0x1f4a5c);}return _0x29a81d[_0x082d('0x26')]();};}function saveUpdates(_0x1f0b4c,_0x528fb6){return function(_0x46a821){if(_0x46a821){return _0x46a821[_0x082d('0x27')](_0x1f0b4c)[_0x082d('0x28')](function(_0x2dafa8){return _0x2dafa8;});}return null;};}function removeEntity(_0x4b648b,_0x4ee1ce){return function(_0x3d1e72){if(_0x3d1e72){return _0x3d1e72[_0x082d('0x29')]()[_0x082d('0x28')](function(){var _0x39a6ea=_0x3d1e72[_0x082d('0x2a')]({'plain':!![]});var _0x41315e=_0x082d('0x2b');return db['UserProfileResource']['destroy']({'where':{'type':_0x41315e,'resourceId':_0x39a6ea['id']}})['then'](function(){return _0x3d1e72;});})[_0x082d('0x28')](function(){_0x4b648b[_0x082d('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5b18c7,_0x23b936){return function(_0x70da8b){if(!_0x70da8b){_0x5b18c7['sendStatus'](0x194);}return _0x70da8b;};}function handleError(_0x5a9e91,_0x27b8c8){_0x27b8c8=_0x27b8c8||0x1f4;return function(_0x41ccc8){logger['error'](_0x41ccc8['stack']);if(_0x41ccc8['name']){delete _0x41ccc8['name'];}_0x5a9e91[_0x082d('0x1b')](_0x27b8c8)[_0x082d('0x2c')](_0x41ccc8);};}exports['index']=function(_0x3eb2c1,_0x13bf11){var _0x4744b5={},_0x282a57={},_0x5ed8f5={'count':0x0,'rows':[]};var _0xa0208a=_[_0x082d('0x2d')](db[_0x082d('0x2e')][_0x082d('0x2f')],function(_0x4adc9f){return{'name':_0x4adc9f[_0x082d('0x30')],'type':_0x4adc9f['type'][_0x082d('0x31')]};});_0x282a57['model']=_[_0x082d('0x2d')](_0xa0208a,_0x082d('0x32'));_0x282a57[_0x082d('0x33')]=_[_0x082d('0x34')](_0x3eb2c1[_0x082d('0x33')]);_0x282a57[_0x082d('0x35')]=_[_0x082d('0x36')](_0x282a57[_0x082d('0x37')],_0x282a57['query']);_0x4744b5[_0x082d('0x38')]=_['intersection'](_0x282a57[_0x082d('0x37')],qs[_0x082d('0x39')](_0x3eb2c1['query']['fields']));_0x4744b5[_0x082d('0x38')]=_0x4744b5[_0x082d('0x38')][_0x082d('0x3a')]?_0x4744b5[_0x082d('0x38')]:_0x282a57['model'];if(!_0x3eb2c1[_0x082d('0x33')][_0x082d('0x3b')](_0x082d('0x3c'))){_0x4744b5[_0x082d('0x20')]=qs['limit'](_0x3eb2c1[_0x082d('0x33')][_0x082d('0x20')]);_0x4744b5[_0x082d('0x1e')]=qs['offset'](_0x3eb2c1[_0x082d('0x33')][_0x082d('0x1e')]);}_0x4744b5['order']=qs[_0x082d('0x3d')](_0x3eb2c1[_0x082d('0x33')][_0x082d('0x3d')]);_0x4744b5[_0x082d('0x3e')]=qs['filters'](_[_0x082d('0x3f')](_0x3eb2c1['query'],_0x282a57[_0x082d('0x35')]),_0xa0208a);if(_0x3eb2c1['query'][_0x082d('0x40')]){_0x4744b5[_0x082d('0x3e')]=_[_0x082d('0x41')](_0x4744b5[_0x082d('0x3e')],{'$or':_['map'](_0xa0208a,function(_0x82ee9a){if(_0x82ee9a[_0x082d('0x42')]!==_0x082d('0x43')){var _0x23ce48={};_0x23ce48[_0x82ee9a['name']]={'$like':'%'+_0x3eb2c1[_0x082d('0x33')]['filter']+'%'};return _0x23ce48;}})});}_0x4744b5=_['merge']({},_0x4744b5,_0x3eb2c1['options']);var _0x73145f={'where':_0x4744b5[_0x082d('0x3e')]};return db[_0x082d('0x2e')]['count'](_0x73145f)[_0x082d('0x28')](function(_0x48f35f){_0x5ed8f5[_0x082d('0x21')]=_0x48f35f;if(_0x3eb2c1['query'][_0x082d('0x44')]){_0x4744b5['include']=[{'all':!![]}];}return db[_0x082d('0x2e')]['findAll'](_0x4744b5);})[_0x082d('0x28')](function(_0x2fbe2a){_0x5ed8f5[_0x082d('0x45')]=_0x2fbe2a;return _0x5ed8f5;})[_0x082d('0x28')](respondWithFilteredResult(_0x13bf11,_0x4744b5))[_0x082d('0x46')](handleError(_0x13bf11,null));};exports['show']=function(_0x1cbac8,_0x59dbf9){var _0x3b152b={'raw':!![],'where':{'id':_0x1cbac8[_0x082d('0x47')]['id']}},_0x297595={};_0x297595[_0x082d('0x37')]=_[_0x082d('0x34')](db[_0x082d('0x2e')][_0x082d('0x2f')]);_0x297595[_0x082d('0x33')]=_[_0x082d('0x34')](_0x1cbac8[_0x082d('0x33')]);_0x297595['filters']=_[_0x082d('0x36')](_0x297595[_0x082d('0x37')],_0x297595['query']);_0x3b152b[_0x082d('0x38')]=_[_0x082d('0x36')](_0x297595[_0x082d('0x37')],qs[_0x082d('0x39')](_0x1cbac8[_0x082d('0x33')][_0x082d('0x39')]));_0x3b152b[_0x082d('0x38')]=_0x3b152b[_0x082d('0x38')][_0x082d('0x3a')]?_0x3b152b['attributes']:_0x297595[_0x082d('0x37')];if(_0x1cbac8[_0x082d('0x33')][_0x082d('0x44')]){_0x3b152b[_0x082d('0x48')]=[{'all':!![]}];}_0x3b152b=_['merge']({},_0x3b152b,_0x1cbac8[_0x082d('0x49')]);return db[_0x082d('0x2e')][_0x082d('0x4a')](_0x3b152b)[_0x082d('0x28')](handleEntityNotFound(_0x59dbf9,null))[_0x082d('0x28')](respondWithResult(_0x59dbf9,null))['catch'](handleError(_0x59dbf9,null));};exports[_0x082d('0x4b')]=function(_0x12196f,_0x3a5078){return db[_0x082d('0x2e')][_0x082d('0x4b')](_0x12196f['body'],{})['then'](function(_0x2bb0c8){var _0x49892e=_0x12196f[_0x082d('0x4c')][_0x082d('0x2a')]({'plain':!![]});if(!_0x49892e)throw new Error(_0x082d('0x4d'));if(_0x49892e[_0x082d('0x4e')]===_0x082d('0x4c')){var _0xaa2587=_0x2bb0c8[_0x082d('0x2a')]({'plain':!![]});var _0x21c73a='Reports';return db[_0x082d('0x4f')]['find']({'where':{'name':_0x21c73a,'userProfileId':_0x49892e[_0x082d('0x50')]},'raw':!![]})[_0x082d('0x28')](function(_0x1e5eab){if(_0x1e5eab&&_0x1e5eab[_0x082d('0x51')]===0x0){return db[_0x082d('0x52')][_0x082d('0x4b')]({'name':_0xaa2587[_0x082d('0x32')],'resourceId':_0xaa2587['id'],'type':'DefaultReports','sectionId':_0x1e5eab['id']},{})[_0x082d('0x28')](function(){return _0x2bb0c8;});}else{return _0x2bb0c8;}})[_0x082d('0x46')](function(_0x34685d){logger['error'](_0x082d('0x53'),_0x34685d);throw _0x34685d;});}return _0x2bb0c8;})[_0x082d('0x28')](respondWithResult(_0x3a5078,0xc9))['catch'](handleError(_0x3a5078,null));};exports['update']=function(_0x48f890,_0x33cf81){if(_0x48f890[_0x082d('0x54')]['id']){delete _0x48f890['body']['id'];}return db[_0x082d('0x2e')]['find']({'where':{'id':_0x48f890[_0x082d('0x47')]['id']}})['then'](handleEntityNotFound(_0x33cf81,null))[_0x082d('0x28')](saveUpdates(_0x48f890['body'],null))[_0x082d('0x28')](respondWithResult(_0x33cf81,null))[_0x082d('0x46')](handleError(_0x33cf81,null));};exports[_0x082d('0x29')]=function(_0x3379cf,_0x4d920e){return db[_0x082d('0x2e')][_0x082d('0x4a')]({'where':{'id':_0x3379cf['params']['id']}})[_0x082d('0x28')](handleEntityNotFound(_0x4d920e,null))[_0x082d('0x28')](removeEntity(_0x4d920e,null))[_0x082d('0x46')](handleError(_0x4d920e,null));};exports[_0x082d('0x55')]=function(_0x6742a2,_0x4a16c3){var _0x5be32f=0xa;var _0xfc8036=['join',_0x082d('0x56'),'right_join',_0x082d('0x57')];var _0x202679={'SUM':_0x082d('0x58'),'COUNT':_0x082d('0x59'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x082d('0x5a'),'MIN':'MIN(%s)','AVG':_0x082d('0x5b'),'GROUP_CONCAT':_0x082d('0x5c'),'GROUP_CONCAT ASC':_0x082d('0x5d'),'GROUP_CONCAT DESC':_0x082d('0x5e')};var _0x1edbf8={'SEC_TO_TIME':_0x082d('0x5f'),'DATE':_0x082d('0x60'),'HOUR':_0x082d('0x61'),'ROUND':_0x082d('0x62'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x3e472e=function(_0x1c4500){return!_[_0x082d('0x63')]([_0x082d('0x64'),_0x082d('0x65'),_0x082d('0x66'),_0x082d('0x67')],_0x1c4500);};var _0x3ab1d6=function(_0xc83668){if(!_0xc83668||!_0xc83668[_0x082d('0x68')][_0x082d('0x3a')]){return'';}for(var _0xdc8b02='(',_0x5e9b0e=0x0;_0x5e9b0e<_0xc83668['rules'][_0x082d('0x3a')];_0x5e9b0e+=0x1){_0x5e9b0e>0x0&&(_0xdc8b02+='\x20'+_0xc83668[_0x082d('0x69')]+'\x20');_0xdc8b02+=_0xc83668[_0x082d('0x68')][_0x5e9b0e]['group']?_0x3ab1d6(_0xc83668[_0x082d('0x68')][_0x5e9b0e][_0x082d('0x6a')]):_0xc83668[_0x082d('0x68')][_0x5e9b0e][_0x082d('0x6b')]+'\x20'+_0xc83668['rules'][_0x5e9b0e][_0x082d('0x6c')]+(_0x3e472e(_0xc83668['rules'][_0x5e9b0e][_0x082d('0x6c')])?'\x20'+_0xc83668[_0x082d('0x68')][_0x5e9b0e]['value']:'');}return _0xdc8b02+')';};var _0x5001d1={'where':{'id':_0x6742a2['params']['id']}},_0x567bdc,_0x351ea6,_0x13ba64,_0x321023,_0x276884;_0x5001d1=_['merge']({},_0x5001d1,_0x6742a2[_0x082d('0x49')]);return db['AnalyticDefaultReport'][_0x082d('0x4a')](_0x5001d1)[_0x082d('0x28')](function(_0x451a15){if(_0x451a15){_0x567bdc=_0x451a15;return _0x451a15[_0x082d('0x6d')]();}return null;})[_0x082d('0x28')](function(_0x1c9696){if(_0x1c9696){if(!_0x1c9696[_0x082d('0x3a')]){throw new db['Sequelize']['ValidationErrorItem'](_0x082d('0x6e'),0x193);}_0x351ea6=_0x1c9696;return db[_0x082d('0x6f')][_0x082d('0x70')]({'raw':!![]});}return null;})['then'](function(_0x7d4eb3){if(_0x7d4eb3){_0x13ba64=_[_0x082d('0x71')](_0x7d4eb3,'id');var _0x2be0ab;var _0x29652e=squel[_0x082d('0x72')]();_0x29652e[_0x082d('0x73')](_0x567bdc[_0x082d('0x74')]);for(var _0x20b041=0x0;_0x20b041<_0x351ea6[_0x082d('0x3a')];_0x20b041+=0x1){_0x2be0ab=_0x351ea6[_0x20b041][_0x082d('0x75')]?_0x13ba64[_0x351ea6[_0x20b041][_0x082d('0x75')]][_0x082d('0x76')]:_0x351ea6[_0x20b041][_0x082d('0x6b')];_0x2be0ab=_0x351ea6[_0x20b041]['function']?_[_0x082d('0x77')](_0x202679[_0x351ea6[_0x20b041][_0x082d('0x78')]],'%s',_0x2be0ab):_0x2be0ab;_0x2be0ab=_0x351ea6[_0x20b041][_0x082d('0x79')]?_[_0x082d('0x77')](_0x1edbf8[_0x351ea6[_0x20b041]['format']],'%s',_0x2be0ab):_0x2be0ab;if(_0x351ea6[_0x20b041]['groupBy']){_0x29652e[_0x082d('0x6a')](_0x2be0ab);}_0x351ea6[_0x20b041][_0x082d('0x7a')]&&_0x29652e[_0x082d('0x7b')](_0x2be0ab,_0x351ea6[_0x20b041][_0x082d('0x7a')]==='DESC'?![]:!![]);_0x29652e['field'](_0x2be0ab,_0x351ea6[_0x20b041]['alias']||_0x2be0ab);}if(_0x567bdc['joins']){_0x567bdc[_0x082d('0x7c')]=JSON[_0x082d('0x7d')](_0x567bdc['joins']);for(var _0xcbaedf=0x0;_0xcbaedf<_0x567bdc[_0x082d('0x7c')][_0x082d('0x3a')];_0xcbaedf+=0x1){if(_0x567bdc[_0x082d('0x7c')][_0xcbaedf]['type']&&_[_0x082d('0x63')](_0xfc8036,_0x567bdc[_0x082d('0x7c')][_0xcbaedf][_0x082d('0x42')])&&_0x567bdc[_0x082d('0x7c')][_0xcbaedf]['parentKey']&&_0x567bdc['joins'][_0xcbaedf]['foreignTable']&&_0x567bdc[_0x082d('0x7c')][_0xcbaedf][_0x082d('0x7e')]){_0x29652e[_0x567bdc[_0x082d('0x7c')][_0xcbaedf][_0x082d('0x42')]](_0x567bdc[_0x082d('0x7c')][_0xcbaedf][_0x082d('0x7f')],null,util[_0x082d('0x79')](_0x082d('0x80'),_0x567bdc[_0x082d('0x74')],_0x567bdc[_0x082d('0x7c')][_0xcbaedf][_0x082d('0x81')],_0x567bdc[_0x082d('0x7c')][_0xcbaedf]['foreignTable'],_0x567bdc[_0x082d('0x7c')][_0xcbaedf][_0x082d('0x7e')]));}}}if(_0x567bdc[_0x082d('0x82')]){_0x567bdc[_0x082d('0x82')]=JSON['parse'](_0x567bdc['conditions']);_0x29652e[_0x082d('0x3e')](_0x3ab1d6(_0x567bdc[_0x082d('0x82')][_0x082d('0x6a')]));}_0x276884=_0x29652e['clone']();_0x29652e[_0x082d('0x20')](_0x5be32f);_0x29652e[_0x082d('0x1e')](0x0);logger[_0x082d('0x83')](_0x082d('0x84'),_0x29652e[_0x082d('0x85')]());return dbH['sequelize']['query'](_0x29652e[_0x082d('0x85')](),{'type':dbH[_0x082d('0x86')]['QueryTypes'][_0x082d('0x87')]});}})['then'](respondWithResult(_0x4a16c3,null))[_0x082d('0x46')](handleError(_0x4a16c3,null));};function runReport(_0x20a8ae,_0x1f2454,_0x1f79ba){var _0x3cea22=_0x1f2454[_0x082d('0x32')];var _0x54cafe=0xa;var _0x4be210=['join',_0x082d('0x56'),_0x082d('0x88'),_0x082d('0x57')];var _0x12b7ee={'SUM':'SUM(%s)','COUNT':_0x082d('0x59'),'COUNT DISTINCT':_0x082d('0x89'),'MAX':'MAX(%s)','MIN':_0x082d('0x8a'),'AVG':_0x082d('0x5b'),'GROUP_CONCAT':_0x082d('0x5c'),'GROUP_CONCAT ASC':_0x082d('0x5d'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x17fc66={'SEC_TO_TIME':_0x082d('0x5f'),'DATE':_0x082d('0x60'),'HOUR':_0x082d('0x61'),'ROUND':_0x082d('0x62'),'UNIX_TIMESTAMP':_0x082d('0x8b')};var _0x9be06e=function(_0x21431b){return!_['includes'](['IS\x20NULL',_0x082d('0x65'),_0x082d('0x66'),_0x082d('0x67')],_0x21431b);};var _0x5823e5=function(_0x6721f8){if(!_0x6721f8||!_0x6721f8['rules'][_0x082d('0x3a')]){return'';}for(var _0x48c1c4='(',_0x5737c7=0x0;_0x5737c7<_0x6721f8['rules'][_0x082d('0x3a')];_0x5737c7+=0x1){_0x5737c7>0x0&&(_0x48c1c4+='\x20'+_0x6721f8[_0x082d('0x69')]+'\x20');_0x48c1c4+=_0x6721f8['rules'][_0x5737c7]['group']?_0x5823e5(_0x6721f8['rules'][_0x5737c7][_0x082d('0x6a')]):_0x6721f8[_0x082d('0x68')][_0x5737c7][_0x082d('0x6b')]+'\x20'+_0x6721f8['rules'][_0x5737c7][_0x082d('0x6c')]+(_0x9be06e(_0x6721f8[_0x082d('0x68')][_0x5737c7][_0x082d('0x6c')])?'\x20'+_0x6721f8[_0x082d('0x68')][_0x5737c7][_0x082d('0x8c')]:'');}return _0x48c1c4+')';};var _0x4927c9={'where':{'id':_0x20a8ae['id']}},_0x3b6c1b,_0xa560d4,_0x4cc043,_0x366090,_0xf9bece;_0x4927c9=_[_0x082d('0x41')]({},_0x4927c9,_0x1f79ba);return db[_0x082d('0x2e')]['find'](_0x4927c9)[_0x082d('0x28')](function(_0x1b0410){if(_0x1b0410){_0x3b6c1b=_0x1b0410;return _0x1b0410[_0x082d('0x6d')]();}return null;})[_0x082d('0x28')](function(_0x9d3ede){if(_0x9d3ede){if(!_0x9d3ede['length']){throw new db[(_0x082d('0x8d'))][(_0x082d('0x8e'))](_0x082d('0x6e'),0x193);}_0xa560d4=_0x9d3ede;return db[_0x082d('0x6f')][_0x082d('0x70')]({'raw':!![]});}return null;})[_0x082d('0x28')](function(_0x2afea2){if(_0x2afea2){_0x4cc043=_['keyBy'](_0x2afea2,'id');var _0x359472;var _0x477abd=squel[_0x082d('0x72')]();_0x477abd['from'](_0x3b6c1b['table']);for(var _0x2cc6ca=0x0;_0x2cc6ca<_0xa560d4[_0x082d('0x3a')];_0x2cc6ca+=0x1){_0x359472=_0xa560d4[_0x2cc6ca][_0x082d('0x75')]?_0x4cc043[_0xa560d4[_0x2cc6ca][_0x082d('0x75')]][_0x082d('0x76')]:_0xa560d4[_0x2cc6ca]['field'];_0x359472=_0xa560d4[_0x2cc6ca][_0x082d('0x78')]?_[_0x082d('0x77')](_0x12b7ee[_0xa560d4[_0x2cc6ca][_0x082d('0x78')]],'%s',_0x359472):_0x359472;_0x359472=_0xa560d4[_0x2cc6ca]['format']?_[_0x082d('0x77')](_0x17fc66[_0xa560d4[_0x2cc6ca][_0x082d('0x79')]],'%s',_0x359472):_0x359472;if(_0xa560d4[_0x2cc6ca][_0x082d('0x8f')]){_0x477abd['group'](_0x359472);}_0xa560d4[_0x2cc6ca]['orderBy']&&_0x477abd[_0x082d('0x7b')](_0x359472,_0xa560d4[_0x2cc6ca][_0x082d('0x7a')]===_0x082d('0x90')?![]:!![]);_0x477abd[_0x082d('0x6b')](_0x359472,_0xa560d4[_0x2cc6ca]['alias']||_0x359472);}if(_0x3b6c1b['joins']){_0x3b6c1b[_0x082d('0x7c')]=JSON[_0x082d('0x7d')](_0x3b6c1b[_0x082d('0x7c')]);for(var _0x2fded2=0x0;_0x2fded2<_0x3b6c1b[_0x082d('0x7c')]['length'];_0x2fded2+=0x1){if(_0x3b6c1b[_0x082d('0x7c')][_0x2fded2][_0x082d('0x42')]&&_['includes'](_0x4be210,_0x3b6c1b[_0x082d('0x7c')][_0x2fded2][_0x082d('0x42')])&&_0x3b6c1b['joins'][_0x2fded2][_0x082d('0x81')]&&_0x3b6c1b[_0x082d('0x7c')][_0x2fded2][_0x082d('0x7f')]&&_0x3b6c1b['joins'][_0x2fded2][_0x082d('0x7e')]){_0x477abd[_0x3b6c1b[_0x082d('0x7c')][_0x2fded2][_0x082d('0x42')]](_0x3b6c1b[_0x082d('0x7c')][_0x2fded2][_0x082d('0x7f')],null,util[_0x082d('0x79')](_0x082d('0x80'),_0x3b6c1b[_0x082d('0x74')],_0x3b6c1b[_0x082d('0x7c')][_0x2fded2][_0x082d('0x81')],_0x3b6c1b[_0x082d('0x7c')][_0x2fded2]['foreignTable'],_0x3b6c1b[_0x082d('0x7c')][_0x2fded2][_0x082d('0x7e')]));}}}if(_0x3b6c1b['conditions']){_0x3b6c1b['conditions']=JSON[_0x082d('0x7d')](_0x3b6c1b['conditions']);_0x477abd[_0x082d('0x3e')](_0x5823e5(_0x3b6c1b[_0x082d('0x82')][_0x082d('0x6a')]));}_0xf9bece=_0x477abd['clone']();_0x477abd[_0x082d('0x20')](_0x54cafe);_0x477abd[_0x082d('0x1e')](0x0);return;}})[_0x082d('0x28')](function(){if(_0x1f2454['output']===_0x082d('0x91')){return null;}var _0x5d86d4=_[_0x082d('0x41')](_0x1f2454,{'name':_0x1f2454[_0x082d('0x92')]||_0x1f2454['name']||_0x3b6c1b[_0x082d('0x32')],'basename':_0x3cea22,'savename':util['format'](_0x082d('0x93'),_0x1f2454[_0x082d('0x32')]||_0x3b6c1b[_0x082d('0x32')],require('randomstring')[_0x082d('0x94')](0x4),_0x1f2454[_0x082d('0x95')]||_0x082d('0x96')),'reportId':_0x3b6c1b['id'],'reportType':'default'});return db[_0x082d('0x97')][_0x082d('0x4b')](_0x5d86d4,{'raw':!![]});})[_0x082d('0x28')](function(_0x4635c2){if(_0x3b6c1b[_0x082d('0x74')]===_0x082d('0x98')){_0xf9bece[_0x082d('0x3e')](_0x3b6c1b['table']+_0x082d('0x99'),_0x1f2454[_0x082d('0x9a')],_0x1f2454['endDate']);}else{_0xf9bece[_0x082d('0x3e')](_0x3b6c1b[_0x082d('0x74')]+_0x082d('0x9b'),_0x1f2454[_0x082d('0x9a')],_0x1f2454[_0x082d('0x9c')]);}if(_0x4635c2){logger[_0x082d('0x9d')](_0x082d('0x9e'),_0xf9bece[_0x082d('0x85')]());require('child_process')[_0x082d('0x9f')](path[_0x082d('0xa0')](__dirname,_0x082d('0xa1'),_0x4635c2[_0x082d('0x95')]),[_0x4635c2['id'],_0xf9bece[_0x082d('0x85')](),path[_0x082d('0xa0')](__dirname,_0x082d('0xa2'),_0x4635c2[_0x082d('0xa3')]),_0x3cea22]);return _0x4635c2;}else{var _0x488dbf=squel['select']();_0x488dbf[_0x082d('0x73')]('('+_0xf9bece[_0x082d('0x85')]()+')','countTable');_0x488dbf[_0x082d('0x6b')](_0x082d('0xa4'),_0x082d('0x21'));_0xf9bece[_0x082d('0x20')](_0x1f2454[_0x082d('0x20')]||_0x54cafe);_0xf9bece[_0x082d('0x1e')](_0x1f2454['offset']||0x0);return dbH[_0x082d('0x86')][_0x082d('0x33')](_0x488dbf[_0x082d('0x85')](),{'type':dbH['sequelize'][_0x082d('0xa5')][_0x082d('0x87')]})[_0x082d('0x28')](function(_0x4af165){if(!_0x4af165[_0x082d('0x3a')]){_0x366090=0x0;}else{_0x366090=_0x4af165[0x0][_0x082d('0x21')]||0x0;}return dbH[_0x082d('0x86')][_0x082d('0x33')](_0xf9bece[_0x082d('0x85')](),{'type':dbH['sequelize'][_0x082d('0xa5')]['SELECT']});})['then'](function(_0x39ed56){return{'rows':_0x39ed56||[],'count':_0x366090};});}});}exports[_0x082d('0xa6')]=function(_0x4f0bd6,_0x36bdcd){return runReport(_0x4f0bd6[_0x082d('0x47')],_0x4f0bd6['query'],_0x4f0bd6[_0x082d('0x49')])['then'](respondWithResult(_0x36bdcd,null))[_0x082d('0x46')](handleError(_0x36bdcd,null));};exports['runReport']=runReport;exports[_0x082d('0x33')]=function(_0x238733,_0x2b98af){var _0x5f1dc7=0xa;var _0x28e73b=['join',_0x082d('0x56'),_0x082d('0x88'),_0x082d('0x57')];var _0x32bf65={'SUM':'SUM(%s)','COUNT':_0x082d('0x59'),'COUNT DISTINCT':_0x082d('0x89'),'MAX':_0x082d('0x5a'),'MIN':_0x082d('0x8a'),'AVG':_0x082d('0x5b'),'GROUP_CONCAT':_0x082d('0x5c'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x082d('0x5e')};var _0x4592d7={'SEC_TO_TIME':_0x082d('0x5f'),'DATE':_0x082d('0x60'),'HOUR':_0x082d('0x61'),'ROUND':_0x082d('0x62'),'UNIX_TIMESTAMP':_0x082d('0x8b')};var _0x621f5a=function(_0x1f17c7){return!_[_0x082d('0x63')]([_0x082d('0x64'),_0x082d('0x65'),_0x082d('0x66'),'IS\x20NOT\x20EMPTY'],_0x1f17c7);};var _0xd33df0=function(_0x45da65){if(!_0x45da65||!_0x45da65[_0x082d('0x68')][_0x082d('0x3a')]){return'';}for(var _0x56b0b9='(',_0x20d7c8=0x0;_0x20d7c8<_0x45da65[_0x082d('0x68')]['length'];_0x20d7c8+=0x1){_0x20d7c8>0x0&&(_0x56b0b9+='\x20'+_0x45da65[_0x082d('0x69')]+'\x20');_0x56b0b9+=_0x45da65[_0x082d('0x68')][_0x20d7c8][_0x082d('0x6a')]?_0xd33df0(_0x45da65['rules'][_0x20d7c8][_0x082d('0x6a')]):_0x45da65[_0x082d('0x68')][_0x20d7c8][_0x082d('0x6b')]+'\x20'+_0x45da65[_0x082d('0x68')][_0x20d7c8][_0x082d('0x6c')]+(_0x621f5a(_0x45da65[_0x082d('0x68')][_0x20d7c8]['condition'])?'\x20'+_0x45da65[_0x082d('0x68')][_0x20d7c8][_0x082d('0x8c')]:'');}return _0x56b0b9+')';};var _0x1b42f9={'where':{'id':_0x238733['params']['id']}},_0x5b3d17,_0x409a9c,_0x293cae,_0x563f35,_0x22cffa;_0x1b42f9=_[_0x082d('0x41')]({},_0x1b42f9,_0x238733[_0x082d('0x49')]);return db[_0x082d('0x2e')][_0x082d('0x4a')](_0x1b42f9)[_0x082d('0x28')](function(_0x51f57e){if(_0x51f57e){_0x5b3d17=_0x51f57e;return _0x51f57e[_0x082d('0x6d')]();}return null;})['then'](function(_0x2f4801){if(_0x2f4801){if(!_0x2f4801[_0x082d('0x3a')]){throw new db[(_0x082d('0x8d'))][(_0x082d('0x8e'))](_0x082d('0x6e'),0x193);}_0x409a9c=_0x2f4801;return db[_0x082d('0x6f')][_0x082d('0x70')]({'raw':!![]});}return null;})[_0x082d('0x28')](function(_0x3adb57){if(_0x3adb57){_0x293cae=_[_0x082d('0x71')](_0x3adb57,'id');var _0xd37b16;var _0x3dbc59=squel[_0x082d('0x72')]();_0x3dbc59[_0x082d('0x73')](_0x5b3d17[_0x082d('0x74')]);for(var _0x5ac7e6=0x0;_0x5ac7e6<_0x409a9c[_0x082d('0x3a')];_0x5ac7e6+=0x1){_0xd37b16=_0x409a9c[_0x5ac7e6][_0x082d('0x75')]?_0x293cae[_0x409a9c[_0x5ac7e6][_0x082d('0x75')]][_0x082d('0x76')]:_0x409a9c[_0x5ac7e6][_0x082d('0x6b')];_0xd37b16=_0x409a9c[_0x5ac7e6][_0x082d('0x78')]?_[_0x082d('0x77')](_0x32bf65[_0x409a9c[_0x5ac7e6][_0x082d('0x78')]],'%s',_0xd37b16):_0xd37b16;_0xd37b16=_0x409a9c[_0x5ac7e6]['format']?_[_0x082d('0x77')](_0x4592d7[_0x409a9c[_0x5ac7e6]['format']],'%s',_0xd37b16):_0xd37b16;if(_0x409a9c[_0x5ac7e6][_0x082d('0x8f')]){_0x3dbc59[_0x082d('0x6a')](_0xd37b16);}_0x409a9c[_0x5ac7e6][_0x082d('0x7a')]&&_0x3dbc59['order'](_0xd37b16,_0x409a9c[_0x5ac7e6]['orderBy']==='DESC'?![]:!![]);_0x3dbc59[_0x082d('0x6b')](_0xd37b16,_0x409a9c[_0x5ac7e6]['alias']||_0xd37b16);}if(_0x5b3d17[_0x082d('0x7c')]){_0x5b3d17[_0x082d('0x7c')]=JSON['parse'](_0x5b3d17[_0x082d('0x7c')]);for(var _0x2c89bd=0x0;_0x2c89bd<_0x5b3d17['joins'][_0x082d('0x3a')];_0x2c89bd+=0x1){if(_0x5b3d17[_0x082d('0x7c')][_0x2c89bd][_0x082d('0x42')]&&_[_0x082d('0x63')](_0x28e73b,_0x5b3d17['joins'][_0x2c89bd][_0x082d('0x42')])&&_0x5b3d17[_0x082d('0x7c')][_0x2c89bd][_0x082d('0x81')]&&_0x5b3d17[_0x082d('0x7c')][_0x2c89bd]['foreignTable']&&_0x5b3d17[_0x082d('0x7c')][_0x2c89bd]['foreignKey']){_0x3dbc59[_0x5b3d17[_0x082d('0x7c')][_0x2c89bd][_0x082d('0x42')]](_0x5b3d17[_0x082d('0x7c')][_0x2c89bd][_0x082d('0x7f')],null,util['format'](_0x082d('0x80'),_0x5b3d17[_0x082d('0x74')],_0x5b3d17[_0x082d('0x7c')][_0x2c89bd][_0x082d('0x81')],_0x5b3d17['joins'][_0x2c89bd][_0x082d('0x7f')],_0x5b3d17[_0x082d('0x7c')][_0x2c89bd]['foreignKey']));}}}if(_0x5b3d17[_0x082d('0x82')]){_0x5b3d17['conditions']=JSON[_0x082d('0x7d')](_0x5b3d17[_0x082d('0x82')]);_0x3dbc59[_0x082d('0x3e')](_0xd33df0(_0x5b3d17['conditions']['group']));}_0x22cffa=_0x3dbc59[_0x082d('0xa7')]();_0x3dbc59[_0x082d('0x20')](_0x5f1dc7);_0x3dbc59['offset'](0x0);logger['debug'](_0x082d('0x84'),_0x3dbc59[_0x082d('0x85')]());return dbH[_0x082d('0x86')][_0x082d('0x33')](_0x3dbc59[_0x082d('0x85')](),{'type':dbH['sequelize']['QueryTypes'][_0x082d('0x87')]});}})[_0x082d('0x28')](function(){return{'sql':_0x22cffa[_0x082d('0x85')]()};})[_0x082d('0x28')](respondWithResult(_0x2b98af,null))[_0x082d('0x46')](handleError(_0x2b98af,null));};