e7260222e791e3be9dc55808d1ed0ed8beeae2f0
[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 _0x91d3=['attributes','fields','nolimit','order','sort','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%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)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','length','operator','field','condition','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','replace','function','format','groupBy','group','orderBy','DESC','joins','parse','parentKey','foreignTable','foreignKey','conditions','clone','Limited\x20Query:','toString','sequelize','SELECT','MIN(%s)','IS\x20NULL','value','%s.%s\x20=\x20%s.%s','web','fullPath','%s-%s.%s','generate','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','Run\x20Query:','child_process','fork','../../components/export/','output','../../files/reports','savename','countTable','runReport','ValidationErrorItem','alias','debug','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','dbH','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','get','CustomReports','destroy','error','name','send','index','map','AnalyticCustomReport','type','key','model','keys','query','filters','intersection'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x91d3,0x113));var _0x391d=function(_0x175a96,_0x230e06){_0x175a96=_0x175a96-0x0;var _0x52d627=_0x91d3[_0x175a96];return _0x52d627;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x391d('0x0'));var zipdir=require(_0x391d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x391d('0x2'));var BPromise=require(_0x391d('0x3'));var Mustache=require(_0x391d('0x4'));var util=require(_0x391d('0x5'));var path=require(_0x391d('0x6'));var sox=require(_0x391d('0x7'));var csv=require(_0x391d('0x8'));var ejs=require(_0x391d('0x9'));var fs=require('fs');var fs_extra=require(_0x391d('0xa'));var _=require(_0x391d('0xb'));var squel=require(_0x391d('0xc'));var crypto=require(_0x391d('0xd'));var jsforce=require(_0x391d('0xe'));var deskjs=require(_0x391d('0xf'));var toCsv=require('to-csv');var querystring=require(_0x391d('0x10'));var Papa=require(_0x391d('0x11'));var Redis=require(_0x391d('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x391d('0x13'));var as=require(_0x391d('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x391d('0x15'))(_0x391d('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require(_0x391d('0x17'))[_0x391d('0x18')];function respondWithStatusCode(_0x47b75a,_0x37f445){_0x37f445=_0x37f445||0xcc;return function(_0x148cdb){if(_0x148cdb){return _0x47b75a[_0x391d('0x19')](_0x37f445);}return _0x47b75a['status'](_0x37f445)[_0x391d('0x1a')]();};}function respondWithResult(_0x4e1b4d,_0xdd6b41){_0xdd6b41=_0xdd6b41||0xc8;return function(_0x21d4b8){if(_0x21d4b8){return _0x4e1b4d[_0x391d('0x1b')](_0xdd6b41)[_0x391d('0x1c')](_0x21d4b8);}};}function respondWithFilteredResult(_0x425854,_0xbd4af1){return function(_0x28bf4e){if(_0x28bf4e){var _0x797c3=typeof _0xbd4af1[_0x391d('0x1d')]===_0x391d('0x1e')&&typeof _0xbd4af1['limit']===_0x391d('0x1e');var _0x38c06f=_0x28bf4e[_0x391d('0x1f')];var _0x1cfca8=_0x797c3?0x0:_0xbd4af1[_0x391d('0x1d')];var _0x4a5e9d=_0x797c3?_0x28bf4e['count']:_0xbd4af1[_0x391d('0x1d')]+_0xbd4af1[_0x391d('0x20')];var _0x3b3767;if(_0x4a5e9d>=_0x38c06f){_0x4a5e9d=_0x38c06f;_0x3b3767=0xc8;}else{_0x3b3767=0xce;}_0x425854[_0x391d('0x1b')](_0x3b3767);return _0x425854[_0x391d('0x21')](_0x391d('0x22'),_0x1cfca8+'-'+_0x4a5e9d+'/'+_0x38c06f)['json'](_0x28bf4e);}return null;};}function patchUpdates(_0x5e5829){return function(_0x5a2e16){try{jsonpatch[_0x391d('0x23')](_0x5a2e16,_0x5e5829,!![]);}catch(_0x5468a4){return BPromise[_0x391d('0x24')](_0x5468a4);}return _0x5a2e16['save']();};}function saveUpdates(_0x26f043,_0x10db8a){return function(_0x3c3583){if(_0x3c3583){return _0x3c3583[_0x391d('0x25')](_0x26f043)[_0x391d('0x26')](function(_0x123036){return _0x123036;});}return null;};}function removeEntity(_0x122499,_0x284d10){return function(_0x498443){if(_0x498443){return _0x498443['destroy']()['then'](function(){var _0x365470=_0x498443[_0x391d('0x27')]({'plain':!![]});var _0x43be64=_0x391d('0x28');return db['UserProfileResource'][_0x391d('0x29')]({'where':{'type':_0x43be64,'resourceId':_0x365470['id']}})[_0x391d('0x26')](function(){return _0x498443;});})[_0x391d('0x26')](function(){_0x122499['status'](0xcc)[_0x391d('0x1a')]();});}};}function handleEntityNotFound(_0x148074,_0x125dd6){return function(_0x20774e){if(!_0x20774e){_0x148074['sendStatus'](0x194);}return _0x20774e;};}function handleError(_0x3fb162,_0x395f5c){_0x395f5c=_0x395f5c||0x1f4;return function(_0x5206b8){logger[_0x391d('0x2a')](_0x5206b8['stack']);if(_0x5206b8[_0x391d('0x2b')]){delete _0x5206b8[_0x391d('0x2b')];}_0x3fb162[_0x391d('0x1b')](_0x395f5c)[_0x391d('0x2c')](_0x5206b8);};}exports[_0x391d('0x2d')]=function(_0x5d6424,_0x1ec697){var _0x3abb1e={},_0x14a05c={},_0x44449f={'count':0x0,'rows':[]};var _0x384560=_[_0x391d('0x2e')](db[_0x391d('0x2f')]['rawAttributes'],function(_0x245237){return{'name':_0x245237['fieldName'],'type':_0x245237[_0x391d('0x30')][_0x391d('0x31')]};});_0x14a05c[_0x391d('0x32')]=_[_0x391d('0x2e')](_0x384560,_0x391d('0x2b'));_0x14a05c['query']=_[_0x391d('0x33')](_0x5d6424[_0x391d('0x34')]);_0x14a05c[_0x391d('0x35')]=_[_0x391d('0x36')](_0x14a05c[_0x391d('0x32')],_0x14a05c[_0x391d('0x34')]);_0x3abb1e[_0x391d('0x37')]=_['intersection'](_0x14a05c[_0x391d('0x32')],qs[_0x391d('0x38')](_0x5d6424[_0x391d('0x34')]['fields']));_0x3abb1e[_0x391d('0x37')]=_0x3abb1e[_0x391d('0x37')]['length']?_0x3abb1e[_0x391d('0x37')]:_0x14a05c[_0x391d('0x32')];if(!_0x5d6424['query']['hasOwnProperty'](_0x391d('0x39'))){_0x3abb1e[_0x391d('0x20')]=qs[_0x391d('0x20')](_0x5d6424['query'][_0x391d('0x20')]);_0x3abb1e[_0x391d('0x1d')]=qs[_0x391d('0x1d')](_0x5d6424[_0x391d('0x34')][_0x391d('0x1d')]);}_0x3abb1e[_0x391d('0x3a')]=qs[_0x391d('0x3b')](_0x5d6424[_0x391d('0x34')][_0x391d('0x3b')]);_0x3abb1e['where']=qs[_0x391d('0x35')](_['pick'](_0x5d6424[_0x391d('0x34')],_0x14a05c[_0x391d('0x35')]),_0x384560);if(_0x5d6424[_0x391d('0x34')][_0x391d('0x3c')]){_0x3abb1e[_0x391d('0x3d')]=_[_0x391d('0x3e')](_0x3abb1e[_0x391d('0x3d')],{'$or':_[_0x391d('0x2e')](_0x384560,function(_0x2a8955){if(_0x2a8955[_0x391d('0x30')]!==_0x391d('0x3f')){var _0x59917d={};_0x59917d[_0x2a8955[_0x391d('0x2b')]]={'$like':'%'+_0x5d6424[_0x391d('0x34')][_0x391d('0x3c')]+'%'};return _0x59917d;}})});}_0x3abb1e=_['merge']({},_0x3abb1e,_0x5d6424[_0x391d('0x40')]);var _0x5dca4d={'where':_0x3abb1e[_0x391d('0x3d')]};return db[_0x391d('0x2f')][_0x391d('0x1f')](_0x5dca4d)[_0x391d('0x26')](function(_0x2b311b){_0x44449f[_0x391d('0x1f')]=_0x2b311b;if(_0x5d6424[_0x391d('0x34')][_0x391d('0x41')]){_0x3abb1e[_0x391d('0x42')]=[{'all':!![]}];}return db['AnalyticCustomReport']['findAll'](_0x3abb1e);})['then'](function(_0x1a7d56){_0x44449f[_0x391d('0x43')]=_0x1a7d56;return _0x44449f;})[_0x391d('0x26')](respondWithFilteredResult(_0x1ec697,_0x3abb1e))[_0x391d('0x44')](handleError(_0x1ec697,null));};exports[_0x391d('0x45')]=function(_0x513d2d,_0x21d28){var _0x3dab2d={'raw':![],'where':{'id':_0x513d2d[_0x391d('0x46')]['id']}},_0x58c70c={};_0x58c70c['model']=_[_0x391d('0x33')](db[_0x391d('0x2f')][_0x391d('0x47')]);_0x58c70c[_0x391d('0x34')]=_['keys'](_0x513d2d[_0x391d('0x34')]);_0x58c70c[_0x391d('0x35')]=_[_0x391d('0x36')](_0x58c70c['model'],_0x58c70c[_0x391d('0x34')]);_0x3dab2d[_0x391d('0x37')]=_[_0x391d('0x36')](_0x58c70c[_0x391d('0x32')],qs['fields'](_0x513d2d[_0x391d('0x34')]['fields']));_0x3dab2d['attributes']=_0x3dab2d[_0x391d('0x37')]['length']?_0x3dab2d['attributes']:_0x58c70c['model'];if(_0x513d2d[_0x391d('0x34')]['includeAll']){_0x3dab2d[_0x391d('0x42')]=[{'all':!![]}];}_0x3dab2d=_[_0x391d('0x3e')]({},_0x3dab2d,_0x513d2d[_0x391d('0x40')]);return db['AnalyticCustomReport'][_0x391d('0x48')](_0x3dab2d)[_0x391d('0x26')](handleEntityNotFound(_0x21d28,null))['then'](respondWithResult(_0x21d28,null))[_0x391d('0x44')](handleError(_0x21d28,null));};exports['create']=function(_0x5986ca,_0x3be349){return db[_0x391d('0x2f')][_0x391d('0x49')](_0x5986ca[_0x391d('0x4a')],{})[_0x391d('0x26')](function(_0x455dc0){var _0x27f2fc=_0x5986ca[_0x391d('0x4b')]['get']({'plain':!![]});if(!_0x27f2fc)throw new Error(_0x391d('0x4c'));if(_0x27f2fc[_0x391d('0x4d')]===_0x391d('0x4b')){var _0x413c8f=_0x455dc0[_0x391d('0x27')]({'plain':!![]});var _0x562a7e=_0x391d('0x4e');return db['UserProfileSection'][_0x391d('0x48')]({'where':{'name':_0x562a7e,'userProfileId':_0x27f2fc[_0x391d('0x4f')]},'raw':!![]})[_0x391d('0x26')](function(_0x3b5555){if(_0x3b5555&&_0x3b5555[_0x391d('0x50')]===0x0){return db[_0x391d('0x51')]['create']({'name':_0x413c8f[_0x391d('0x2b')],'resourceId':_0x413c8f['id'],'type':_0x391d('0x28'),'sectionId':_0x3b5555['id']},{})['then'](function(){return _0x455dc0;});}else{return _0x455dc0;}})['catch'](function(_0x4308b){logger[_0x391d('0x2a')](_0x391d('0x52'),_0x4308b);throw _0x4308b;});}return _0x455dc0;})[_0x391d('0x26')](respondWithResult(_0x3be349,0xc9))[_0x391d('0x44')](handleError(_0x3be349,null));};exports[_0x391d('0x25')]=function(_0x1d6e29,_0x280596){if(_0x1d6e29[_0x391d('0x4a')]['id']){delete _0x1d6e29[_0x391d('0x4a')]['id'];}return db['AnalyticCustomReport'][_0x391d('0x48')]({'where':{'id':_0x1d6e29[_0x391d('0x46')]['id']}})[_0x391d('0x26')](handleEntityNotFound(_0x280596,null))[_0x391d('0x26')](saveUpdates(_0x1d6e29[_0x391d('0x4a')],null))[_0x391d('0x26')](respondWithResult(_0x280596,null))['catch'](handleError(_0x280596,null));};exports[_0x391d('0x29')]=function(_0x1ce8ed,_0x527a69){return db[_0x391d('0x2f')][_0x391d('0x48')]({'where':{'id':_0x1ce8ed[_0x391d('0x46')]['id']}})[_0x391d('0x26')](handleEntityNotFound(_0x527a69,null))[_0x391d('0x26')](removeEntity(_0x527a69,null))[_0x391d('0x44')](handleError(_0x527a69,null));};exports[_0x391d('0x53')]=function(_0x4f1736,_0x300c78){var _0x491a5e=0xa;var _0x4af717=[_0x391d('0x54'),_0x391d('0x55'),_0x391d('0x56'),_0x391d('0x57')];var _0x503f54={'SUM':_0x391d('0x58'),'COUNT':_0x391d('0x59'),'COUNT DISTINCT':_0x391d('0x5a'),'MAX':_0x391d('0x5b'),'MIN':'MIN(%s)','AVG':_0x391d('0x5c'),'GROUP_CONCAT':_0x391d('0x5d'),'GROUP_CONCAT ASC':_0x391d('0x5e'),'GROUP_CONCAT DESC':_0x391d('0x5f')};var _0x55cc9d={'SEC_TO_TIME':_0x391d('0x60'),'DATE':_0x391d('0x61'),'HOUR':_0x391d('0x62'),'ROUND':_0x391d('0x63'),'UNIX_TIMESTAMP':_0x391d('0x64')};var _0x346b4a=function(_0x1f54c2){return!_[_0x391d('0x65')](['IS\x20NULL',_0x391d('0x66'),_0x391d('0x67'),_0x391d('0x68')],_0x1f54c2);};var _0x2d69d9=function(_0x4a4c09){if(!_0x4a4c09||!_0x4a4c09[_0x391d('0x69')]['length']){return'';}for(var _0xa022='(',_0x4e3bd9=0x0;_0x4e3bd9<_0x4a4c09[_0x391d('0x69')][_0x391d('0x6a')];_0x4e3bd9+=0x1){_0x4e3bd9>0x0&&(_0xa022+='\x20'+_0x4a4c09[_0x391d('0x6b')]+'\x20');_0xa022+=_0x4a4c09[_0x391d('0x69')][_0x4e3bd9]['group']?_0x2d69d9(_0x4a4c09['rules'][_0x4e3bd9]['group']):_0x4a4c09[_0x391d('0x69')][_0x4e3bd9][_0x391d('0x6c')]+'\x20'+_0x4a4c09[_0x391d('0x69')][_0x4e3bd9][_0x391d('0x6d')]+(_0x346b4a(_0x4a4c09['rules'][_0x4e3bd9][_0x391d('0x6d')])?'\x20'+_0x4a4c09[_0x391d('0x69')][_0x4e3bd9]['value']:'');}return _0xa022+')';};var _0x19ff5e={'where':{'id':_0x4f1736[_0x391d('0x46')]['id']}},_0x32056e,_0x3dcedb,_0x21b7d7,_0x2a6c56,_0x4d04c2;_0x19ff5e=_['merge']({},_0x19ff5e,_0x4f1736['options']);return db[_0x391d('0x2f')][_0x391d('0x48')](_0x19ff5e)['then'](function(_0x4f710a){if(_0x4f710a){_0x32056e=_0x4f710a;return _0x4f710a[_0x391d('0x6e')]();}return null;})['then'](function(_0x58a9a4){if(_0x58a9a4){if(!_0x58a9a4[_0x391d('0x6a')]){throw new db[(_0x391d('0x6f'))]['ValidationErrorItem'](_0x391d('0x70'),0x193);}_0x3dcedb=_0x58a9a4;return db[_0x391d('0x71')][_0x391d('0x72')]({'raw':!![]});}return null;})[_0x391d('0x26')](function(_0x457cd8){if(_0x457cd8){_0x21b7d7=_[_0x391d('0x73')](_0x457cd8,'id');var _0x1ca4cf;var _0x90d7af=squel[_0x391d('0x74')]();_0x90d7af[_0x391d('0x75')](_0x32056e[_0x391d('0x76')]);for(var _0x254e23=0x0;_0x254e23<_0x3dcedb[_0x391d('0x6a')];_0x254e23+=0x1){_0x1ca4cf=_0x3dcedb[_0x254e23]['MetricId']?_0x21b7d7[_0x3dcedb[_0x254e23][_0x391d('0x77')]][_0x391d('0x78')]:_0x3dcedb[_0x254e23][_0x391d('0x6c')];_0x1ca4cf=_0x3dcedb[_0x254e23]['function']?_[_0x391d('0x79')](_0x503f54[_0x3dcedb[_0x254e23][_0x391d('0x7a')]],'%s',_0x1ca4cf):_0x1ca4cf;_0x1ca4cf=_0x3dcedb[_0x254e23][_0x391d('0x7b')]?_[_0x391d('0x79')](_0x55cc9d[_0x3dcedb[_0x254e23][_0x391d('0x7b')]],'%s',_0x1ca4cf):_0x1ca4cf;if(_0x3dcedb[_0x254e23][_0x391d('0x7c')]){_0x90d7af[_0x391d('0x7d')](_0x1ca4cf);}_0x3dcedb[_0x254e23]['orderBy']&&_0x90d7af['order'](_0x1ca4cf,_0x3dcedb[_0x254e23][_0x391d('0x7e')]===_0x391d('0x7f')?![]:!![]);_0x90d7af['field'](_0x1ca4cf,_0x3dcedb[_0x254e23]['alias']||_0x1ca4cf);}if(_0x32056e[_0x391d('0x80')]){_0x32056e[_0x391d('0x80')]=JSON[_0x391d('0x81')](_0x32056e[_0x391d('0x80')]);for(var _0xfd6a4d=0x0;_0xfd6a4d<_0x32056e[_0x391d('0x80')][_0x391d('0x6a')];_0xfd6a4d+=0x1){if(_0x32056e[_0x391d('0x80')][_0xfd6a4d][_0x391d('0x30')]&&_[_0x391d('0x65')](_0x4af717,_0x32056e[_0x391d('0x80')][_0xfd6a4d][_0x391d('0x30')])&&_0x32056e[_0x391d('0x80')][_0xfd6a4d][_0x391d('0x82')]&&_0x32056e[_0x391d('0x80')][_0xfd6a4d][_0x391d('0x83')]&&_0x32056e[_0x391d('0x80')][_0xfd6a4d]['foreignKey']){_0x90d7af[_0x32056e[_0x391d('0x80')][_0xfd6a4d]['type']](_0x32056e[_0x391d('0x80')][_0xfd6a4d]['foreignTable'],null,util[_0x391d('0x7b')]('%s.%s\x20=\x20%s.%s',_0x32056e['table'],_0x32056e[_0x391d('0x80')][_0xfd6a4d]['parentKey'],_0x32056e[_0x391d('0x80')][_0xfd6a4d][_0x391d('0x83')],_0x32056e[_0x391d('0x80')][_0xfd6a4d][_0x391d('0x84')]));}}}if(_0x32056e['conditions']){_0x32056e['conditions']=JSON['parse'](_0x32056e[_0x391d('0x85')]);_0x90d7af[_0x391d('0x3d')](_0x2d69d9(_0x32056e['conditions'][_0x391d('0x7d')]));}_0x4d04c2=_0x90d7af[_0x391d('0x86')]();_0x90d7af['limit'](_0x491a5e);_0x90d7af[_0x391d('0x1d')](0x0);logger['debug'](_0x391d('0x87'),_0x90d7af['toString']());return dbH['sequelize'][_0x391d('0x34')](_0x90d7af[_0x391d('0x88')](),{'type':dbH[_0x391d('0x89')]['QueryTypes'][_0x391d('0x8a')]});}})['then'](respondWithResult(_0x300c78,null))[_0x391d('0x44')](handleError(_0x300c78,null));};function runReport(_0x57d9dc,_0x5a5f6f,_0x5c955e){var _0x19fbe0=_0x5a5f6f[_0x391d('0x2b')];var _0x1daf45=0xa;var _0x4e8789=[_0x391d('0x54'),_0x391d('0x55'),_0x391d('0x56'),_0x391d('0x57')];var _0x352e75={'SUM':_0x391d('0x58'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x391d('0x5a'),'MAX':_0x391d('0x5b'),'MIN':_0x391d('0x8b'),'AVG':_0x391d('0x5c'),'GROUP_CONCAT':_0x391d('0x5d'),'GROUP_CONCAT ASC':_0x391d('0x5e'),'GROUP_CONCAT DESC':_0x391d('0x5f')};var _0x201f31={'SEC_TO_TIME':_0x391d('0x60'),'DATE':_0x391d('0x61'),'HOUR':'HOUR(%s)','ROUND':_0x391d('0x63'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x29e6c0=function(_0x47df29){return!_[_0x391d('0x65')]([_0x391d('0x8c'),_0x391d('0x66'),_0x391d('0x67'),_0x391d('0x68')],_0x47df29);};var _0x595ebe=function(_0x14c19e){if(!_0x14c19e||!_0x14c19e['rules'][_0x391d('0x6a')]){return'';}for(var _0x1a0464='(',_0x28b203=0x0;_0x28b203<_0x14c19e[_0x391d('0x69')][_0x391d('0x6a')];_0x28b203+=0x1){_0x28b203>0x0&&(_0x1a0464+='\x20'+_0x14c19e[_0x391d('0x6b')]+'\x20');_0x1a0464+=_0x14c19e['rules'][_0x28b203][_0x391d('0x7d')]?_0x595ebe(_0x14c19e[_0x391d('0x69')][_0x28b203][_0x391d('0x7d')]):_0x14c19e[_0x391d('0x69')][_0x28b203]['field']+'\x20'+_0x14c19e[_0x391d('0x69')][_0x28b203]['condition']+(_0x29e6c0(_0x14c19e[_0x391d('0x69')][_0x28b203][_0x391d('0x6d')])?'\x20'+_0x14c19e[_0x391d('0x69')][_0x28b203][_0x391d('0x8d')]:'');}return _0x1a0464+')';};var _0x4741eb={'where':{'id':_0x57d9dc['id']}},_0x4a1601,_0x1861de,_0x3df054,_0x3d0765,_0x3908a8;_0x4741eb=_['merge']({},_0x4741eb,_0x5c955e);return db['AnalyticCustomReport'][_0x391d('0x48')](_0x4741eb)[_0x391d('0x26')](function(_0x5cc8f3){if(_0x5cc8f3){_0x4a1601=_0x5cc8f3;return _0x5cc8f3['getFields']();}return null;})[_0x391d('0x26')](function(_0x5ca497){if(_0x5ca497){if(!_0x5ca497[_0x391d('0x6a')]){throw new db[(_0x391d('0x6f'))]['ValidationErrorItem'](_0x391d('0x70'),0x193);}_0x1861de=_0x5ca497;return db[_0x391d('0x71')][_0x391d('0x72')]({'raw':!![]});}return null;})[_0x391d('0x26')](function(_0x2423fc){if(_0x2423fc){_0x3df054=_[_0x391d('0x73')](_0x2423fc,'id');var _0xff55cc;var _0x22a244=squel['select']();_0x22a244[_0x391d('0x75')](_0x4a1601[_0x391d('0x76')]);for(var _0x33b5f7=0x0;_0x33b5f7<_0x1861de[_0x391d('0x6a')];_0x33b5f7+=0x1){_0xff55cc=_0x1861de[_0x33b5f7]['MetricId']?_0x3df054[_0x1861de[_0x33b5f7][_0x391d('0x77')]][_0x391d('0x78')]:_0x1861de[_0x33b5f7][_0x391d('0x6c')];_0xff55cc=_0x1861de[_0x33b5f7][_0x391d('0x7a')]?_[_0x391d('0x79')](_0x352e75[_0x1861de[_0x33b5f7][_0x391d('0x7a')]],'%s',_0xff55cc):_0xff55cc;_0xff55cc=_0x1861de[_0x33b5f7][_0x391d('0x7b')]?_[_0x391d('0x79')](_0x201f31[_0x1861de[_0x33b5f7]['format']],'%s',_0xff55cc):_0xff55cc;if(_0x1861de[_0x33b5f7][_0x391d('0x7c')]){_0x22a244[_0x391d('0x7d')](_0xff55cc);}_0x1861de[_0x33b5f7][_0x391d('0x7e')]&&_0x22a244[_0x391d('0x3a')](_0xff55cc,_0x1861de[_0x33b5f7][_0x391d('0x7e')]===_0x391d('0x7f')?![]:!![]);_0x22a244[_0x391d('0x6c')](_0xff55cc,_0x1861de[_0x33b5f7]['alias']||_0xff55cc);}if(_0x4a1601[_0x391d('0x80')]){_0x4a1601[_0x391d('0x80')]=JSON[_0x391d('0x81')](_0x4a1601[_0x391d('0x80')]);for(var _0x21680a=0x0;_0x21680a<_0x4a1601[_0x391d('0x80')][_0x391d('0x6a')];_0x21680a+=0x1){if(_0x4a1601[_0x391d('0x80')][_0x21680a][_0x391d('0x30')]&&_[_0x391d('0x65')](_0x4e8789,_0x4a1601[_0x391d('0x80')][_0x21680a][_0x391d('0x30')])&&_0x4a1601[_0x391d('0x80')][_0x21680a][_0x391d('0x82')]&&_0x4a1601[_0x391d('0x80')][_0x21680a]['foreignTable']&&_0x4a1601['joins'][_0x21680a][_0x391d('0x84')]){_0x22a244[_0x4a1601[_0x391d('0x80')][_0x21680a][_0x391d('0x30')]](_0x4a1601['joins'][_0x21680a][_0x391d('0x83')],null,util['format'](_0x391d('0x8e'),_0x4a1601[_0x391d('0x76')],_0x4a1601['joins'][_0x21680a]['parentKey'],_0x4a1601['joins'][_0x21680a][_0x391d('0x83')],_0x4a1601[_0x391d('0x80')][_0x21680a][_0x391d('0x84')]));}}}if(_0x4a1601[_0x391d('0x85')]){_0x4a1601['conditions']=JSON['parse'](_0x4a1601['conditions']);_0x22a244[_0x391d('0x3d')](_0x595ebe(_0x4a1601[_0x391d('0x85')]['group']));}_0x3908a8=_0x22a244[_0x391d('0x86')]();_0x22a244['limit'](_0x1daf45);_0x22a244[_0x391d('0x1d')](0x0);return;}})['then'](function(){if(_0x5a5f6f['output']===_0x391d('0x8f')){return null;}var _0x537eca=_['merge'](_0x5a5f6f,{'name':_0x5a5f6f[_0x391d('0x90')]||_0x5a5f6f['name']||_0x4a1601[_0x391d('0x2b')],'basename':_0x19fbe0,'savename':util[_0x391d('0x7b')](_0x391d('0x91'),_0x5a5f6f[_0x391d('0x2b')]||_0x4a1601['name'],require('randomstring')[_0x391d('0x92')](0x4),_0x5a5f6f['output']||_0x391d('0x93')),'reportId':_0x4a1601['id'],'reportType':'custom'});return db[_0x391d('0x94')][_0x391d('0x49')](_0x537eca,{'raw':!![]});})[_0x391d('0x26')](function(_0x545933){if(_0x4a1601[_0x391d('0x76')]===_0x391d('0x95')){_0x3908a8[_0x391d('0x3d')](_0x4a1601[_0x391d('0x76')]+_0x391d('0x96'),_0x5a5f6f[_0x391d('0x97')],_0x5a5f6f['endDate']);}else{_0x3908a8[_0x391d('0x3d')](_0x4a1601[_0x391d('0x76')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x5a5f6f[_0x391d('0x97')],_0x5a5f6f[_0x391d('0x98')]);}if(_0x545933){logger['info'](_0x391d('0x99'),_0x3908a8[_0x391d('0x88')]());require(_0x391d('0x9a'))[_0x391d('0x9b')](path[_0x391d('0x54')](__dirname,_0x391d('0x9c'),_0x545933[_0x391d('0x9d')]),[_0x545933['id'],_0x3908a8['toString'](),path[_0x391d('0x54')](__dirname,_0x391d('0x9e'),_0x545933[_0x391d('0x9f')]),_0x19fbe0]);return _0x545933;}else{var _0x51e29d=squel[_0x391d('0x74')]();_0x51e29d['from']('('+_0x3908a8[_0x391d('0x88')]()+')',_0x391d('0xa0'));_0x51e29d[_0x391d('0x6c')]('COUNT(*)',_0x391d('0x1f'));_0x3908a8[_0x391d('0x20')](_0x5a5f6f['limit']||_0x1daf45);_0x3908a8[_0x391d('0x1d')](_0x5a5f6f[_0x391d('0x1d')]||0x0);return dbH[_0x391d('0x89')]['query'](_0x51e29d[_0x391d('0x88')](),{'type':dbH['sequelize']['QueryTypes']['SELECT']})[_0x391d('0x26')](function(_0x2012b3){if(!_0x2012b3[_0x391d('0x6a')]){_0x3d0765=0x0;}else{_0x3d0765=_0x2012b3[0x0]['count']||0x0;}return dbH[_0x391d('0x89')][_0x391d('0x34')](_0x3908a8[_0x391d('0x88')](),{'type':dbH[_0x391d('0x89')]['QueryTypes'][_0x391d('0x8a')]});})[_0x391d('0x26')](function(_0x550e95){return{'rows':_0x550e95||[],'count':_0x3d0765};});}});}exports['run']=function(_0x403488,_0x50dd31){return runReport(_0x403488[_0x391d('0x46')],_0x403488['query'],_0x403488[_0x391d('0x40')])['then'](respondWithResult(_0x50dd31,null))[_0x391d('0x44')](handleError(_0x50dd31,null));};exports[_0x391d('0xa1')]=runReport;exports['query']=function(_0x33409f,_0x215abf){var _0x4c6a06=0xa;var _0x5d843d=[_0x391d('0x54'),_0x391d('0x55'),_0x391d('0x56'),_0x391d('0x57')];var _0x1ed0f={'SUM':_0x391d('0x58'),'COUNT':_0x391d('0x59'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x391d('0x8b'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x391d('0x5e'),'GROUP_CONCAT DESC':_0x391d('0x5f')};var _0x43ce05={'SEC_TO_TIME':_0x391d('0x60'),'DATE':'DATE(%s)','HOUR':_0x391d('0x62'),'ROUND':_0x391d('0x63'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x5f8df1=function(_0x142f91){return!_[_0x391d('0x65')]([_0x391d('0x8c'),'IS\x20NOT\x20NULL','IS\x20EMPTY',_0x391d('0x68')],_0x142f91);};var _0x513a83=function(_0x67fb8d){if(!_0x67fb8d||!_0x67fb8d[_0x391d('0x69')][_0x391d('0x6a')]){return'';}for(var _0x37acd0='(',_0x2a6637=0x0;_0x2a6637<_0x67fb8d['rules']['length'];_0x2a6637+=0x1){_0x2a6637>0x0&&(_0x37acd0+='\x20'+_0x67fb8d['operator']+'\x20');_0x37acd0+=_0x67fb8d[_0x391d('0x69')][_0x2a6637][_0x391d('0x7d')]?_0x513a83(_0x67fb8d[_0x391d('0x69')][_0x2a6637][_0x391d('0x7d')]):_0x67fb8d[_0x391d('0x69')][_0x2a6637][_0x391d('0x6c')]+'\x20'+_0x67fb8d[_0x391d('0x69')][_0x2a6637][_0x391d('0x6d')]+(_0x5f8df1(_0x67fb8d[_0x391d('0x69')][_0x2a6637][_0x391d('0x6d')])?'\x20'+_0x67fb8d['rules'][_0x2a6637][_0x391d('0x8d')]:'');}return _0x37acd0+')';};var _0x470237={'where':{'id':_0x33409f[_0x391d('0x46')]['id']}},_0x26cb23,_0x2a9547,_0xe69c48,_0x4f863d,_0x591d75;_0x470237=_[_0x391d('0x3e')]({},_0x470237,_0x33409f[_0x391d('0x40')]);return db[_0x391d('0x2f')][_0x391d('0x48')](_0x470237)[_0x391d('0x26')](function(_0x4f1814){if(_0x4f1814){_0x26cb23=_0x4f1814;return _0x4f1814[_0x391d('0x6e')]();}return null;})[_0x391d('0x26')](function(_0x5d9463){if(_0x5d9463){if(!_0x5d9463[_0x391d('0x6a')]){throw new db[(_0x391d('0x6f'))][(_0x391d('0xa2'))](_0x391d('0x70'),0x193);}_0x2a9547=_0x5d9463;return db['AnalyticMetric'][_0x391d('0x72')]({'raw':!![]});}return null;})[_0x391d('0x26')](function(_0x1b3972){if(_0x1b3972){_0xe69c48=_[_0x391d('0x73')](_0x1b3972,'id');var _0x2ac3d1;var _0x4ad22e=squel[_0x391d('0x74')]();_0x4ad22e[_0x391d('0x75')](_0x26cb23[_0x391d('0x76')]);for(var _0x4398f1=0x0;_0x4398f1<_0x2a9547[_0x391d('0x6a')];_0x4398f1+=0x1){_0x2ac3d1=_0x2a9547[_0x4398f1][_0x391d('0x77')]?_0xe69c48[_0x2a9547[_0x4398f1][_0x391d('0x77')]][_0x391d('0x78')]:_0x2a9547[_0x4398f1]['field'];_0x2ac3d1=_0x2a9547[_0x4398f1][_0x391d('0x7a')]?_['replace'](_0x1ed0f[_0x2a9547[_0x4398f1]['function']],'%s',_0x2ac3d1):_0x2ac3d1;_0x2ac3d1=_0x2a9547[_0x4398f1][_0x391d('0x7b')]?_[_0x391d('0x79')](_0x43ce05[_0x2a9547[_0x4398f1][_0x391d('0x7b')]],'%s',_0x2ac3d1):_0x2ac3d1;if(_0x2a9547[_0x4398f1][_0x391d('0x7c')]){_0x4ad22e[_0x391d('0x7d')](_0x2ac3d1);}_0x2a9547[_0x4398f1][_0x391d('0x7e')]&&_0x4ad22e[_0x391d('0x3a')](_0x2ac3d1,_0x2a9547[_0x4398f1][_0x391d('0x7e')]===_0x391d('0x7f')?![]:!![]);_0x4ad22e[_0x391d('0x6c')](_0x2ac3d1,_0x2a9547[_0x4398f1][_0x391d('0xa3')]||_0x2ac3d1);}if(_0x26cb23[_0x391d('0x80')]){_0x26cb23['joins']=JSON[_0x391d('0x81')](_0x26cb23[_0x391d('0x80')]);for(var _0xb10c01=0x0;_0xb10c01<_0x26cb23[_0x391d('0x80')][_0x391d('0x6a')];_0xb10c01+=0x1){if(_0x26cb23[_0x391d('0x80')][_0xb10c01][_0x391d('0x30')]&&_[_0x391d('0x65')](_0x5d843d,_0x26cb23[_0x391d('0x80')][_0xb10c01][_0x391d('0x30')])&&_0x26cb23[_0x391d('0x80')][_0xb10c01]['parentKey']&&_0x26cb23[_0x391d('0x80')][_0xb10c01][_0x391d('0x83')]&&_0x26cb23[_0x391d('0x80')][_0xb10c01][_0x391d('0x84')]){_0x4ad22e[_0x26cb23[_0x391d('0x80')][_0xb10c01][_0x391d('0x30')]](_0x26cb23['joins'][_0xb10c01][_0x391d('0x83')],null,util[_0x391d('0x7b')](_0x391d('0x8e'),_0x26cb23[_0x391d('0x76')],_0x26cb23[_0x391d('0x80')][_0xb10c01][_0x391d('0x82')],_0x26cb23[_0x391d('0x80')][_0xb10c01][_0x391d('0x83')],_0x26cb23[_0x391d('0x80')][_0xb10c01]['foreignKey']));}}}if(_0x26cb23[_0x391d('0x85')]){_0x26cb23[_0x391d('0x85')]=JSON['parse'](_0x26cb23['conditions']);_0x4ad22e['where'](_0x513a83(_0x26cb23[_0x391d('0x85')]['group']));}_0x591d75=_0x4ad22e[_0x391d('0x86')]();_0x4ad22e['limit'](_0x4c6a06);_0x4ad22e[_0x391d('0x1d')](0x0);logger[_0x391d('0xa4')](_0x391d('0x87'),_0x4ad22e[_0x391d('0x88')]());return dbH['sequelize'][_0x391d('0x34')](_0x4ad22e[_0x391d('0x88')](),{'type':dbH[_0x391d('0x89')]['QueryTypes'][_0x391d('0x8a')]});}})['then'](function(){return{'sql':_0x591d75['toString']()};})[_0x391d('0x26')](respondWithResult(_0x215abf,null))['catch'](handleError(_0x215abf,null));};