922eab509a9fd6da947f71e4a85ba68b328a902f
[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 _0xc2bd=['QueryTypes','SELECT','SUM(%s)','AVG(%s)','IS\x20NOT\x20EMPTY','AnalyticMetric','from','order','output','fullPath','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../files/reports','savename','countTable','runReport','debug','Limited\x20Query:','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','get','CustomReports','UserProfileResource','destroy','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','join','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','select','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','parse','clone','toString','sequelize'];(function(_0x4ced13,_0x365022){var _0x2fdce1=function(_0x590571){while(--_0x590571){_0x4ced13['push'](_0x4ced13['shift']());}};_0x2fdce1(++_0x365022);}(_0xc2bd,0x16c));var _0xdc2b=function(_0x3824c8,_0x4698cb){_0x3824c8=_0x3824c8-0x0;var _0x319c42=_0xc2bd[_0x3824c8];return _0x319c42;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xdc2b('0x0'));var zipdir=require(_0xdc2b('0x1'));var jsonpatch=require(_0xdc2b('0x2'));var rp=require(_0xdc2b('0x3'));var moment=require(_0xdc2b('0x4'));var BPromise=require(_0xdc2b('0x5'));var Mustache=require(_0xdc2b('0x6'));var util=require(_0xdc2b('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xdc2b('0x8'));var ejs=require(_0xdc2b('0x9'));var fs=require('fs');var fs_extra=require(_0xdc2b('0xa'));var _=require(_0xdc2b('0xb'));var squel=require(_0xdc2b('0xc'));var crypto=require(_0xdc2b('0xd'));var jsforce=require(_0xdc2b('0xe'));var deskjs=require(_0xdc2b('0xf'));var toCsv=require(_0xdc2b('0x8'));var querystring=require('querystring');var Papa=require(_0xdc2b('0x10'));var Redis=require(_0xdc2b('0x11'));var authService=require(_0xdc2b('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xdc2b('0x13'));var hardwareService=require(_0xdc2b('0x14'));var logger=require('../../config/logger')(_0xdc2b('0x15'));var utils=require(_0xdc2b('0x16'));var config=require(_0xdc2b('0x17'));var licenseUtil=require(_0xdc2b('0x18'));var db=require(_0xdc2b('0x19'))['db'];var dbH=require(_0xdc2b('0x19'))[_0xdc2b('0x1a')];function respondWithStatusCode(_0x47641d,_0x5adc9c){_0x5adc9c=_0x5adc9c||0xcc;return function(_0x5bcd2f){if(_0x5bcd2f){return _0x47641d[_0xdc2b('0x1b')](_0x5adc9c);}return _0x47641d[_0xdc2b('0x1c')](_0x5adc9c)[_0xdc2b('0x1d')]();};}function respondWithResult(_0x13fe28,_0x149dc7){_0x149dc7=_0x149dc7||0xc8;return function(_0x549dfb){if(_0x549dfb){return _0x13fe28['status'](_0x149dc7)[_0xdc2b('0x1e')](_0x549dfb);}};}function respondWithFilteredResult(_0x3de711,_0x3716bf){return function(_0x763ce1){if(_0x763ce1){var _0x528afe=typeof _0x3716bf['offset']===_0xdc2b('0x1f')&&typeof _0x3716bf[_0xdc2b('0x20')]===_0xdc2b('0x1f');var _0x1dbad7=_0x763ce1[_0xdc2b('0x21')];var _0x5037a5=_0x528afe?0x0:_0x3716bf[_0xdc2b('0x22')];var _0x1b2d20=_0x528afe?_0x763ce1[_0xdc2b('0x21')]:_0x3716bf[_0xdc2b('0x22')]+_0x3716bf[_0xdc2b('0x20')];var _0x45e9b2;if(_0x1b2d20>=_0x1dbad7){_0x1b2d20=_0x1dbad7;_0x45e9b2=0xc8;}else{_0x45e9b2=0xce;}_0x3de711[_0xdc2b('0x1c')](_0x45e9b2);return _0x3de711[_0xdc2b('0x23')](_0xdc2b('0x24'),_0x5037a5+'-'+_0x1b2d20+'/'+_0x1dbad7)[_0xdc2b('0x1e')](_0x763ce1);}return null;};}function patchUpdates(_0x2f2fd8){return function(_0x6590d0){try{jsonpatch[_0xdc2b('0x25')](_0x6590d0,_0x2f2fd8,!![]);}catch(_0x2656ae){return BPromise[_0xdc2b('0x26')](_0x2656ae);}return _0x6590d0['save']();};}function saveUpdates(_0x269696,_0x19648d){return function(_0x529f4a){if(_0x529f4a){return _0x529f4a[_0xdc2b('0x27')](_0x269696)[_0xdc2b('0x28')](function(_0x2ecb30){return _0x2ecb30;});}return null;};}function removeEntity(_0x1c19d7,_0x350875){return function(_0x2b91b7){if(_0x2b91b7){return _0x2b91b7['destroy']()[_0xdc2b('0x28')](function(){var _0x28e613=_0x2b91b7[_0xdc2b('0x29')]({'plain':!![]});var _0x5a92c1=_0xdc2b('0x2a');return db[_0xdc2b('0x2b')][_0xdc2b('0x2c')]({'where':{'type':_0x5a92c1,'resourceId':_0x28e613['id']}})[_0xdc2b('0x28')](function(){return _0x2b91b7;});})[_0xdc2b('0x28')](function(){_0x1c19d7[_0xdc2b('0x1c')](0xcc)[_0xdc2b('0x1d')]();});}};}function handleEntityNotFound(_0x3e7ac0,_0x9f89cf){return function(_0x2b8e69){if(!_0x2b8e69){_0x3e7ac0[_0xdc2b('0x1b')](0x194);}return _0x2b8e69;};}function handleError(_0x553312,_0x2577b1){_0x2577b1=_0x2577b1||0x1f4;return function(_0x402f58){logger[_0xdc2b('0x2d')](_0x402f58[_0xdc2b('0x2e')]);if(_0x402f58[_0xdc2b('0x2f')]){delete _0x402f58[_0xdc2b('0x2f')];}_0x553312[_0xdc2b('0x1c')](_0x2577b1)[_0xdc2b('0x30')](_0x402f58);};}exports[_0xdc2b('0x31')]=function(_0x1efbed,_0x2287f4){var _0x4dec6f={},_0xe69375={},_0x1aa441={'count':0x0,'rows':[]};var _0x24617f=_[_0xdc2b('0x32')](db[_0xdc2b('0x33')][_0xdc2b('0x34')],function(_0x4a9a9b){return{'name':_0x4a9a9b[_0xdc2b('0x35')],'type':_0x4a9a9b[_0xdc2b('0x36')]['key']};});_0xe69375['model']=_[_0xdc2b('0x32')](_0x24617f,_0xdc2b('0x2f'));_0xe69375[_0xdc2b('0x37')]=_[_0xdc2b('0x38')](_0x1efbed['query']);_0xe69375[_0xdc2b('0x39')]=_[_0xdc2b('0x3a')](_0xe69375['model'],_0xe69375[_0xdc2b('0x37')]);_0x4dec6f['attributes']=_[_0xdc2b('0x3a')](_0xe69375[_0xdc2b('0x3b')],qs[_0xdc2b('0x3c')](_0x1efbed[_0xdc2b('0x37')][_0xdc2b('0x3c')]));_0x4dec6f[_0xdc2b('0x3d')]=_0x4dec6f[_0xdc2b('0x3d')][_0xdc2b('0x3e')]?_0x4dec6f[_0xdc2b('0x3d')]:_0xe69375[_0xdc2b('0x3b')];if(!_0x1efbed[_0xdc2b('0x37')][_0xdc2b('0x3f')]('nolimit')){_0x4dec6f['limit']=qs[_0xdc2b('0x20')](_0x1efbed[_0xdc2b('0x37')][_0xdc2b('0x20')]);_0x4dec6f['offset']=qs[_0xdc2b('0x22')](_0x1efbed[_0xdc2b('0x37')]['offset']);}_0x4dec6f['order']=qs[_0xdc2b('0x40')](_0x1efbed['query'][_0xdc2b('0x40')]);_0x4dec6f[_0xdc2b('0x41')]=qs['filters'](_[_0xdc2b('0x42')](_0x1efbed[_0xdc2b('0x37')],_0xe69375['filters']),_0x24617f);if(_0x1efbed[_0xdc2b('0x37')][_0xdc2b('0x43')]){_0x4dec6f[_0xdc2b('0x41')]=_[_0xdc2b('0x44')](_0x4dec6f[_0xdc2b('0x41')],{'$or':_['map'](_0x24617f,function(_0x511a1f){if(_0x511a1f[_0xdc2b('0x36')]!==_0xdc2b('0x45')){var _0x917a0d={};_0x917a0d[_0x511a1f[_0xdc2b('0x2f')]]={'$like':'%'+_0x1efbed[_0xdc2b('0x37')][_0xdc2b('0x43')]+'%'};return _0x917a0d;}})});}_0x4dec6f=_['merge']({},_0x4dec6f,_0x1efbed[_0xdc2b('0x46')]);var _0x4df7b2={'where':_0x4dec6f[_0xdc2b('0x41')]};return db[_0xdc2b('0x33')]['count'](_0x4df7b2)[_0xdc2b('0x28')](function(_0x159657){_0x1aa441[_0xdc2b('0x21')]=_0x159657;if(_0x1efbed[_0xdc2b('0x37')][_0xdc2b('0x47')]){_0x4dec6f[_0xdc2b('0x48')]=[{'all':!![]}];}return db[_0xdc2b('0x33')][_0xdc2b('0x49')](_0x4dec6f);})[_0xdc2b('0x28')](function(_0x3405a6){_0x1aa441[_0xdc2b('0x4a')]=_0x3405a6;return _0x1aa441;})[_0xdc2b('0x28')](respondWithFilteredResult(_0x2287f4,_0x4dec6f))[_0xdc2b('0x4b')](handleError(_0x2287f4,null));};exports[_0xdc2b('0x4c')]=function(_0x2ea012,_0x43f9f4){var _0x3ae89f={'raw':![],'where':{'id':_0x2ea012[_0xdc2b('0x4d')]['id']}},_0x38b9e2={};_0x38b9e2[_0xdc2b('0x3b')]=_[_0xdc2b('0x38')](db[_0xdc2b('0x33')][_0xdc2b('0x34')]);_0x38b9e2[_0xdc2b('0x37')]=_[_0xdc2b('0x38')](_0x2ea012[_0xdc2b('0x37')]);_0x38b9e2['filters']=_[_0xdc2b('0x3a')](_0x38b9e2[_0xdc2b('0x3b')],_0x38b9e2['query']);_0x3ae89f[_0xdc2b('0x3d')]=_['intersection'](_0x38b9e2[_0xdc2b('0x3b')],qs[_0xdc2b('0x3c')](_0x2ea012[_0xdc2b('0x37')][_0xdc2b('0x3c')]));_0x3ae89f[_0xdc2b('0x3d')]=_0x3ae89f[_0xdc2b('0x3d')][_0xdc2b('0x3e')]?_0x3ae89f[_0xdc2b('0x3d')]:_0x38b9e2[_0xdc2b('0x3b')];if(_0x2ea012[_0xdc2b('0x37')][_0xdc2b('0x47')]){_0x3ae89f[_0xdc2b('0x48')]=[{'all':!![]}];}_0x3ae89f=_['merge']({},_0x3ae89f,_0x2ea012[_0xdc2b('0x46')]);return db[_0xdc2b('0x33')][_0xdc2b('0x4e')](_0x3ae89f)[_0xdc2b('0x28')](handleEntityNotFound(_0x43f9f4,null))[_0xdc2b('0x28')](respondWithResult(_0x43f9f4,null))[_0xdc2b('0x4b')](handleError(_0x43f9f4,null));};exports[_0xdc2b('0x4f')]=function(_0x43ac98,_0x40e841){return db['AnalyticCustomReport'][_0xdc2b('0x4f')](_0x43ac98['body'],{})[_0xdc2b('0x28')](function(_0x1ee570){var _0x2d3bef=_0x43ac98[_0xdc2b('0x50')][_0xdc2b('0x29')]({'plain':!![]});if(!_0x2d3bef)throw new Error(_0xdc2b('0x51'));if(_0x2d3bef['role']===_0xdc2b('0x50')){var _0x521fdf=_0x1ee570['get']({'plain':!![]});var _0x55c54c=_0xdc2b('0x52');return db[_0xdc2b('0x53')][_0xdc2b('0x4e')]({'where':{'name':_0x55c54c,'userProfileId':_0x2d3bef[_0xdc2b('0x54')]},'raw':!![]})[_0xdc2b('0x28')](function(_0x5c0454){if(_0x5c0454&&_0x5c0454[_0xdc2b('0x55')]===0x0){return db[_0xdc2b('0x2b')][_0xdc2b('0x4f')]({'name':_0x521fdf[_0xdc2b('0x2f')],'resourceId':_0x521fdf['id'],'type':_0xdc2b('0x2a'),'sectionId':_0x5c0454['id']},{})[_0xdc2b('0x28')](function(){return _0x1ee570;});}else{return _0x1ee570;}})[_0xdc2b('0x4b')](function(_0x20bf4d){logger[_0xdc2b('0x2d')](_0xdc2b('0x56'),_0x20bf4d);throw _0x20bf4d;});}return _0x1ee570;})['then'](respondWithResult(_0x40e841,0xc9))['catch'](handleError(_0x40e841,null));};exports['update']=function(_0xacf28c,_0x3193bf){if(_0xacf28c[_0xdc2b('0x57')]['id']){delete _0xacf28c[_0xdc2b('0x57')]['id'];}return db[_0xdc2b('0x33')][_0xdc2b('0x4e')]({'where':{'id':_0xacf28c[_0xdc2b('0x4d')]['id']}})[_0xdc2b('0x28')](handleEntityNotFound(_0x3193bf,null))[_0xdc2b('0x28')](saveUpdates(_0xacf28c[_0xdc2b('0x57')],null))['then'](respondWithResult(_0x3193bf,null))['catch'](handleError(_0x3193bf,null));};exports[_0xdc2b('0x2c')]=function(_0x4ed318,_0x58d73c){return db[_0xdc2b('0x33')][_0xdc2b('0x4e')]({'where':{'id':_0x4ed318[_0xdc2b('0x4d')]['id']}})[_0xdc2b('0x28')](handleEntityNotFound(_0x58d73c,null))[_0xdc2b('0x28')](removeEntity(_0x58d73c,null))[_0xdc2b('0x4b')](handleError(_0x58d73c,null));};exports['preview']=function(_0x2b4fcc,_0x2a0f08){var _0x4362fd=0xa;var _0x521835=[_0xdc2b('0x58'),_0xdc2b('0x59'),_0xdc2b('0x5a'),_0xdc2b('0x5b')];var _0x366112={'SUM':'SUM(%s)','COUNT':_0xdc2b('0x5c'),'COUNT DISTINCT':_0xdc2b('0x5d'),'MAX':_0xdc2b('0x5e'),'MIN':_0xdc2b('0x5f'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xdc2b('0x60'),'GROUP_CONCAT ASC':_0xdc2b('0x61'),'GROUP_CONCAT DESC':_0xdc2b('0x62')};var _0x344d56={'SEC_TO_TIME':_0xdc2b('0x63'),'DATE':_0xdc2b('0x64'),'HOUR':_0xdc2b('0x65'),'ROUND':_0xdc2b('0x66'),'UNIX_TIMESTAMP':_0xdc2b('0x67')};var _0x3046eb=function(_0x5813f4){return!_[_0xdc2b('0x68')]([_0xdc2b('0x69'),_0xdc2b('0x6a'),_0xdc2b('0x6b'),'IS\x20NOT\x20EMPTY'],_0x5813f4);};var _0x2065db=function(_0x141ddd){if(!_0x141ddd||!_0x141ddd[_0xdc2b('0x6c')][_0xdc2b('0x3e')]){return'';}for(var _0x192597='(',_0x3c7246=0x0;_0x3c7246<_0x141ddd[_0xdc2b('0x6c')][_0xdc2b('0x3e')];_0x3c7246+=0x1){_0x3c7246>0x0&&(_0x192597+='\x20'+_0x141ddd[_0xdc2b('0x6d')]+'\x20');_0x192597+=_0x141ddd[_0xdc2b('0x6c')][_0x3c7246][_0xdc2b('0x6e')]?_0x2065db(_0x141ddd['rules'][_0x3c7246][_0xdc2b('0x6e')]):_0x141ddd[_0xdc2b('0x6c')][_0x3c7246][_0xdc2b('0x6f')]+'\x20'+_0x141ddd[_0xdc2b('0x6c')][_0x3c7246]['condition']+(_0x3046eb(_0x141ddd[_0xdc2b('0x6c')][_0x3c7246][_0xdc2b('0x70')])?'\x20'+_0x141ddd['rules'][_0x3c7246][_0xdc2b('0x71')]:'');}return _0x192597+')';};var _0x2697d4={'where':{'id':_0x2b4fcc[_0xdc2b('0x4d')]['id']}},_0x2f414,_0x1ca5a8,_0x4bc3c4,_0x2d7639,_0x2e70d8;_0x2697d4=_[_0xdc2b('0x44')]({},_0x2697d4,_0x2b4fcc[_0xdc2b('0x46')]);return db['AnalyticCustomReport'][_0xdc2b('0x4e')](_0x2697d4)[_0xdc2b('0x28')](function(_0x391ed5){if(_0x391ed5){_0x2f414=_0x391ed5;return _0x391ed5[_0xdc2b('0x72')]();}return null;})[_0xdc2b('0x28')](function(_0x4d6c90){if(_0x4d6c90){if(!_0x4d6c90[_0xdc2b('0x3e')]){throw new db[(_0xdc2b('0x73'))][(_0xdc2b('0x74'))](_0xdc2b('0x75'),0x193);}_0x1ca5a8=_0x4d6c90;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0xdc2b('0x28')](function(_0x880388){if(_0x880388){_0x4bc3c4=_[_0xdc2b('0x76')](_0x880388,'id');var _0x35d3cf;var _0x12c082=squel[_0xdc2b('0x77')]();_0x12c082['from'](_0x2f414[_0xdc2b('0x78')]);for(var _0xb72d1=0x0;_0xb72d1<_0x1ca5a8[_0xdc2b('0x3e')];_0xb72d1+=0x1){_0x35d3cf=_0x1ca5a8[_0xb72d1][_0xdc2b('0x79')]?_0x4bc3c4[_0x1ca5a8[_0xb72d1]['MetricId']][_0xdc2b('0x7a')]:_0x1ca5a8[_0xb72d1][_0xdc2b('0x6f')];_0x35d3cf=_0x1ca5a8[_0xb72d1][_0xdc2b('0x7b')]?_[_0xdc2b('0x7c')](_0x366112[_0x1ca5a8[_0xb72d1]['function']],'%s',_0x35d3cf):_0x35d3cf;_0x35d3cf=_0x1ca5a8[_0xb72d1][_0xdc2b('0x7d')]?_[_0xdc2b('0x7c')](_0x344d56[_0x1ca5a8[_0xb72d1][_0xdc2b('0x7d')]],'%s',_0x35d3cf):_0x35d3cf;if(_0x1ca5a8[_0xb72d1][_0xdc2b('0x7e')]){_0x12c082[_0xdc2b('0x6e')](_0x35d3cf);}_0x1ca5a8[_0xb72d1]['orderBy']&&_0x12c082['order'](_0x35d3cf,_0x1ca5a8[_0xb72d1][_0xdc2b('0x7f')]===_0xdc2b('0x80')?![]:!![]);_0x12c082[_0xdc2b('0x6f')](_0x35d3cf,_0x1ca5a8[_0xb72d1][_0xdc2b('0x81')]||_0x35d3cf);}if(_0x2f414[_0xdc2b('0x82')]){_0x2f414[_0xdc2b('0x82')]=JSON['parse'](_0x2f414[_0xdc2b('0x82')]);for(var _0x166047=0x0;_0x166047<_0x2f414[_0xdc2b('0x82')][_0xdc2b('0x3e')];_0x166047+=0x1){if(_0x2f414['joins'][_0x166047][_0xdc2b('0x36')]&&_[_0xdc2b('0x68')](_0x521835,_0x2f414[_0xdc2b('0x82')][_0x166047][_0xdc2b('0x36')])&&_0x2f414[_0xdc2b('0x82')][_0x166047][_0xdc2b('0x83')]&&_0x2f414[_0xdc2b('0x82')][_0x166047][_0xdc2b('0x84')]&&_0x2f414['joins'][_0x166047][_0xdc2b('0x85')]){_0x12c082[_0x2f414[_0xdc2b('0x82')][_0x166047][_0xdc2b('0x36')]](_0x2f414[_0xdc2b('0x82')][_0x166047][_0xdc2b('0x84')],null,util['format'](_0xdc2b('0x86'),_0x2f414[_0xdc2b('0x78')],_0x2f414[_0xdc2b('0x82')][_0x166047]['parentKey'],_0x2f414[_0xdc2b('0x82')][_0x166047][_0xdc2b('0x84')],_0x2f414['joins'][_0x166047]['foreignKey']));}}}if(_0x2f414[_0xdc2b('0x87')]){_0x2f414['conditions']=JSON[_0xdc2b('0x88')](_0x2f414[_0xdc2b('0x87')]);_0x12c082['where'](_0x2065db(_0x2f414[_0xdc2b('0x87')][_0xdc2b('0x6e')]));}_0x2e70d8=_0x12c082[_0xdc2b('0x89')]();_0x12c082[_0xdc2b('0x20')](_0x4362fd);_0x12c082['offset'](0x0);logger['debug']('Limited\x20Query:',_0x12c082[_0xdc2b('0x8a')]());return dbH['sequelize'][_0xdc2b('0x37')](_0x12c082[_0xdc2b('0x8a')](),{'type':dbH[_0xdc2b('0x8b')][_0xdc2b('0x8c')][_0xdc2b('0x8d')]});}})[_0xdc2b('0x28')](respondWithResult(_0x2a0f08,null))[_0xdc2b('0x4b')](handleError(_0x2a0f08,null));};function runReport(_0x31969f,_0x5c495f,_0x41d2d7){var _0x20de25=_0x5c495f['name'];var _0x40592e=0xa;var _0x152f5b=['join','left_join',_0xdc2b('0x5a'),_0xdc2b('0x5b')];var _0x57aeee={'SUM':_0xdc2b('0x8e'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xdc2b('0x5e'),'MIN':_0xdc2b('0x5f'),'AVG':_0xdc2b('0x8f'),'GROUP_CONCAT':_0xdc2b('0x60'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x45402d={'SEC_TO_TIME':_0xdc2b('0x63'),'DATE':_0xdc2b('0x64'),'HOUR':_0xdc2b('0x65'),'ROUND':_0xdc2b('0x66'),'UNIX_TIMESTAMP':_0xdc2b('0x67')};var _0x4bf264=function(_0x2ef7c1){return!_[_0xdc2b('0x68')]([_0xdc2b('0x69'),_0xdc2b('0x6a'),_0xdc2b('0x6b'),_0xdc2b('0x90')],_0x2ef7c1);};var _0xd600f8=function(_0x2dffba){if(!_0x2dffba||!_0x2dffba['rules'][_0xdc2b('0x3e')]){return'';}for(var _0xd55db7='(',_0x4d6b90=0x0;_0x4d6b90<_0x2dffba[_0xdc2b('0x6c')]['length'];_0x4d6b90+=0x1){_0x4d6b90>0x0&&(_0xd55db7+='\x20'+_0x2dffba[_0xdc2b('0x6d')]+'\x20');_0xd55db7+=_0x2dffba[_0xdc2b('0x6c')][_0x4d6b90][_0xdc2b('0x6e')]?_0xd600f8(_0x2dffba[_0xdc2b('0x6c')][_0x4d6b90][_0xdc2b('0x6e')]):_0x2dffba[_0xdc2b('0x6c')][_0x4d6b90]['field']+'\x20'+_0x2dffba[_0xdc2b('0x6c')][_0x4d6b90][_0xdc2b('0x70')]+(_0x4bf264(_0x2dffba[_0xdc2b('0x6c')][_0x4d6b90]['condition'])?'\x20'+_0x2dffba['rules'][_0x4d6b90][_0xdc2b('0x71')]:'');}return _0xd55db7+')';};var _0x4bf51b={'where':{'id':_0x31969f['id']}},_0x212159,_0x2fc427,_0x47fefa,_0x298c66,_0xbb22e9;_0x4bf51b=_[_0xdc2b('0x44')]({},_0x4bf51b,_0x41d2d7);return db[_0xdc2b('0x33')][_0xdc2b('0x4e')](_0x4bf51b)[_0xdc2b('0x28')](function(_0x54e798){if(_0x54e798){_0x212159=_0x54e798;return _0x54e798[_0xdc2b('0x72')]();}return null;})[_0xdc2b('0x28')](function(_0x579150){if(_0x579150){if(!_0x579150[_0xdc2b('0x3e')]){throw new db[(_0xdc2b('0x73'))][(_0xdc2b('0x74'))](_0xdc2b('0x75'),0x193);}_0x2fc427=_0x579150;return db[_0xdc2b('0x91')][_0xdc2b('0x49')]({'raw':!![]});}return null;})['then'](function(_0x440843){if(_0x440843){_0x47fefa=_['keyBy'](_0x440843,'id');var _0x8d5b29;var _0x3f63c1=squel[_0xdc2b('0x77')]();_0x3f63c1[_0xdc2b('0x92')](_0x212159[_0xdc2b('0x78')]);for(var _0x1173ad=0x0;_0x1173ad<_0x2fc427[_0xdc2b('0x3e')];_0x1173ad+=0x1){_0x8d5b29=_0x2fc427[_0x1173ad][_0xdc2b('0x79')]?_0x47fefa[_0x2fc427[_0x1173ad][_0xdc2b('0x79')]][_0xdc2b('0x7a')]:_0x2fc427[_0x1173ad]['field'];_0x8d5b29=_0x2fc427[_0x1173ad][_0xdc2b('0x7b')]?_['replace'](_0x57aeee[_0x2fc427[_0x1173ad][_0xdc2b('0x7b')]],'%s',_0x8d5b29):_0x8d5b29;_0x8d5b29=_0x2fc427[_0x1173ad][_0xdc2b('0x7d')]?_[_0xdc2b('0x7c')](_0x45402d[_0x2fc427[_0x1173ad]['format']],'%s',_0x8d5b29):_0x8d5b29;if(_0x2fc427[_0x1173ad]['groupBy']){_0x3f63c1[_0xdc2b('0x6e')](_0x8d5b29);}_0x2fc427[_0x1173ad][_0xdc2b('0x7f')]&&_0x3f63c1[_0xdc2b('0x93')](_0x8d5b29,_0x2fc427[_0x1173ad][_0xdc2b('0x7f')]==='DESC'?![]:!![]);_0x3f63c1[_0xdc2b('0x6f')](_0x8d5b29,_0x2fc427[_0x1173ad][_0xdc2b('0x81')]||_0x8d5b29);}if(_0x212159['joins']){_0x212159[_0xdc2b('0x82')]=JSON[_0xdc2b('0x88')](_0x212159[_0xdc2b('0x82')]);for(var _0x248a66=0x0;_0x248a66<_0x212159[_0xdc2b('0x82')][_0xdc2b('0x3e')];_0x248a66+=0x1){if(_0x212159[_0xdc2b('0x82')][_0x248a66][_0xdc2b('0x36')]&&_[_0xdc2b('0x68')](_0x152f5b,_0x212159[_0xdc2b('0x82')][_0x248a66]['type'])&&_0x212159[_0xdc2b('0x82')][_0x248a66][_0xdc2b('0x83')]&&_0x212159[_0xdc2b('0x82')][_0x248a66][_0xdc2b('0x84')]&&_0x212159[_0xdc2b('0x82')][_0x248a66][_0xdc2b('0x85')]){_0x3f63c1[_0x212159[_0xdc2b('0x82')][_0x248a66][_0xdc2b('0x36')]](_0x212159['joins'][_0x248a66][_0xdc2b('0x84')],null,util[_0xdc2b('0x7d')](_0xdc2b('0x86'),_0x212159[_0xdc2b('0x78')],_0x212159[_0xdc2b('0x82')][_0x248a66]['parentKey'],_0x212159['joins'][_0x248a66]['foreignTable'],_0x212159['joins'][_0x248a66][_0xdc2b('0x85')]));}}}if(_0x212159[_0xdc2b('0x87')]){_0x212159[_0xdc2b('0x87')]=JSON['parse'](_0x212159[_0xdc2b('0x87')]);_0x3f63c1[_0xdc2b('0x41')](_0xd600f8(_0x212159['conditions']['group']));}_0xbb22e9=_0x3f63c1[_0xdc2b('0x89')]();_0x3f63c1['limit'](_0x40592e);_0x3f63c1['offset'](0x0);return;}})[_0xdc2b('0x28')](function(){if(_0x5c495f[_0xdc2b('0x94')]==='web'){return null;}var _0x52a227=_[_0xdc2b('0x44')](_0x5c495f,{'name':_0x5c495f[_0xdc2b('0x95')]||_0x5c495f[_0xdc2b('0x2f')]||_0x212159[_0xdc2b('0x2f')],'basename':_0x20de25,'savename':util[_0xdc2b('0x7d')]('%s-%s.%s',_0x5c495f[_0xdc2b('0x2f')]||_0x212159['name'],require('randomstring')['generate'](0x4),_0x5c495f[_0xdc2b('0x94')]||_0xdc2b('0x96')),'reportId':_0x212159['id'],'reportType':_0xdc2b('0x97')});return db[_0xdc2b('0x98')][_0xdc2b('0x4f')](_0x52a227,{'raw':!![]});})[_0xdc2b('0x28')](function(_0x454540){if(_0x212159['table']===_0xdc2b('0x99')){_0xbb22e9[_0xdc2b('0x41')](_0x212159['table']+_0xdc2b('0x9a'),_0x5c495f[_0xdc2b('0x9b')],_0x5c495f[_0xdc2b('0x9c')]);}else{_0xbb22e9[_0xdc2b('0x41')](_0x212159[_0xdc2b('0x78')]+_0xdc2b('0x9d'),_0x5c495f[_0xdc2b('0x9b')],_0x5c495f[_0xdc2b('0x9c')]);}if(_0x454540){logger[_0xdc2b('0x9e')](_0xdc2b('0x9f'),_0xbb22e9['toString']());require(_0xdc2b('0xa0'))[_0xdc2b('0xa1')](path[_0xdc2b('0x58')](__dirname,'../../components/export/',_0x454540['output']),[_0x454540['id'],_0xbb22e9['toString'](),path[_0xdc2b('0x58')](__dirname,_0xdc2b('0xa2'),_0x454540[_0xdc2b('0xa3')]),_0x20de25]);return _0x454540;}else{var _0x1e1c19=squel[_0xdc2b('0x77')]();_0x1e1c19['from']('('+_0xbb22e9[_0xdc2b('0x8a')]()+')',_0xdc2b('0xa4'));_0x1e1c19[_0xdc2b('0x6f')]('COUNT(*)',_0xdc2b('0x21'));_0xbb22e9[_0xdc2b('0x20')](_0x5c495f[_0xdc2b('0x20')]||_0x40592e);_0xbb22e9[_0xdc2b('0x22')](_0x5c495f[_0xdc2b('0x22')]||0x0);return dbH[_0xdc2b('0x8b')][_0xdc2b('0x37')](_0x1e1c19[_0xdc2b('0x8a')](),{'type':dbH['sequelize'][_0xdc2b('0x8c')][_0xdc2b('0x8d')]})[_0xdc2b('0x28')](function(_0x4bc87d){if(!_0x4bc87d[_0xdc2b('0x3e')]){_0x298c66=0x0;}else{_0x298c66=_0x4bc87d[0x0][_0xdc2b('0x21')]||0x0;}return dbH[_0xdc2b('0x8b')][_0xdc2b('0x37')](_0xbb22e9[_0xdc2b('0x8a')](),{'type':dbH['sequelize'][_0xdc2b('0x8c')]['SELECT']});})[_0xdc2b('0x28')](function(_0xddd1ee){return{'rows':_0xddd1ee||[],'count':_0x298c66};});}});}exports['run']=function(_0x2df528,_0x2acf3d){return runReport(_0x2df528[_0xdc2b('0x4d')],_0x2df528[_0xdc2b('0x37')],_0x2df528[_0xdc2b('0x46')])[_0xdc2b('0x28')](respondWithResult(_0x2acf3d,null))['catch'](handleError(_0x2acf3d,null));};exports[_0xdc2b('0xa5')]=runReport;exports[_0xdc2b('0x37')]=function(_0x2d8c07,_0x5d645f){var _0x3e606d=0xa;var _0x2c81c6=[_0xdc2b('0x58'),'left_join',_0xdc2b('0x5a'),_0xdc2b('0x5b')];var _0x301b5a={'SUM':_0xdc2b('0x8e'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xdc2b('0x5e'),'MIN':_0xdc2b('0x5f'),'AVG':_0xdc2b('0x8f'),'GROUP_CONCAT':_0xdc2b('0x60'),'GROUP_CONCAT ASC':_0xdc2b('0x61'),'GROUP_CONCAT DESC':_0xdc2b('0x62')};var _0x2f84e2={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xdc2b('0x64'),'HOUR':_0xdc2b('0x65'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xdc2b('0x67')};var _0x213e1f=function(_0x559b17){return!_[_0xdc2b('0x68')](['IS\x20NULL',_0xdc2b('0x6a'),_0xdc2b('0x6b'),_0xdc2b('0x90')],_0x559b17);};var _0x19b5f1=function(_0x5045ac){if(!_0x5045ac||!_0x5045ac['rules']['length']){return'';}for(var _0xe87c0c='(',_0x14d3ae=0x0;_0x14d3ae<_0x5045ac[_0xdc2b('0x6c')][_0xdc2b('0x3e')];_0x14d3ae+=0x1){_0x14d3ae>0x0&&(_0xe87c0c+='\x20'+_0x5045ac[_0xdc2b('0x6d')]+'\x20');_0xe87c0c+=_0x5045ac['rules'][_0x14d3ae][_0xdc2b('0x6e')]?_0x19b5f1(_0x5045ac['rules'][_0x14d3ae]['group']):_0x5045ac[_0xdc2b('0x6c')][_0x14d3ae][_0xdc2b('0x6f')]+'\x20'+_0x5045ac['rules'][_0x14d3ae][_0xdc2b('0x70')]+(_0x213e1f(_0x5045ac[_0xdc2b('0x6c')][_0x14d3ae][_0xdc2b('0x70')])?'\x20'+_0x5045ac['rules'][_0x14d3ae][_0xdc2b('0x71')]:'');}return _0xe87c0c+')';};var _0x4ef4ad={'where':{'id':_0x2d8c07[_0xdc2b('0x4d')]['id']}},_0x811668,_0x2cbfdd,_0x6178d2,_0x5b78ee,_0xe524f5;_0x4ef4ad=_['merge']({},_0x4ef4ad,_0x2d8c07[_0xdc2b('0x46')]);return db[_0xdc2b('0x33')][_0xdc2b('0x4e')](_0x4ef4ad)[_0xdc2b('0x28')](function(_0x4dc3aa){if(_0x4dc3aa){_0x811668=_0x4dc3aa;return _0x4dc3aa[_0xdc2b('0x72')]();}return null;})[_0xdc2b('0x28')](function(_0x450b2a){if(_0x450b2a){if(!_0x450b2a[_0xdc2b('0x3e')]){throw new db['Sequelize'][(_0xdc2b('0x74'))](_0xdc2b('0x75'),0x193);}_0x2cbfdd=_0x450b2a;return db['AnalyticMetric'][_0xdc2b('0x49')]({'raw':!![]});}return null;})['then'](function(_0x40b156){if(_0x40b156){_0x6178d2=_[_0xdc2b('0x76')](_0x40b156,'id');var _0x11ccb9;var _0x1a52d1=squel['select']();_0x1a52d1['from'](_0x811668[_0xdc2b('0x78')]);for(var _0x1ee4e8=0x0;_0x1ee4e8<_0x2cbfdd[_0xdc2b('0x3e')];_0x1ee4e8+=0x1){_0x11ccb9=_0x2cbfdd[_0x1ee4e8][_0xdc2b('0x79')]?_0x6178d2[_0x2cbfdd[_0x1ee4e8][_0xdc2b('0x79')]][_0xdc2b('0x7a')]:_0x2cbfdd[_0x1ee4e8][_0xdc2b('0x6f')];_0x11ccb9=_0x2cbfdd[_0x1ee4e8]['function']?_[_0xdc2b('0x7c')](_0x301b5a[_0x2cbfdd[_0x1ee4e8][_0xdc2b('0x7b')]],'%s',_0x11ccb9):_0x11ccb9;_0x11ccb9=_0x2cbfdd[_0x1ee4e8][_0xdc2b('0x7d')]?_[_0xdc2b('0x7c')](_0x2f84e2[_0x2cbfdd[_0x1ee4e8]['format']],'%s',_0x11ccb9):_0x11ccb9;if(_0x2cbfdd[_0x1ee4e8][_0xdc2b('0x7e')]){_0x1a52d1[_0xdc2b('0x6e')](_0x11ccb9);}_0x2cbfdd[_0x1ee4e8][_0xdc2b('0x7f')]&&_0x1a52d1[_0xdc2b('0x93')](_0x11ccb9,_0x2cbfdd[_0x1ee4e8]['orderBy']==='DESC'?![]:!![]);_0x1a52d1[_0xdc2b('0x6f')](_0x11ccb9,_0x2cbfdd[_0x1ee4e8][_0xdc2b('0x81')]||_0x11ccb9);}if(_0x811668[_0xdc2b('0x82')]){_0x811668['joins']=JSON[_0xdc2b('0x88')](_0x811668['joins']);for(var _0x46e159=0x0;_0x46e159<_0x811668[_0xdc2b('0x82')][_0xdc2b('0x3e')];_0x46e159+=0x1){if(_0x811668[_0xdc2b('0x82')][_0x46e159][_0xdc2b('0x36')]&&_[_0xdc2b('0x68')](_0x2c81c6,_0x811668[_0xdc2b('0x82')][_0x46e159][_0xdc2b('0x36')])&&_0x811668[_0xdc2b('0x82')][_0x46e159][_0xdc2b('0x83')]&&_0x811668[_0xdc2b('0x82')][_0x46e159]['foreignTable']&&_0x811668['joins'][_0x46e159][_0xdc2b('0x85')]){_0x1a52d1[_0x811668[_0xdc2b('0x82')][_0x46e159][_0xdc2b('0x36')]](_0x811668[_0xdc2b('0x82')][_0x46e159][_0xdc2b('0x84')],null,util[_0xdc2b('0x7d')](_0xdc2b('0x86'),_0x811668[_0xdc2b('0x78')],_0x811668['joins'][_0x46e159]['parentKey'],_0x811668[_0xdc2b('0x82')][_0x46e159][_0xdc2b('0x84')],_0x811668[_0xdc2b('0x82')][_0x46e159][_0xdc2b('0x85')]));}}}if(_0x811668['conditions']){_0x811668[_0xdc2b('0x87')]=JSON[_0xdc2b('0x88')](_0x811668[_0xdc2b('0x87')]);_0x1a52d1[_0xdc2b('0x41')](_0x19b5f1(_0x811668[_0xdc2b('0x87')][_0xdc2b('0x6e')]));}_0xe524f5=_0x1a52d1[_0xdc2b('0x89')]();_0x1a52d1[_0xdc2b('0x20')](_0x3e606d);_0x1a52d1['offset'](0x0);logger[_0xdc2b('0xa6')](_0xdc2b('0xa7'),_0x1a52d1[_0xdc2b('0x8a')]());return dbH[_0xdc2b('0x8b')]['query'](_0x1a52d1[_0xdc2b('0x8a')](),{'type':dbH['sequelize'][_0xdc2b('0x8c')][_0xdc2b('0x8d')]});}})[_0xdc2b('0x28')](function(){return{'sql':_0xe524f5[_0xdc2b('0x8a')]()};})['then'](respondWithResult(_0x5d645f,null))[_0xdc2b('0x4b')](handleError(_0x5d645f,null));};