8565cb8f1eb30fb49486646fc78652fb84462933
[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 _0x3dd5=['keys','attributes','intersection','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','include','AnalyticCustomReport','findAll','rows','catch','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Reports','userProfileId','CustomReports','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','HOUR(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','debug','toString','SELECT','left_join','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','operator','Limited\x20Query:','sequelize','QueryTypes','No\x20available\x20data','fullPath','%s-%s.%s','output','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','savename','countTable','COUNT(*)','run','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','dbH','sendStatus','status','offset','limit','set','Content-Range','reject','update','then','destroy','get','UserProfileResource','end','stack','send','map','rawAttributes','fieldName','type','model','name','query'];(function(_0x2db48e,_0x313065){var _0xd2f8fd=function(_0x2f097f){while(--_0x2f097f){_0x2db48e['push'](_0x2db48e['shift']());}};_0xd2f8fd(++_0x313065);}(_0x3dd5,0x73));var _0x53dd=function(_0x1f066f,_0x4a6815){_0x1f066f=_0x1f066f-0x0;var _0xa1296a=_0x3dd5[_0x1f066f];return _0xa1296a;};'use strict';var pdf=require(_0x53dd('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x53dd('0x1'));var zipdir=require(_0x53dd('0x2'));var jsonpatch=require(_0x53dd('0x3'));var rp=require(_0x53dd('0x4'));var moment=require(_0x53dd('0x5'));var BPromise=require(_0x53dd('0x6'));var Mustache=require(_0x53dd('0x7'));var util=require(_0x53dd('0x8'));var path=require(_0x53dd('0x9'));var sox=require('sox');var csv=require(_0x53dd('0xa'));var ejs=require(_0x53dd('0xb'));var fs=require('fs');var _=require(_0x53dd('0xc'));var squel=require(_0x53dd('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x53dd('0xe'));var toCsv=require('to-csv');var querystring=require(_0x53dd('0xf'));var Papa=require(_0x53dd('0x10'));var Redis=require(_0x53dd('0x11'));var authService=require(_0x53dd('0x12'));var qs=require(_0x53dd('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x53dd('0x14'));var logger=require(_0x53dd('0x15'))(_0x53dd('0x16'));var utils=require(_0x53dd('0x17'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];var dbH=require(_0x53dd('0x18'))[_0x53dd('0x19')];function respondWithStatusCode(_0xdddaa8,_0x5117a6){_0x5117a6=_0x5117a6||0xcc;return function(_0x3fc986){if(_0x3fc986){return _0xdddaa8[_0x53dd('0x1a')](_0x5117a6);}return _0xdddaa8[_0x53dd('0x1b')](_0x5117a6)['end']();};}function respondWithResult(_0x130671,_0x345f36){_0x345f36=_0x345f36||0xc8;return function(_0x1baf8b){if(_0x1baf8b){return _0x130671['status'](_0x345f36)['json'](_0x1baf8b);}};}function respondWithFilteredResult(_0x5364be,_0x595f18){return function(_0x1d8ecf){if(_0x1d8ecf){var _0x4449e1=_0x1d8ecf['count'],_0xef43a7=_0x595f18['offset'],_0x30052e=_0x595f18[_0x53dd('0x1c')]+_0x595f18[_0x53dd('0x1d')],_0x180d1e;if(_0x30052e>=_0x4449e1){_0x30052e=_0x4449e1;_0x180d1e=0xc8;}else{_0x180d1e=0xce;}_0x5364be[_0x53dd('0x1b')](_0x180d1e);return _0x5364be[_0x53dd('0x1e')](_0x53dd('0x1f'),_0xef43a7+'-'+_0x30052e+'/'+_0x4449e1)['json'](_0x1d8ecf);}return null;};}function patchUpdates(_0x5d0e96){return function(_0x586e47){try{jsonpatch['apply'](_0x586e47,_0x5d0e96,!![]);}catch(_0x52d48b){return BPromise[_0x53dd('0x20')](_0x52d48b);}return _0x586e47['save']();};}function saveUpdates(_0x5365a7,_0x180765){return function(_0x1dcc36){if(_0x1dcc36){return _0x1dcc36[_0x53dd('0x21')](_0x5365a7)[_0x53dd('0x22')](function(_0x17ac0a){return _0x17ac0a;});}return null;};}function removeEntity(_0x4a4b3b,_0x340da7){return function(_0x47f2c5){if(_0x47f2c5){return _0x47f2c5[_0x53dd('0x23')]()[_0x53dd('0x22')](function(){var _0x534ce0=_0x47f2c5[_0x53dd('0x24')]({'plain':!![]});var _0x13e087='CustomReports';return db[_0x53dd('0x25')]['destroy']({'where':{'type':_0x13e087,'resourceId':_0x534ce0['id']}})[_0x53dd('0x22')](function(){return _0x47f2c5;});})[_0x53dd('0x22')](function(){_0x4a4b3b[_0x53dd('0x1b')](0xcc)[_0x53dd('0x26')]();});}};}function handleEntityNotFound(_0x39e5f7,_0x234bf6){return function(_0x1c0b0d){if(!_0x1c0b0d){_0x39e5f7[_0x53dd('0x1a')](0x194);}return _0x1c0b0d;};}function handleError(_0x43ea8d,_0x895636){_0x895636=_0x895636||0x1f4;return function(_0x3cfbcd){logger['error'](_0x3cfbcd[_0x53dd('0x27')]);if(_0x3cfbcd['name']){delete _0x3cfbcd['name'];}_0x43ea8d[_0x53dd('0x1b')](_0x895636)[_0x53dd('0x28')](_0x3cfbcd);};}exports['index']=function(_0x24403d,_0x55443d){var _0x3b2f31={},_0x21e92d={},_0x578d1e={'count':0x0,'rows':[]};var _0x293957=_[_0x53dd('0x29')](db['AnalyticCustomReport'][_0x53dd('0x2a')],function(_0x4ebe0a){return{'name':_0x4ebe0a[_0x53dd('0x2b')],'type':_0x4ebe0a[_0x53dd('0x2c')]['key']};});_0x21e92d[_0x53dd('0x2d')]=_[_0x53dd('0x29')](_0x293957,_0x53dd('0x2e'));_0x21e92d[_0x53dd('0x2f')]=_[_0x53dd('0x30')](_0x24403d[_0x53dd('0x2f')]);_0x21e92d['filters']=_['intersection'](_0x21e92d[_0x53dd('0x2d')],_0x21e92d[_0x53dd('0x2f')]);_0x3b2f31[_0x53dd('0x31')]=_[_0x53dd('0x32')](_0x21e92d['model'],qs[_0x53dd('0x33')](_0x24403d[_0x53dd('0x2f')][_0x53dd('0x33')]));_0x3b2f31[_0x53dd('0x31')]=_0x3b2f31[_0x53dd('0x31')][_0x53dd('0x34')]?_0x3b2f31[_0x53dd('0x31')]:_0x21e92d['model'];if(!_0x24403d[_0x53dd('0x2f')]['hasOwnProperty'](_0x53dd('0x35'))){_0x3b2f31[_0x53dd('0x1d')]=qs[_0x53dd('0x1d')](_0x24403d['query'][_0x53dd('0x1d')]);_0x3b2f31['offset']=qs[_0x53dd('0x1c')](_0x24403d[_0x53dd('0x2f')][_0x53dd('0x1c')]);}_0x3b2f31[_0x53dd('0x36')]=qs[_0x53dd('0x37')](_0x24403d[_0x53dd('0x2f')][_0x53dd('0x37')]);_0x3b2f31[_0x53dd('0x38')]=qs[_0x53dd('0x39')](_[_0x53dd('0x3a')](_0x24403d['query'],_0x21e92d[_0x53dd('0x39')]),_0x293957);if(_0x24403d['query'][_0x53dd('0x3b')]){_0x3b2f31[_0x53dd('0x38')]=_[_0x53dd('0x3c')](_0x3b2f31[_0x53dd('0x38')],{'$or':_['map'](_0x293957,function(_0x13f789){if(_0x13f789[_0x53dd('0x2c')]!==_0x53dd('0x3d')){var _0x4d6b63={};_0x4d6b63[_0x13f789[_0x53dd('0x2e')]]={'$like':'%'+_0x24403d[_0x53dd('0x2f')][_0x53dd('0x3b')]+'%'};return _0x4d6b63;}})});}_0x3b2f31=_[_0x53dd('0x3c')]({},_0x3b2f31,_0x24403d[_0x53dd('0x3e')]);var _0x51e95f={'where':_0x3b2f31[_0x53dd('0x38')]};return db['AnalyticCustomReport'][_0x53dd('0x3f')](_0x51e95f)[_0x53dd('0x22')](function(_0x1e44b0){_0x578d1e[_0x53dd('0x3f')]=_0x1e44b0;if(_0x24403d['query']['includeAll']){_0x3b2f31[_0x53dd('0x40')]=[{'all':!![]}];}return db[_0x53dd('0x41')][_0x53dd('0x42')](_0x3b2f31);})[_0x53dd('0x22')](function(_0x34e641){_0x578d1e[_0x53dd('0x43')]=_0x34e641;return _0x578d1e;})[_0x53dd('0x22')](respondWithFilteredResult(_0x55443d,_0x3b2f31))[_0x53dd('0x44')](handleError(_0x55443d,null));};exports[_0x53dd('0x45')]=function(_0x8b9797,_0x1fbcf5){var _0x1195d3={'raw':![],'where':{'id':_0x8b9797[_0x53dd('0x46')]['id']}},_0x2cfa58={};_0x2cfa58[_0x53dd('0x2d')]=_[_0x53dd('0x30')](db[_0x53dd('0x41')][_0x53dd('0x2a')]);_0x2cfa58[_0x53dd('0x2f')]=_[_0x53dd('0x30')](_0x8b9797[_0x53dd('0x2f')]);_0x2cfa58[_0x53dd('0x39')]=_['intersection'](_0x2cfa58[_0x53dd('0x2d')],_0x2cfa58[_0x53dd('0x2f')]);_0x1195d3[_0x53dd('0x31')]=_[_0x53dd('0x32')](_0x2cfa58[_0x53dd('0x2d')],qs[_0x53dd('0x33')](_0x8b9797[_0x53dd('0x2f')]['fields']));_0x1195d3[_0x53dd('0x31')]=_0x1195d3[_0x53dd('0x31')]['length']?_0x1195d3[_0x53dd('0x31')]:_0x2cfa58[_0x53dd('0x2d')];if(_0x8b9797['query']['includeAll']){_0x1195d3[_0x53dd('0x40')]=[{'all':!![]}];}_0x1195d3=_[_0x53dd('0x3c')]({},_0x1195d3,_0x8b9797[_0x53dd('0x3e')]);return db[_0x53dd('0x41')][_0x53dd('0x47')](_0x1195d3)[_0x53dd('0x22')](handleEntityNotFound(_0x1fbcf5,null))[_0x53dd('0x22')](respondWithResult(_0x1fbcf5,null))['catch'](handleError(_0x1fbcf5,null));};exports[_0x53dd('0x48')]=function(_0x978acf,_0x2ec7d4){return db['AnalyticCustomReport'][_0x53dd('0x48')](_0x978acf[_0x53dd('0x49')],{})[_0x53dd('0x22')](function(_0x5c0775){var _0x375d89=_0x978acf['user'][_0x53dd('0x24')]({'plain':!![]});if(!_0x375d89)throw new Error(_0x53dd('0x4a'));if(_0x375d89['role']===_0x53dd('0x4b')){var _0x45e83e=_0x5c0775['get']({'plain':!![]});var _0x18f2e7=_0x53dd('0x4c');return db['UserProfileSection']['find']({'where':{'name':_0x18f2e7,'userProfileId':_0x375d89[_0x53dd('0x4d')]},'raw':!![]})['then'](function(_0x386858){if(_0x386858&&_0x386858['autoAssociation']===0x0){return db[_0x53dd('0x25')][_0x53dd('0x48')]({'name':_0x45e83e[_0x53dd('0x2e')],'resourceId':_0x45e83e['id'],'type':_0x53dd('0x4e'),'sectionId':_0x386858['id']},{})[_0x53dd('0x22')](function(){return _0x5c0775;});}else{return _0x5c0775;}})[_0x53dd('0x44')](function(_0x64d2ab){logger[_0x53dd('0x4f')](_0x53dd('0x50'),_0x64d2ab);throw _0x64d2ab;});}return _0x5c0775;})[_0x53dd('0x22')](respondWithResult(_0x2ec7d4,0xc9))[_0x53dd('0x44')](handleError(_0x2ec7d4,null));};exports[_0x53dd('0x21')]=function(_0x373244,_0xb82775){if(_0x373244[_0x53dd('0x49')]['id']){delete _0x373244[_0x53dd('0x49')]['id'];}return db[_0x53dd('0x41')][_0x53dd('0x47')]({'where':{'id':_0x373244['params']['id']}})[_0x53dd('0x22')](handleEntityNotFound(_0xb82775,null))[_0x53dd('0x22')](saveUpdates(_0x373244[_0x53dd('0x49')],null))[_0x53dd('0x22')](respondWithResult(_0xb82775,null))['catch'](handleError(_0xb82775,null));};exports[_0x53dd('0x23')]=function(_0x3f306b,_0x21e3ed){return db[_0x53dd('0x41')][_0x53dd('0x47')]({'where':{'id':_0x3f306b[_0x53dd('0x46')]['id']}})[_0x53dd('0x22')](handleEntityNotFound(_0x21e3ed,null))[_0x53dd('0x22')](removeEntity(_0x21e3ed,null))['catch'](handleError(_0x21e3ed,null));};exports['preview']=function(_0x1b08f2,_0x317189){var _0x26136e=0xa;var _0x2859f8=[_0x53dd('0x51'),'left_join',_0x53dd('0x52'),_0x53dd('0x53')];var _0x85ae38={'SUM':_0x53dd('0x54'),'COUNT':_0x53dd('0x55'),'COUNT DISTINCT':_0x53dd('0x56'),'MAX':_0x53dd('0x57'),'MIN':_0x53dd('0x58'),'AVG':_0x53dd('0x59'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x53dd('0x5a'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x5ab35d={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x53dd('0x5b'),'ROUND':_0x53dd('0x5c'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x19d2ed=function(_0x5b7884){return!_[_0x53dd('0x5d')]([_0x53dd('0x5e'),'IS\x20NOT\x20NULL',_0x53dd('0x5f'),_0x53dd('0x60')],_0x5b7884);};var _0x447552=function(_0x1e4cf6){if(!_0x1e4cf6||!_0x1e4cf6[_0x53dd('0x61')][_0x53dd('0x34')]){return'';}for(var _0x592282='(',_0x2975e2=0x0;_0x2975e2<_0x1e4cf6[_0x53dd('0x61')][_0x53dd('0x34')];_0x2975e2+=0x1){_0x2975e2>0x0&&(_0x592282+='\x20'+_0x1e4cf6['operator']+'\x20');_0x592282+=_0x1e4cf6[_0x53dd('0x61')][_0x2975e2][_0x53dd('0x62')]?_0x447552(_0x1e4cf6[_0x53dd('0x61')][_0x2975e2][_0x53dd('0x62')]):_0x1e4cf6[_0x53dd('0x61')][_0x2975e2][_0x53dd('0x63')]+'\x20'+_0x1e4cf6[_0x53dd('0x61')][_0x2975e2]['condition']+(_0x19d2ed(_0x1e4cf6[_0x53dd('0x61')][_0x2975e2][_0x53dd('0x64')])?'\x20'+_0x1e4cf6[_0x53dd('0x61')][_0x2975e2][_0x53dd('0x65')]:'');}return _0x592282+')';};var _0x3f0775={'where':{'id':_0x1b08f2['params']['id']}},_0x1b550a,_0x50ac1e,_0x5a5ead,_0x3c3e56,_0x293010;_0x3f0775=_['merge']({},_0x3f0775,_0x1b08f2[_0x53dd('0x3e')]);return db['AnalyticCustomReport'][_0x53dd('0x47')](_0x3f0775)[_0x53dd('0x22')](function(_0x43c015){if(_0x43c015){_0x1b550a=_0x43c015;return _0x43c015[_0x53dd('0x66')]();}return null;})[_0x53dd('0x22')](function(_0xb355a9){if(_0xb355a9){if(!_0xb355a9[_0x53dd('0x34')]){throw new db[(_0x53dd('0x67'))][(_0x53dd('0x68'))](_0x53dd('0x69'),0x193);}_0x50ac1e=_0xb355a9;return db[_0x53dd('0x6a')][_0x53dd('0x42')]({'raw':!![]});}return null;})[_0x53dd('0x22')](function(_0x56f799){if(_0x56f799){_0x5a5ead=_[_0x53dd('0x6b')](_0x56f799,'id');var _0x255d9c;var _0x3ba030=squel[_0x53dd('0x6c')]();_0x3ba030[_0x53dd('0x6d')](_0x1b550a[_0x53dd('0x6e')]);for(var _0x13998d=0x0;_0x13998d<_0x50ac1e[_0x53dd('0x34')];_0x13998d+=0x1){_0x255d9c=_0x50ac1e[_0x13998d][_0x53dd('0x6f')]?_0x5a5ead[_0x50ac1e[_0x13998d][_0x53dd('0x6f')]][_0x53dd('0x70')]:_0x50ac1e[_0x13998d][_0x53dd('0x63')];_0x255d9c=_0x50ac1e[_0x13998d][_0x53dd('0x71')]?_[_0x53dd('0x72')](_0x85ae38[_0x50ac1e[_0x13998d][_0x53dd('0x71')]],'%s',_0x255d9c):_0x255d9c;_0x255d9c=_0x50ac1e[_0x13998d][_0x53dd('0x73')]?_['replace'](_0x5ab35d[_0x50ac1e[_0x13998d]['format']],'%s',_0x255d9c):_0x255d9c;if(_0x50ac1e[_0x13998d][_0x53dd('0x74')]){_0x3ba030['group'](_0x255d9c);}_0x50ac1e[_0x13998d][_0x53dd('0x75')]&&_0x3ba030[_0x53dd('0x36')](_0x255d9c,_0x50ac1e[_0x13998d][_0x53dd('0x75')]===_0x53dd('0x76')?![]:!![]);_0x3ba030['field'](_0x255d9c,_0x50ac1e[_0x13998d][_0x53dd('0x77')]||_0x255d9c);}if(_0x1b550a[_0x53dd('0x78')]){_0x1b550a[_0x53dd('0x78')]=JSON[_0x53dd('0x79')](_0x1b550a[_0x53dd('0x78')]);for(var _0x2f92fd=0x0;_0x2f92fd<_0x1b550a['joins'][_0x53dd('0x34')];_0x2f92fd+=0x1){if(_0x1b550a[_0x53dd('0x78')][_0x2f92fd][_0x53dd('0x2c')]&&_[_0x53dd('0x5d')](_0x2859f8,_0x1b550a[_0x53dd('0x78')][_0x2f92fd][_0x53dd('0x2c')])&&_0x1b550a[_0x53dd('0x78')][_0x2f92fd][_0x53dd('0x7a')]&&_0x1b550a['joins'][_0x2f92fd][_0x53dd('0x7b')]&&_0x1b550a[_0x53dd('0x78')][_0x2f92fd][_0x53dd('0x7c')]){_0x3ba030[_0x1b550a[_0x53dd('0x78')][_0x2f92fd][_0x53dd('0x2c')]](_0x1b550a['joins'][_0x2f92fd]['foreignTable'],null,util[_0x53dd('0x73')](_0x53dd('0x7d'),_0x1b550a[_0x53dd('0x6e')],_0x1b550a['joins'][_0x2f92fd][_0x53dd('0x7a')],_0x1b550a[_0x53dd('0x78')][_0x2f92fd][_0x53dd('0x7b')],_0x1b550a['joins'][_0x2f92fd][_0x53dd('0x7c')]));}}}if(_0x1b550a['conditions']){_0x1b550a[_0x53dd('0x7e')]=JSON[_0x53dd('0x79')](_0x1b550a[_0x53dd('0x7e')]);_0x3ba030[_0x53dd('0x38')](_0x447552(_0x1b550a[_0x53dd('0x7e')]['group']));}_0x293010=_0x3ba030[_0x53dd('0x7f')]();_0x3ba030[_0x53dd('0x1d')](_0x26136e);_0x3ba030[_0x53dd('0x1c')](0x0);logger[_0x53dd('0x80')]('Limited\x20Query:',_0x3ba030['toString']());return db['sequelize'][_0x53dd('0x2f')](_0x3ba030[_0x53dd('0x81')](),{'type':db['sequelize']['QueryTypes'][_0x53dd('0x82')]});}})['then'](respondWithResult(_0x317189,null))[_0x53dd('0x44')](handleError(_0x317189,null));};function runReport(_0xccf36,_0x414930,_0x279632){var _0x5db6c8=_0x414930['name'];var _0x432357=0xa;var _0x58894e=[_0x53dd('0x51'),_0x53dd('0x83'),'right_join',_0x53dd('0x53')];var _0x43e72d={'SUM':_0x53dd('0x54'),'COUNT':_0x53dd('0x55'),'COUNT DISTINCT':_0x53dd('0x56'),'MAX':_0x53dd('0x57'),'MIN':_0x53dd('0x58'),'AVG':_0x53dd('0x59'),'GROUP_CONCAT':_0x53dd('0x84'),'GROUP_CONCAT ASC':_0x53dd('0x5a'),'GROUP_CONCAT DESC':_0x53dd('0x85')};var _0x53606a={'SEC_TO_TIME':_0x53dd('0x86'),'DATE':_0x53dd('0x87'),'HOUR':'HOUR(%s)','ROUND':_0x53dd('0x5c'),'UNIX_TIMESTAMP':_0x53dd('0x88')};var _0x538870=function(_0x151fbc){return!_[_0x53dd('0x5d')]([_0x53dd('0x5e'),'IS\x20NOT\x20NULL',_0x53dd('0x5f'),_0x53dd('0x60')],_0x151fbc);};var _0xe7db25=function(_0xaf39e8){if(!_0xaf39e8||!_0xaf39e8[_0x53dd('0x61')]['length']){return'';}for(var _0x5ade9d='(',_0x3137d3=0x0;_0x3137d3<_0xaf39e8[_0x53dd('0x61')][_0x53dd('0x34')];_0x3137d3+=0x1){_0x3137d3>0x0&&(_0x5ade9d+='\x20'+_0xaf39e8[_0x53dd('0x89')]+'\x20');_0x5ade9d+=_0xaf39e8['rules'][_0x3137d3][_0x53dd('0x62')]?_0xe7db25(_0xaf39e8[_0x53dd('0x61')][_0x3137d3][_0x53dd('0x62')]):_0xaf39e8[_0x53dd('0x61')][_0x3137d3][_0x53dd('0x63')]+'\x20'+_0xaf39e8[_0x53dd('0x61')][_0x3137d3][_0x53dd('0x64')]+(_0x538870(_0xaf39e8[_0x53dd('0x61')][_0x3137d3][_0x53dd('0x64')])?'\x20'+_0xaf39e8[_0x53dd('0x61')][_0x3137d3]['value']:'');}return _0x5ade9d+')';};var _0x46e173={'where':{'id':_0xccf36['id']}},_0xd571f3,_0x2e3626,_0x48c4f1,_0x5753d1,_0x3f4f9d;_0x46e173=_[_0x53dd('0x3c')]({},_0x46e173,_0x279632);return db[_0x53dd('0x41')]['find'](_0x46e173)[_0x53dd('0x22')](function(_0x197ed2){if(_0x197ed2){_0xd571f3=_0x197ed2;return _0x197ed2[_0x53dd('0x66')]();}return null;})['then'](function(_0x171d50){if(_0x171d50){if(!_0x171d50['length']){throw new db[(_0x53dd('0x67'))][(_0x53dd('0x68'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x2e3626=_0x171d50;return db[_0x53dd('0x6a')][_0x53dd('0x42')]({'raw':!![]});}return null;})[_0x53dd('0x22')](function(_0x405664){if(_0x405664){_0x48c4f1=_[_0x53dd('0x6b')](_0x405664,'id');var _0xcec1f7;var _0x11c4cb=squel[_0x53dd('0x6c')]();_0x11c4cb['from'](_0xd571f3[_0x53dd('0x6e')]);for(var _0x3e8058=0x0;_0x3e8058<_0x2e3626[_0x53dd('0x34')];_0x3e8058+=0x1){_0xcec1f7=_0x2e3626[_0x3e8058][_0x53dd('0x6f')]?_0x48c4f1[_0x2e3626[_0x3e8058][_0x53dd('0x6f')]][_0x53dd('0x70')]:_0x2e3626[_0x3e8058][_0x53dd('0x63')];_0xcec1f7=_0x2e3626[_0x3e8058][_0x53dd('0x71')]?_[_0x53dd('0x72')](_0x43e72d[_0x2e3626[_0x3e8058][_0x53dd('0x71')]],'%s',_0xcec1f7):_0xcec1f7;_0xcec1f7=_0x2e3626[_0x3e8058][_0x53dd('0x73')]?_[_0x53dd('0x72')](_0x53606a[_0x2e3626[_0x3e8058]['format']],'%s',_0xcec1f7):_0xcec1f7;if(_0x2e3626[_0x3e8058]['groupBy']){_0x11c4cb[_0x53dd('0x62')](_0xcec1f7);}_0x2e3626[_0x3e8058][_0x53dd('0x75')]&&_0x11c4cb[_0x53dd('0x36')](_0xcec1f7,_0x2e3626[_0x3e8058]['orderBy']==='DESC'?![]:!![]);_0x11c4cb[_0x53dd('0x63')](_0xcec1f7,_0x2e3626[_0x3e8058][_0x53dd('0x77')]||_0xcec1f7);}if(_0xd571f3[_0x53dd('0x78')]){_0xd571f3[_0x53dd('0x78')]=JSON[_0x53dd('0x79')](_0xd571f3['joins']);for(var _0x265325=0x0;_0x265325<_0xd571f3[_0x53dd('0x78')][_0x53dd('0x34')];_0x265325+=0x1){if(_0xd571f3[_0x53dd('0x78')][_0x265325]['type']&&_[_0x53dd('0x5d')](_0x58894e,_0xd571f3[_0x53dd('0x78')][_0x265325][_0x53dd('0x2c')])&&_0xd571f3['joins'][_0x265325][_0x53dd('0x7a')]&&_0xd571f3['joins'][_0x265325]['foreignTable']&&_0xd571f3[_0x53dd('0x78')][_0x265325][_0x53dd('0x7c')]){_0x11c4cb[_0xd571f3[_0x53dd('0x78')][_0x265325][_0x53dd('0x2c')]](_0xd571f3[_0x53dd('0x78')][_0x265325]['foreignTable'],null,util[_0x53dd('0x73')](_0x53dd('0x7d'),_0xd571f3[_0x53dd('0x6e')],_0xd571f3[_0x53dd('0x78')][_0x265325]['parentKey'],_0xd571f3[_0x53dd('0x78')][_0x265325][_0x53dd('0x7b')],_0xd571f3['joins'][_0x265325][_0x53dd('0x7c')]));}}}if(_0xd571f3[_0x53dd('0x7e')]){_0xd571f3['conditions']=JSON[_0x53dd('0x79')](_0xd571f3[_0x53dd('0x7e')]);_0x11c4cb[_0x53dd('0x38')](_0xe7db25(_0xd571f3[_0x53dd('0x7e')][_0x53dd('0x62')]));}_0x3f4f9d=_0x11c4cb['clone']();_0x11c4cb[_0x53dd('0x1d')](_0x432357);_0x11c4cb[_0x53dd('0x1c')](0x0);logger[_0x53dd('0x80')](_0x53dd('0x8a'),_0x11c4cb[_0x53dd('0x81')]());return db[_0x53dd('0x8b')][_0x53dd('0x2f')](_0x11c4cb['toString'](),{'type':db['sequelize'][_0x53dd('0x8c')][_0x53dd('0x82')]});}})[_0x53dd('0x22')](function(_0x40da04){if(!_0x40da04[_0x53dd('0x34')]){throw new db[(_0x53dd('0x67'))]['ValidationErrorItem'](_0x53dd('0x8d'),0xcc);}if(_0x414930['output']==='web'){return null;}var _0x5bf22e=_[_0x53dd('0x3c')](_0x414930,{'name':_0x414930[_0x53dd('0x8e')]||_0x414930[_0x53dd('0x2e')]||_0xd571f3[_0x53dd('0x2e')],'basename':_0x5db6c8,'savename':util[_0x53dd('0x73')](_0x53dd('0x8f'),_0x414930[_0x53dd('0x2e')]||_0xd571f3[_0x53dd('0x2e')],require('randomstring')['generate'](0x4),_0x414930[_0x53dd('0x90')]||_0x53dd('0x91')),'reportId':_0xd571f3['id'],'reportType':_0x53dd('0x92')});return db[_0x53dd('0x93')]['create'](_0x5bf22e,{'raw':!![]});})[_0x53dd('0x22')](function(_0x3e0c08){if(_0xd571f3[_0x53dd('0x6e')]===_0x53dd('0x94')){_0x3f4f9d['where'](_0xd571f3['table']+_0x53dd('0x95'),_0x414930[_0x53dd('0x96')],_0x414930[_0x53dd('0x97')]);}else{_0x3f4f9d[_0x53dd('0x38')](_0xd571f3[_0x53dd('0x6e')]+_0x53dd('0x98'),_0x414930[_0x53dd('0x96')],_0x414930[_0x53dd('0x97')]);}if(_0x3e0c08){logger[_0x53dd('0x99')](_0x53dd('0x9a'),_0x3f4f9d[_0x53dd('0x81')]());require(_0x53dd('0x9b'))[_0x53dd('0x9c')](path[_0x53dd('0x51')](__dirname,_0x53dd('0x9d'),_0x3e0c08[_0x53dd('0x90')]),[_0x3e0c08['id'],_0x3f4f9d[_0x53dd('0x81')](),path[_0x53dd('0x51')](__dirname,_0x53dd('0x9e'),_0x3e0c08[_0x53dd('0x9f')]),_0x5db6c8]);return _0x3e0c08;}else{var _0x5de872=squel[_0x53dd('0x6c')]();_0x5de872[_0x53dd('0x6d')]('('+_0x3f4f9d[_0x53dd('0x81')]()+')',_0x53dd('0xa0'));_0x5de872['field'](_0x53dd('0xa1'),_0x53dd('0x3f'));_0x3f4f9d[_0x53dd('0x1d')](_0x414930[_0x53dd('0x1d')]||_0x432357);_0x3f4f9d[_0x53dd('0x1c')](_0x414930[_0x53dd('0x1c')]||0x0);return dbH[_0x53dd('0x8b')][_0x53dd('0x2f')](_0x5de872[_0x53dd('0x81')](),{'type':dbH[_0x53dd('0x8b')][_0x53dd('0x8c')][_0x53dd('0x82')]})[_0x53dd('0x22')](function(_0x57134a){if(!_0x57134a[_0x53dd('0x34')]){_0x5753d1=0x0;}else{_0x5753d1=_0x57134a[0x0][_0x53dd('0x3f')]||0x0;}return dbH[_0x53dd('0x8b')][_0x53dd('0x2f')](_0x3f4f9d[_0x53dd('0x81')](),{'type':dbH['sequelize'][_0x53dd('0x8c')][_0x53dd('0x82')]});})[_0x53dd('0x22')](function(_0x2e2728){return{'rows':_0x2e2728||[],'count':_0x5753d1};});}});}exports[_0x53dd('0xa2')]=function(_0x57d1df,_0x4afc62){return runReport(_0x57d1df['params'],_0x57d1df[_0x53dd('0x2f')],_0x57d1df[_0x53dd('0x3e')])['then'](respondWithResult(_0x4afc62,null))[_0x53dd('0x44')](handleError(_0x4afc62,null));};exports['runReport']=runReport;exports['query']=function(_0x3a9241,_0x430bba){var _0x3cfeb0=0xa;var _0x522cfb=[_0x53dd('0x51'),_0x53dd('0x83'),_0x53dd('0x52'),_0x53dd('0x53')];var _0x54ae4a={'SUM':_0x53dd('0x54'),'COUNT':_0x53dd('0x55'),'COUNT DISTINCT':_0x53dd('0x56'),'MAX':_0x53dd('0x57'),'MIN':'MIN(%s)','AVG':_0x53dd('0x59'),'GROUP_CONCAT':_0x53dd('0x84'),'GROUP_CONCAT ASC':_0x53dd('0x5a'),'GROUP_CONCAT DESC':_0x53dd('0x85')};var _0x49a8a7={'SEC_TO_TIME':_0x53dd('0x86'),'DATE':_0x53dd('0x87'),'HOUR':_0x53dd('0x5b'),'ROUND':_0x53dd('0x5c'),'UNIX_TIMESTAMP':_0x53dd('0x88')};var _0x5f099b=function(_0x3d6d3d){return!_[_0x53dd('0x5d')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x53dd('0x5f'),'IS\x20NOT\x20EMPTY'],_0x3d6d3d);};var _0x24bcea=function(_0x41f3d9){if(!_0x41f3d9||!_0x41f3d9['rules'][_0x53dd('0x34')]){return'';}for(var _0x22a1cf='(',_0x3d833c=0x0;_0x3d833c<_0x41f3d9[_0x53dd('0x61')]['length'];_0x3d833c+=0x1){_0x3d833c>0x0&&(_0x22a1cf+='\x20'+_0x41f3d9[_0x53dd('0x89')]+'\x20');_0x22a1cf+=_0x41f3d9[_0x53dd('0x61')][_0x3d833c]['group']?_0x24bcea(_0x41f3d9['rules'][_0x3d833c]['group']):_0x41f3d9[_0x53dd('0x61')][_0x3d833c][_0x53dd('0x63')]+'\x20'+_0x41f3d9[_0x53dd('0x61')][_0x3d833c][_0x53dd('0x64')]+(_0x5f099b(_0x41f3d9[_0x53dd('0x61')][_0x3d833c][_0x53dd('0x64')])?'\x20'+_0x41f3d9[_0x53dd('0x61')][_0x3d833c][_0x53dd('0x65')]:'');}return _0x22a1cf+')';};var _0x3eebc2={'where':{'id':_0x3a9241[_0x53dd('0x46')]['id']}},_0x3b8b6e,_0x514efe,_0x285d62,_0x33693e,_0x26decb;_0x3eebc2=_['merge']({},_0x3eebc2,_0x3a9241[_0x53dd('0x3e')]);return db[_0x53dd('0x41')]['find'](_0x3eebc2)[_0x53dd('0x22')](function(_0x416550){if(_0x416550){_0x3b8b6e=_0x416550;return _0x416550[_0x53dd('0x66')]();}return null;})['then'](function(_0x21c0e4){if(_0x21c0e4){if(!_0x21c0e4[_0x53dd('0x34')]){throw new db[(_0x53dd('0x67'))][(_0x53dd('0x68'))](_0x53dd('0x69'),0x193);}_0x514efe=_0x21c0e4;return db[_0x53dd('0x6a')][_0x53dd('0x42')]({'raw':!![]});}return null;})[_0x53dd('0x22')](function(_0xeeb579){if(_0xeeb579){_0x285d62=_['keyBy'](_0xeeb579,'id');var _0x26e3c3;var _0x4877f1=squel['select']();_0x4877f1[_0x53dd('0x6d')](_0x3b8b6e[_0x53dd('0x6e')]);for(var _0x22d6cc=0x0;_0x22d6cc<_0x514efe[_0x53dd('0x34')];_0x22d6cc+=0x1){_0x26e3c3=_0x514efe[_0x22d6cc][_0x53dd('0x6f')]?_0x285d62[_0x514efe[_0x22d6cc][_0x53dd('0x6f')]][_0x53dd('0x70')]:_0x514efe[_0x22d6cc][_0x53dd('0x63')];_0x26e3c3=_0x514efe[_0x22d6cc]['function']?_[_0x53dd('0x72')](_0x54ae4a[_0x514efe[_0x22d6cc][_0x53dd('0x71')]],'%s',_0x26e3c3):_0x26e3c3;_0x26e3c3=_0x514efe[_0x22d6cc]['format']?_[_0x53dd('0x72')](_0x49a8a7[_0x514efe[_0x22d6cc][_0x53dd('0x73')]],'%s',_0x26e3c3):_0x26e3c3;if(_0x514efe[_0x22d6cc]['groupBy']){_0x4877f1[_0x53dd('0x62')](_0x26e3c3);}_0x514efe[_0x22d6cc][_0x53dd('0x75')]&&_0x4877f1['order'](_0x26e3c3,_0x514efe[_0x22d6cc]['orderBy']==='DESC'?![]:!![]);_0x4877f1[_0x53dd('0x63')](_0x26e3c3,_0x514efe[_0x22d6cc][_0x53dd('0x77')]||_0x26e3c3);}if(_0x3b8b6e[_0x53dd('0x78')]){_0x3b8b6e['joins']=JSON[_0x53dd('0x79')](_0x3b8b6e[_0x53dd('0x78')]);for(var _0x404113=0x0;_0x404113<_0x3b8b6e[_0x53dd('0x78')][_0x53dd('0x34')];_0x404113+=0x1){if(_0x3b8b6e[_0x53dd('0x78')][_0x404113]['type']&&_[_0x53dd('0x5d')](_0x522cfb,_0x3b8b6e['joins'][_0x404113]['type'])&&_0x3b8b6e['joins'][_0x404113][_0x53dd('0x7a')]&&_0x3b8b6e[_0x53dd('0x78')][_0x404113]['foreignTable']&&_0x3b8b6e[_0x53dd('0x78')][_0x404113][_0x53dd('0x7c')]){_0x4877f1[_0x3b8b6e[_0x53dd('0x78')][_0x404113][_0x53dd('0x2c')]](_0x3b8b6e['joins'][_0x404113][_0x53dd('0x7b')],null,util[_0x53dd('0x73')]('%s.%s\x20=\x20%s.%s',_0x3b8b6e[_0x53dd('0x6e')],_0x3b8b6e[_0x53dd('0x78')][_0x404113][_0x53dd('0x7a')],_0x3b8b6e[_0x53dd('0x78')][_0x404113][_0x53dd('0x7b')],_0x3b8b6e['joins'][_0x404113][_0x53dd('0x7c')]));}}}if(_0x3b8b6e['conditions']){_0x3b8b6e[_0x53dd('0x7e')]=JSON[_0x53dd('0x79')](_0x3b8b6e[_0x53dd('0x7e')]);_0x4877f1[_0x53dd('0x38')](_0x24bcea(_0x3b8b6e[_0x53dd('0x7e')][_0x53dd('0x62')]));}_0x26decb=_0x4877f1[_0x53dd('0x7f')]();_0x4877f1[_0x53dd('0x1d')](_0x3cfeb0);_0x4877f1[_0x53dd('0x1c')](0x0);logger['debug'](_0x53dd('0x8a'),_0x4877f1[_0x53dd('0x81')]());return db[_0x53dd('0x8b')][_0x53dd('0x2f')](_0x4877f1[_0x53dd('0x81')](),{'type':db[_0x53dd('0x8b')]['QueryTypes']['SELECT']});}})['then'](function(){return{'sql':_0x26decb['toString']()};})[_0x53dd('0x22')](respondWithResult(_0x430bba,null))[_0x53dd('0x44')](handleError(_0x430bba,null));};