091c1da2280323000f372471a499a72d1b25d217
[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 _0x98e5=['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','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','toString','sequelize','SELECT','join','left_join','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','IS\x20NOT\x20EMPTY','foreignKey','output','web','fullPath','%s-%s.%s','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','Run\x20Query:','COUNT(*)','QueryTypes','run','runReport','COUNT(DISTINCT\x20%s)','getFields','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','dbH','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','save','update','then','destroy','get','CustomReports','sendStatus','error','stack','name','send','index','map','AnalyticCustomReport','type','key','model','intersection','query','attributes','fields','length','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','findAll','show','keys','include','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','preview','right_join','cross_join','SUM(%s)','COUNT(%s)','MAX(%s)','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'];(function(_0x1819a3,_0x142065){var _0x14f218=function(_0x4a7761){while(--_0x4a7761){_0x1819a3['push'](_0x1819a3['shift']());}};_0x14f218(++_0x142065);}(_0x98e5,0xd2));var _0x598e=function(_0x5b5ffe,_0x1c5874){_0x5b5ffe=_0x5b5ffe-0x0;var _0x2d12bc=_0x98e5[_0x5b5ffe];return _0x2d12bc;};'use strict';var emlformat=require(_0x598e('0x0'));var rimraf=require(_0x598e('0x1'));var zipdir=require(_0x598e('0x2'));var jsonpatch=require(_0x598e('0x3'));var rp=require('request-promise');var moment=require(_0x598e('0x4'));var BPromise=require(_0x598e('0x5'));var Mustache=require(_0x598e('0x6'));var util=require(_0x598e('0x7'));var path=require('path');var sox=require(_0x598e('0x8'));var csv=require(_0x598e('0x9'));var ejs=require(_0x598e('0xa'));var fs=require('fs');var fs_extra=require(_0x598e('0xb'));var _=require('lodash');var squel=require(_0x598e('0xc'));var crypto=require(_0x598e('0xd'));var jsforce=require(_0x598e('0xe'));var deskjs=require(_0x598e('0xf'));var toCsv=require(_0x598e('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x598e('0x10'));var as=require(_0x598e('0x11'));var hardwareService=require(_0x598e('0x12'));var logger=require(_0x598e('0x13'))('api');var utils=require(_0x598e('0x14'));var config=require(_0x598e('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require(_0x598e('0x16'))[_0x598e('0x17')];function respondWithStatusCode(_0x1e89f2,_0x34ef86){_0x34ef86=_0x34ef86||0xcc;return function(_0x3ca5c3){if(_0x3ca5c3){return _0x1e89f2['sendStatus'](_0x34ef86);}return _0x1e89f2[_0x598e('0x18')](_0x34ef86)[_0x598e('0x19')]();};}function respondWithResult(_0x1484f7,_0x4ca784){_0x4ca784=_0x4ca784||0xc8;return function(_0x4e9106){if(_0x4e9106){return _0x1484f7[_0x598e('0x18')](_0x4ca784)['json'](_0x4e9106);}};}function respondWithFilteredResult(_0x443155,_0x4bf97e){return function(_0x1a29bd){if(_0x1a29bd){var _0x30d714=typeof _0x4bf97e[_0x598e('0x1a')]===_0x598e('0x1b')&&typeof _0x4bf97e['limit']===_0x598e('0x1b');var _0x476358=_0x1a29bd[_0x598e('0x1c')];var _0x48cc3c=_0x30d714?0x0:_0x4bf97e[_0x598e('0x1a')];var _0x4e8331=_0x30d714?_0x1a29bd[_0x598e('0x1c')]:_0x4bf97e[_0x598e('0x1a')]+_0x4bf97e[_0x598e('0x1d')];var _0x45ac5b;if(_0x4e8331>=_0x476358){_0x4e8331=_0x476358;_0x45ac5b=0xc8;}else{_0x45ac5b=0xce;}_0x443155[_0x598e('0x18')](_0x45ac5b);return _0x443155[_0x598e('0x1e')](_0x598e('0x1f'),_0x48cc3c+'-'+_0x4e8331+'/'+_0x476358)[_0x598e('0x20')](_0x1a29bd);}return null;};}function patchUpdates(_0x4c57bf){return function(_0x2e4733){try{jsonpatch[_0x598e('0x21')](_0x2e4733,_0x4c57bf,!![]);}catch(_0xe87045){return BPromise['reject'](_0xe87045);}return _0x2e4733[_0x598e('0x22')]();};}function saveUpdates(_0x208234,_0x1b60f6){return function(_0x2870a5){if(_0x2870a5){return _0x2870a5[_0x598e('0x23')](_0x208234)[_0x598e('0x24')](function(_0x52c59e){return _0x52c59e;});}return null;};}function removeEntity(_0x3227e7,_0x436b20){return function(_0x18955b){if(_0x18955b){return _0x18955b[_0x598e('0x25')]()['then'](function(){var _0x2e414c=_0x18955b[_0x598e('0x26')]({'plain':!![]});var _0x22b521=_0x598e('0x27');return db['UserProfileResource']['destroy']({'where':{'type':_0x22b521,'resourceId':_0x2e414c['id']}})[_0x598e('0x24')](function(){return _0x18955b;});})['then'](function(){_0x3227e7[_0x598e('0x18')](0xcc)[_0x598e('0x19')]();});}};}function handleEntityNotFound(_0x33bcc9,_0x2a27d8){return function(_0x3b73d0){if(!_0x3b73d0){_0x33bcc9[_0x598e('0x28')](0x194);}return _0x3b73d0;};}function handleError(_0x486f58,_0x2e7381){_0x2e7381=_0x2e7381||0x1f4;return function(_0x1a3842){logger[_0x598e('0x29')](_0x1a3842[_0x598e('0x2a')]);if(_0x1a3842[_0x598e('0x2b')]){delete _0x1a3842['name'];}_0x486f58[_0x598e('0x18')](_0x2e7381)[_0x598e('0x2c')](_0x1a3842);};}exports[_0x598e('0x2d')]=function(_0x2bba7d,_0xc503a2){var _0x56ce86={},_0x8f582={},_0x3281e4={'count':0x0,'rows':[]};var _0x28492d=_[_0x598e('0x2e')](db[_0x598e('0x2f')]['rawAttributes'],function(_0x2ecc72){return{'name':_0x2ecc72['fieldName'],'type':_0x2ecc72[_0x598e('0x30')][_0x598e('0x31')]};});_0x8f582[_0x598e('0x32')]=_[_0x598e('0x2e')](_0x28492d,'name');_0x8f582['query']=_['keys'](_0x2bba7d['query']);_0x8f582['filters']=_[_0x598e('0x33')](_0x8f582[_0x598e('0x32')],_0x8f582[_0x598e('0x34')]);_0x56ce86[_0x598e('0x35')]=_[_0x598e('0x33')](_0x8f582[_0x598e('0x32')],qs[_0x598e('0x36')](_0x2bba7d['query'][_0x598e('0x36')]));_0x56ce86[_0x598e('0x35')]=_0x56ce86[_0x598e('0x35')][_0x598e('0x37')]?_0x56ce86['attributes']:_0x8f582[_0x598e('0x32')];if(!_0x2bba7d[_0x598e('0x34')]['hasOwnProperty']('nolimit')){_0x56ce86[_0x598e('0x1d')]=qs[_0x598e('0x1d')](_0x2bba7d[_0x598e('0x34')]['limit']);_0x56ce86[_0x598e('0x1a')]=qs[_0x598e('0x1a')](_0x2bba7d[_0x598e('0x34')][_0x598e('0x1a')]);}_0x56ce86[_0x598e('0x38')]=qs['sort'](_0x2bba7d[_0x598e('0x34')][_0x598e('0x39')]);_0x56ce86[_0x598e('0x3a')]=qs[_0x598e('0x3b')](_[_0x598e('0x3c')](_0x2bba7d[_0x598e('0x34')],_0x8f582[_0x598e('0x3b')]),_0x28492d);if(_0x2bba7d[_0x598e('0x34')]['filter']){_0x56ce86[_0x598e('0x3a')]=_[_0x598e('0x3d')](_0x56ce86[_0x598e('0x3a')],{'$or':_[_0x598e('0x2e')](_0x28492d,function(_0x1f7425){if(_0x1f7425[_0x598e('0x30')]!==_0x598e('0x3e')){var _0x3b599e={};_0x3b599e[_0x1f7425['name']]={'$like':'%'+_0x2bba7d[_0x598e('0x34')][_0x598e('0x3f')]+'%'};return _0x3b599e;}})});}_0x56ce86=_['merge']({},_0x56ce86,_0x2bba7d[_0x598e('0x40')]);var _0x8e92dc={'where':_0x56ce86[_0x598e('0x3a')]};return db[_0x598e('0x2f')][_0x598e('0x1c')](_0x8e92dc)[_0x598e('0x24')](function(_0x4dd3a5){_0x3281e4[_0x598e('0x1c')]=_0x4dd3a5;if(_0x2bba7d[_0x598e('0x34')][_0x598e('0x41')]){_0x56ce86['include']=[{'all':!![]}];}return db[_0x598e('0x2f')][_0x598e('0x42')](_0x56ce86);})[_0x598e('0x24')](function(_0x48211c){_0x3281e4['rows']=_0x48211c;return _0x3281e4;})[_0x598e('0x24')](respondWithFilteredResult(_0xc503a2,_0x56ce86))['catch'](handleError(_0xc503a2,null));};exports[_0x598e('0x43')]=function(_0x22b113,_0x5dbeb7){var _0x9e20e7={'raw':![],'where':{'id':_0x22b113['params']['id']}},_0x3fdb68={};_0x3fdb68[_0x598e('0x32')]=_[_0x598e('0x44')](db[_0x598e('0x2f')]['rawAttributes']);_0x3fdb68[_0x598e('0x34')]=_['keys'](_0x22b113[_0x598e('0x34')]);_0x3fdb68[_0x598e('0x3b')]=_['intersection'](_0x3fdb68['model'],_0x3fdb68[_0x598e('0x34')]);_0x9e20e7[_0x598e('0x35')]=_[_0x598e('0x33')](_0x3fdb68[_0x598e('0x32')],qs[_0x598e('0x36')](_0x22b113['query'][_0x598e('0x36')]));_0x9e20e7['attributes']=_0x9e20e7[_0x598e('0x35')]['length']?_0x9e20e7[_0x598e('0x35')]:_0x3fdb68['model'];if(_0x22b113[_0x598e('0x34')][_0x598e('0x41')]){_0x9e20e7[_0x598e('0x45')]=[{'all':!![]}];}_0x9e20e7=_[_0x598e('0x3d')]({},_0x9e20e7,_0x22b113[_0x598e('0x40')]);return db['AnalyticCustomReport']['find'](_0x9e20e7)[_0x598e('0x24')](handleEntityNotFound(_0x5dbeb7,null))['then'](respondWithResult(_0x5dbeb7,null))[_0x598e('0x46')](handleError(_0x5dbeb7,null));};exports[_0x598e('0x47')]=function(_0x3cd7a2,_0x4b8327){return db[_0x598e('0x2f')][_0x598e('0x47')](_0x3cd7a2[_0x598e('0x48')],{})[_0x598e('0x24')](function(_0x10ca33){var _0x101b99=_0x3cd7a2[_0x598e('0x49')][_0x598e('0x26')]({'plain':!![]});if(!_0x101b99)throw new Error(_0x598e('0x4a'));if(_0x101b99[_0x598e('0x4b')]===_0x598e('0x49')){var _0x488d18=_0x10ca33['get']({'plain':!![]});var _0x4096b9=_0x598e('0x4c');return db[_0x598e('0x4d')][_0x598e('0x4e')]({'where':{'name':_0x4096b9,'userProfileId':_0x101b99[_0x598e('0x4f')]},'raw':!![]})[_0x598e('0x24')](function(_0x5e2d6b){if(_0x5e2d6b&&_0x5e2d6b[_0x598e('0x50')]===0x0){return db[_0x598e('0x51')][_0x598e('0x47')]({'name':_0x488d18[_0x598e('0x2b')],'resourceId':_0x488d18['id'],'type':_0x598e('0x27'),'sectionId':_0x5e2d6b['id']},{})[_0x598e('0x24')](function(){return _0x10ca33;});}else{return _0x10ca33;}})[_0x598e('0x46')](function(_0x41ab5b){logger[_0x598e('0x29')](_0x598e('0x52'),_0x41ab5b);throw _0x41ab5b;});}return _0x10ca33;})[_0x598e('0x24')](respondWithResult(_0x4b8327,0xc9))[_0x598e('0x46')](handleError(_0x4b8327,null));};exports[_0x598e('0x23')]=function(_0x2927fb,_0x1ee699){if(_0x2927fb[_0x598e('0x48')]['id']){delete _0x2927fb[_0x598e('0x48')]['id'];}return db[_0x598e('0x2f')][_0x598e('0x4e')]({'where':{'id':_0x2927fb[_0x598e('0x53')]['id']}})[_0x598e('0x24')](handleEntityNotFound(_0x1ee699,null))[_0x598e('0x24')](saveUpdates(_0x2927fb[_0x598e('0x48')],null))[_0x598e('0x24')](respondWithResult(_0x1ee699,null))[_0x598e('0x46')](handleError(_0x1ee699,null));};exports['destroy']=function(_0x13ea81,_0x1c5fe5){return db[_0x598e('0x2f')][_0x598e('0x4e')]({'where':{'id':_0x13ea81[_0x598e('0x53')]['id']}})['then'](handleEntityNotFound(_0x1c5fe5,null))[_0x598e('0x24')](removeEntity(_0x1c5fe5,null))['catch'](handleError(_0x1c5fe5,null));};exports[_0x598e('0x54')]=function(_0x1200f1,_0x4387b1){var _0xc2677d=0xa;var _0xe0e641=['join','left_join',_0x598e('0x55'),_0x598e('0x56')];var _0x564412={'SUM':_0x598e('0x57'),'COUNT':_0x598e('0x58'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x598e('0x59'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x598e('0x5a')};var _0x4f3f06={'SEC_TO_TIME':_0x598e('0x5b'),'DATE':_0x598e('0x5c'),'HOUR':_0x598e('0x5d'),'ROUND':_0x598e('0x5e'),'UNIX_TIMESTAMP':_0x598e('0x5f')};var _0x3465fd=function(_0x461784){return!_[_0x598e('0x60')]([_0x598e('0x61'),_0x598e('0x62'),_0x598e('0x63'),'IS\x20NOT\x20EMPTY'],_0x461784);};var _0x3da027=function(_0x1c3e48){if(!_0x1c3e48||!_0x1c3e48[_0x598e('0x64')][_0x598e('0x37')]){return'';}for(var _0x286c54='(',_0x16504f=0x0;_0x16504f<_0x1c3e48['rules'][_0x598e('0x37')];_0x16504f+=0x1){_0x16504f>0x0&&(_0x286c54+='\x20'+_0x1c3e48[_0x598e('0x65')]+'\x20');_0x286c54+=_0x1c3e48['rules'][_0x16504f][_0x598e('0x66')]?_0x3da027(_0x1c3e48[_0x598e('0x64')][_0x16504f][_0x598e('0x66')]):_0x1c3e48[_0x598e('0x64')][_0x16504f][_0x598e('0x67')]+'\x20'+_0x1c3e48[_0x598e('0x64')][_0x16504f][_0x598e('0x68')]+(_0x3465fd(_0x1c3e48['rules'][_0x16504f][_0x598e('0x68')])?'\x20'+_0x1c3e48['rules'][_0x16504f][_0x598e('0x69')]:'');}return _0x286c54+')';};var _0x4f4291={'where':{'id':_0x1200f1[_0x598e('0x53')]['id']}},_0x2df2d8,_0x205562,_0x389b95,_0x532adc,_0x39ae36;_0x4f4291=_[_0x598e('0x3d')]({},_0x4f4291,_0x1200f1['options']);return db[_0x598e('0x2f')][_0x598e('0x4e')](_0x4f4291)[_0x598e('0x24')](function(_0x313744){if(_0x313744){_0x2df2d8=_0x313744;return _0x313744['getFields']();}return null;})[_0x598e('0x24')](function(_0x11fbc9){if(_0x11fbc9){if(!_0x11fbc9[_0x598e('0x37')]){throw new db[(_0x598e('0x6a'))][(_0x598e('0x6b'))](_0x598e('0x6c'),0x193);}_0x205562=_0x11fbc9;return db[_0x598e('0x6d')][_0x598e('0x42')]({'raw':!![]});}return null;})[_0x598e('0x24')](function(_0xe57600){if(_0xe57600){_0x389b95=_[_0x598e('0x6e')](_0xe57600,'id');var _0x2e62fd;var _0x27f46f=squel[_0x598e('0x6f')]();_0x27f46f[_0x598e('0x70')](_0x2df2d8[_0x598e('0x71')]);for(var _0x10ec80=0x0;_0x10ec80<_0x205562[_0x598e('0x37')];_0x10ec80+=0x1){_0x2e62fd=_0x205562[_0x10ec80][_0x598e('0x72')]?_0x389b95[_0x205562[_0x10ec80][_0x598e('0x72')]][_0x598e('0x73')]:_0x205562[_0x10ec80][_0x598e('0x67')];_0x2e62fd=_0x205562[_0x10ec80][_0x598e('0x74')]?_[_0x598e('0x75')](_0x564412[_0x205562[_0x10ec80][_0x598e('0x74')]],'%s',_0x2e62fd):_0x2e62fd;_0x2e62fd=_0x205562[_0x10ec80]['format']?_[_0x598e('0x75')](_0x4f3f06[_0x205562[_0x10ec80][_0x598e('0x76')]],'%s',_0x2e62fd):_0x2e62fd;if(_0x205562[_0x10ec80][_0x598e('0x77')]){_0x27f46f[_0x598e('0x66')](_0x2e62fd);}_0x205562[_0x10ec80]['orderBy']&&_0x27f46f[_0x598e('0x38')](_0x2e62fd,_0x205562[_0x10ec80][_0x598e('0x78')]===_0x598e('0x79')?![]:!![]);_0x27f46f[_0x598e('0x67')](_0x2e62fd,_0x205562[_0x10ec80][_0x598e('0x7a')]||_0x2e62fd);}if(_0x2df2d8[_0x598e('0x7b')]){_0x2df2d8['joins']=JSON[_0x598e('0x7c')](_0x2df2d8['joins']);for(var _0x491c4b=0x0;_0x491c4b<_0x2df2d8[_0x598e('0x7b')]['length'];_0x491c4b+=0x1){if(_0x2df2d8[_0x598e('0x7b')][_0x491c4b][_0x598e('0x30')]&&_[_0x598e('0x60')](_0xe0e641,_0x2df2d8[_0x598e('0x7b')][_0x491c4b][_0x598e('0x30')])&&_0x2df2d8['joins'][_0x491c4b][_0x598e('0x7d')]&&_0x2df2d8[_0x598e('0x7b')][_0x491c4b][_0x598e('0x7e')]&&_0x2df2d8[_0x598e('0x7b')][_0x491c4b]['foreignKey']){_0x27f46f[_0x2df2d8[_0x598e('0x7b')][_0x491c4b][_0x598e('0x30')]](_0x2df2d8[_0x598e('0x7b')][_0x491c4b][_0x598e('0x7e')],null,util[_0x598e('0x76')](_0x598e('0x7f'),_0x2df2d8[_0x598e('0x71')],_0x2df2d8[_0x598e('0x7b')][_0x491c4b][_0x598e('0x7d')],_0x2df2d8[_0x598e('0x7b')][_0x491c4b][_0x598e('0x7e')],_0x2df2d8[_0x598e('0x7b')][_0x491c4b]['foreignKey']));}}}if(_0x2df2d8[_0x598e('0x80')]){_0x2df2d8[_0x598e('0x80')]=JSON[_0x598e('0x7c')](_0x2df2d8[_0x598e('0x80')]);_0x27f46f[_0x598e('0x3a')](_0x3da027(_0x2df2d8[_0x598e('0x80')][_0x598e('0x66')]));}_0x39ae36=_0x27f46f[_0x598e('0x81')]();_0x27f46f[_0x598e('0x1d')](_0xc2677d);_0x27f46f['offset'](0x0);logger[_0x598e('0x82')](_0x598e('0x83'),_0x27f46f[_0x598e('0x84')]());return dbH[_0x598e('0x85')][_0x598e('0x34')](_0x27f46f[_0x598e('0x84')](),{'type':dbH[_0x598e('0x85')]['QueryTypes'][_0x598e('0x86')]});}})['then'](respondWithResult(_0x4387b1,null))[_0x598e('0x46')](handleError(_0x4387b1,null));};function runReport(_0x255b1f,_0x1785b4,_0x2f3fae){var _0x3e286a=_0x1785b4[_0x598e('0x2b')];var _0xbfca0c=0xa;var _0x42071b=[_0x598e('0x87'),_0x598e('0x88'),_0x598e('0x55'),'cross_join'];var _0x21d9f0={'SUM':_0x598e('0x57'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x598e('0x59'),'MIN':_0x598e('0x89'),'AVG':_0x598e('0x8a'),'GROUP_CONCAT':_0x598e('0x8b'),'GROUP_CONCAT ASC':_0x598e('0x8c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x3c0458={'SEC_TO_TIME':_0x598e('0x5b'),'DATE':_0x598e('0x5c'),'HOUR':'HOUR(%s)','ROUND':_0x598e('0x5e'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x240f30=function(_0x5d319d){return!_[_0x598e('0x60')]([_0x598e('0x61'),'IS\x20NOT\x20NULL',_0x598e('0x63'),_0x598e('0x8d')],_0x5d319d);};var _0x1c4d83=function(_0x10e868){if(!_0x10e868||!_0x10e868[_0x598e('0x64')][_0x598e('0x37')]){return'';}for(var _0x198495='(',_0x21f968=0x0;_0x21f968<_0x10e868['rules'][_0x598e('0x37')];_0x21f968+=0x1){_0x21f968>0x0&&(_0x198495+='\x20'+_0x10e868[_0x598e('0x65')]+'\x20');_0x198495+=_0x10e868[_0x598e('0x64')][_0x21f968][_0x598e('0x66')]?_0x1c4d83(_0x10e868[_0x598e('0x64')][_0x21f968]['group']):_0x10e868[_0x598e('0x64')][_0x21f968][_0x598e('0x67')]+'\x20'+_0x10e868[_0x598e('0x64')][_0x21f968]['condition']+(_0x240f30(_0x10e868['rules'][_0x21f968]['condition'])?'\x20'+_0x10e868[_0x598e('0x64')][_0x21f968]['value']:'');}return _0x198495+')';};var _0x521eb0={'where':{'id':_0x255b1f['id']}},_0x2ded26,_0x51297d,_0x46592f,_0x42dc6d,_0x234a56;_0x521eb0=_[_0x598e('0x3d')]({},_0x521eb0,_0x2f3fae);return db[_0x598e('0x2f')][_0x598e('0x4e')](_0x521eb0)[_0x598e('0x24')](function(_0x266665){if(_0x266665){_0x2ded26=_0x266665;return _0x266665['getFields']();}return null;})[_0x598e('0x24')](function(_0x251b48){if(_0x251b48){if(!_0x251b48[_0x598e('0x37')]){throw new db['Sequelize'][(_0x598e('0x6b'))](_0x598e('0x6c'),0x193);}_0x51297d=_0x251b48;return db[_0x598e('0x6d')][_0x598e('0x42')]({'raw':!![]});}return null;})[_0x598e('0x24')](function(_0x251b36){if(_0x251b36){_0x46592f=_['keyBy'](_0x251b36,'id');var _0x1bfe30;var _0x57140c=squel[_0x598e('0x6f')]();_0x57140c['from'](_0x2ded26[_0x598e('0x71')]);for(var _0x143c78=0x0;_0x143c78<_0x51297d[_0x598e('0x37')];_0x143c78+=0x1){_0x1bfe30=_0x51297d[_0x143c78][_0x598e('0x72')]?_0x46592f[_0x51297d[_0x143c78]['MetricId']]['metric']:_0x51297d[_0x143c78][_0x598e('0x67')];_0x1bfe30=_0x51297d[_0x143c78][_0x598e('0x74')]?_[_0x598e('0x75')](_0x21d9f0[_0x51297d[_0x143c78]['function']],'%s',_0x1bfe30):_0x1bfe30;_0x1bfe30=_0x51297d[_0x143c78]['format']?_[_0x598e('0x75')](_0x3c0458[_0x51297d[_0x143c78]['format']],'%s',_0x1bfe30):_0x1bfe30;if(_0x51297d[_0x143c78][_0x598e('0x77')]){_0x57140c['group'](_0x1bfe30);}_0x51297d[_0x143c78]['orderBy']&&_0x57140c[_0x598e('0x38')](_0x1bfe30,_0x51297d[_0x143c78][_0x598e('0x78')]==='DESC'?![]:!![]);_0x57140c[_0x598e('0x67')](_0x1bfe30,_0x51297d[_0x143c78][_0x598e('0x7a')]||_0x1bfe30);}if(_0x2ded26[_0x598e('0x7b')]){_0x2ded26[_0x598e('0x7b')]=JSON['parse'](_0x2ded26[_0x598e('0x7b')]);for(var _0x313713=0x0;_0x313713<_0x2ded26['joins'][_0x598e('0x37')];_0x313713+=0x1){if(_0x2ded26[_0x598e('0x7b')][_0x313713][_0x598e('0x30')]&&_[_0x598e('0x60')](_0x42071b,_0x2ded26[_0x598e('0x7b')][_0x313713][_0x598e('0x30')])&&_0x2ded26[_0x598e('0x7b')][_0x313713]['parentKey']&&_0x2ded26['joins'][_0x313713][_0x598e('0x7e')]&&_0x2ded26['joins'][_0x313713]['foreignKey']){_0x57140c[_0x2ded26[_0x598e('0x7b')][_0x313713][_0x598e('0x30')]](_0x2ded26['joins'][_0x313713]['foreignTable'],null,util[_0x598e('0x76')](_0x598e('0x7f'),_0x2ded26[_0x598e('0x71')],_0x2ded26['joins'][_0x313713]['parentKey'],_0x2ded26['joins'][_0x313713][_0x598e('0x7e')],_0x2ded26['joins'][_0x313713][_0x598e('0x8e')]));}}}if(_0x2ded26[_0x598e('0x80')]){_0x2ded26['conditions']=JSON[_0x598e('0x7c')](_0x2ded26[_0x598e('0x80')]);_0x57140c[_0x598e('0x3a')](_0x1c4d83(_0x2ded26[_0x598e('0x80')]['group']));}_0x234a56=_0x57140c[_0x598e('0x81')]();_0x57140c['limit'](_0xbfca0c);_0x57140c[_0x598e('0x1a')](0x0);return;}})[_0x598e('0x24')](function(){if(_0x1785b4[_0x598e('0x8f')]===_0x598e('0x90')){return null;}var _0xd95b54=_['merge'](_0x1785b4,{'name':_0x1785b4[_0x598e('0x91')]||_0x1785b4[_0x598e('0x2b')]||_0x2ded26[_0x598e('0x2b')],'basename':_0x3e286a,'savename':util[_0x598e('0x76')](_0x598e('0x92'),_0x1785b4[_0x598e('0x2b')]||_0x2ded26[_0x598e('0x2b')],require('randomstring')['generate'](0x4),_0x1785b4[_0x598e('0x8f')]||'csv'),'reportId':_0x2ded26['id'],'reportType':'custom'});return db['AnalyticExtractedReport'][_0x598e('0x47')](_0xd95b54,{'raw':!![]});})[_0x598e('0x24')](function(_0x6cb4c9){if(_0x2ded26[_0x598e('0x71')]===_0x598e('0x93')){_0x234a56[_0x598e('0x3a')](_0x2ded26[_0x598e('0x71')]+_0x598e('0x94'),_0x1785b4[_0x598e('0x95')],_0x1785b4[_0x598e('0x96')]);}else{_0x234a56[_0x598e('0x3a')](_0x2ded26[_0x598e('0x71')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x1785b4['startDate'],_0x1785b4[_0x598e('0x96')]);}if(_0x6cb4c9){logger['info'](_0x598e('0x97'),_0x234a56[_0x598e('0x84')]());require('child_process')['fork'](path[_0x598e('0x87')](__dirname,'../../components/export/',_0x6cb4c9[_0x598e('0x8f')]),[_0x6cb4c9['id'],_0x234a56[_0x598e('0x84')](),path['join'](__dirname,'../../files/reports',_0x6cb4c9['savename']),_0x3e286a]);return _0x6cb4c9;}else{var _0x588a55=squel[_0x598e('0x6f')]();_0x588a55[_0x598e('0x70')]('('+_0x234a56[_0x598e('0x84')]()+')','countTable');_0x588a55[_0x598e('0x67')](_0x598e('0x98'),'count');_0x234a56[_0x598e('0x1d')](_0x1785b4[_0x598e('0x1d')]||_0xbfca0c);_0x234a56[_0x598e('0x1a')](_0x1785b4[_0x598e('0x1a')]||0x0);return dbH['sequelize'][_0x598e('0x34')](_0x588a55[_0x598e('0x84')](),{'type':dbH[_0x598e('0x85')][_0x598e('0x99')][_0x598e('0x86')]})[_0x598e('0x24')](function(_0x1fc7c5){if(!_0x1fc7c5[_0x598e('0x37')]){_0x42dc6d=0x0;}else{_0x42dc6d=_0x1fc7c5[0x0][_0x598e('0x1c')]||0x0;}return dbH[_0x598e('0x85')][_0x598e('0x34')](_0x234a56['toString'](),{'type':dbH[_0x598e('0x85')][_0x598e('0x99')][_0x598e('0x86')]});})['then'](function(_0x58a3e2){return{'rows':_0x58a3e2||[],'count':_0x42dc6d};});}});}exports[_0x598e('0x9a')]=function(_0x4f9c25,_0x2fd65c){return runReport(_0x4f9c25['params'],_0x4f9c25[_0x598e('0x34')],_0x4f9c25[_0x598e('0x40')])['then'](respondWithResult(_0x2fd65c,null))['catch'](handleError(_0x2fd65c,null));};exports[_0x598e('0x9b')]=runReport;exports['query']=function(_0x381539,_0x74c91){var _0x5ad460=0xa;var _0x51968c=['join',_0x598e('0x88'),'right_join','cross_join'];var _0x312405={'SUM':_0x598e('0x57'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x598e('0x9c'),'MAX':_0x598e('0x59'),'MIN':_0x598e('0x89'),'AVG':_0x598e('0x8a'),'GROUP_CONCAT':_0x598e('0x8b'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x598e('0x5a')};var _0x889936={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x598e('0x5c'),'HOUR':_0x598e('0x5d'),'ROUND':_0x598e('0x5e'),'UNIX_TIMESTAMP':_0x598e('0x5f')};var _0x311610=function(_0x24651b){return!_[_0x598e('0x60')]([_0x598e('0x61'),_0x598e('0x62'),'IS\x20EMPTY',_0x598e('0x8d')],_0x24651b);};var _0x3353eb=function(_0x53b068){if(!_0x53b068||!_0x53b068[_0x598e('0x64')]['length']){return'';}for(var _0x2faa88='(',_0x3b39ae=0x0;_0x3b39ae<_0x53b068[_0x598e('0x64')][_0x598e('0x37')];_0x3b39ae+=0x1){_0x3b39ae>0x0&&(_0x2faa88+='\x20'+_0x53b068['operator']+'\x20');_0x2faa88+=_0x53b068[_0x598e('0x64')][_0x3b39ae][_0x598e('0x66')]?_0x3353eb(_0x53b068[_0x598e('0x64')][_0x3b39ae][_0x598e('0x66')]):_0x53b068[_0x598e('0x64')][_0x3b39ae][_0x598e('0x67')]+'\x20'+_0x53b068[_0x598e('0x64')][_0x3b39ae][_0x598e('0x68')]+(_0x311610(_0x53b068[_0x598e('0x64')][_0x3b39ae]['condition'])?'\x20'+_0x53b068[_0x598e('0x64')][_0x3b39ae][_0x598e('0x69')]:'');}return _0x2faa88+')';};var _0xadc912={'where':{'id':_0x381539[_0x598e('0x53')]['id']}},_0x3e1abf,_0x12e23b,_0x3a80cc,_0x272352,_0x1ab3b3;_0xadc912=_['merge']({},_0xadc912,_0x381539[_0x598e('0x40')]);return db[_0x598e('0x2f')][_0x598e('0x4e')](_0xadc912)['then'](function(_0x268d91){if(_0x268d91){_0x3e1abf=_0x268d91;return _0x268d91[_0x598e('0x9d')]();}return null;})[_0x598e('0x24')](function(_0x3273f6){if(_0x3273f6){if(!_0x3273f6[_0x598e('0x37')]){throw new db[(_0x598e('0x6a'))][(_0x598e('0x6b'))](_0x598e('0x6c'),0x193);}_0x12e23b=_0x3273f6;return db[_0x598e('0x6d')]['findAll']({'raw':!![]});}return null;})['then'](function(_0x522217){if(_0x522217){_0x3a80cc=_[_0x598e('0x6e')](_0x522217,'id');var _0x2405fb;var _0x29ddc3=squel[_0x598e('0x6f')]();_0x29ddc3[_0x598e('0x70')](_0x3e1abf[_0x598e('0x71')]);for(var _0x3f156f=0x0;_0x3f156f<_0x12e23b[_0x598e('0x37')];_0x3f156f+=0x1){_0x2405fb=_0x12e23b[_0x3f156f][_0x598e('0x72')]?_0x3a80cc[_0x12e23b[_0x3f156f][_0x598e('0x72')]][_0x598e('0x73')]:_0x12e23b[_0x3f156f][_0x598e('0x67')];_0x2405fb=_0x12e23b[_0x3f156f]['function']?_[_0x598e('0x75')](_0x312405[_0x12e23b[_0x3f156f][_0x598e('0x74')]],'%s',_0x2405fb):_0x2405fb;_0x2405fb=_0x12e23b[_0x3f156f][_0x598e('0x76')]?_['replace'](_0x889936[_0x12e23b[_0x3f156f][_0x598e('0x76')]],'%s',_0x2405fb):_0x2405fb;if(_0x12e23b[_0x3f156f][_0x598e('0x77')]){_0x29ddc3[_0x598e('0x66')](_0x2405fb);}_0x12e23b[_0x3f156f]['orderBy']&&_0x29ddc3[_0x598e('0x38')](_0x2405fb,_0x12e23b[_0x3f156f][_0x598e('0x78')]==='DESC'?![]:!![]);_0x29ddc3[_0x598e('0x67')](_0x2405fb,_0x12e23b[_0x3f156f][_0x598e('0x7a')]||_0x2405fb);}if(_0x3e1abf[_0x598e('0x7b')]){_0x3e1abf[_0x598e('0x7b')]=JSON[_0x598e('0x7c')](_0x3e1abf[_0x598e('0x7b')]);for(var _0x5d081a=0x0;_0x5d081a<_0x3e1abf[_0x598e('0x7b')]['length'];_0x5d081a+=0x1){if(_0x3e1abf[_0x598e('0x7b')][_0x5d081a][_0x598e('0x30')]&&_[_0x598e('0x60')](_0x51968c,_0x3e1abf[_0x598e('0x7b')][_0x5d081a][_0x598e('0x30')])&&_0x3e1abf[_0x598e('0x7b')][_0x5d081a]['parentKey']&&_0x3e1abf[_0x598e('0x7b')][_0x5d081a][_0x598e('0x7e')]&&_0x3e1abf['joins'][_0x5d081a]['foreignKey']){_0x29ddc3[_0x3e1abf['joins'][_0x5d081a][_0x598e('0x30')]](_0x3e1abf[_0x598e('0x7b')][_0x5d081a][_0x598e('0x7e')],null,util[_0x598e('0x76')](_0x598e('0x7f'),_0x3e1abf['table'],_0x3e1abf[_0x598e('0x7b')][_0x5d081a]['parentKey'],_0x3e1abf[_0x598e('0x7b')][_0x5d081a][_0x598e('0x7e')],_0x3e1abf['joins'][_0x5d081a][_0x598e('0x8e')]));}}}if(_0x3e1abf['conditions']){_0x3e1abf['conditions']=JSON[_0x598e('0x7c')](_0x3e1abf['conditions']);_0x29ddc3[_0x598e('0x3a')](_0x3353eb(_0x3e1abf['conditions'][_0x598e('0x66')]));}_0x1ab3b3=_0x29ddc3['clone']();_0x29ddc3[_0x598e('0x1d')](_0x5ad460);_0x29ddc3[_0x598e('0x1a')](0x0);logger['debug']('Limited\x20Query:',_0x29ddc3[_0x598e('0x84')]());return dbH[_0x598e('0x85')][_0x598e('0x34')](_0x29ddc3[_0x598e('0x84')](),{'type':dbH['sequelize']['QueryTypes']['SELECT']});}})[_0x598e('0x24')](function(){return{'sql':_0x1ab3b3[_0x598e('0x84')]()};})['then'](respondWithResult(_0x74c91,null))[_0x598e('0x46')](handleError(_0x74c91,null));};