Built motion from commit f25620e4.|2.6.30
[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 _0x1f80=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','UserProfileResource','destroy','sendStatus','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','order','sort','where','filters','pick','filter','type','VIRTUAL','merge','includeAll','include','findAll','show','params','length','options','find','catch','body','user','role','Reports','UserProfileSection','userProfileId','autoAssociation','create','CustomReports','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','COUNT(%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','operator','group','field','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parentKey','foreignTable','foreignKey','conditions','clone','debug','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','join','left_join','right_join','cross_join','SUM(%s)','COUNT(DISTINCT\x20%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','IS\x20EMPTY','%s.%s\x20=\x20%s.%s','parse','output','web','fullPath','%s-%s.%s','generate','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','info','Run\x20Query:','child_process','fork','../../files/reports','savename','countTable','COUNT(*)','runReport','IS\x20NULL','condition','getFields','AnalyticMetric','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','crypto','desk.js'];(function(_0x542a5d,_0x27e6c8){var _0x251378=function(_0x295247){while(--_0x295247){_0x542a5d['push'](_0x542a5d['shift']());}};_0x251378(++_0x27e6c8);}(_0x1f80,0x148));var _0x01f8=function(_0x2b92e2,_0x358e56){_0x2b92e2=_0x2b92e2-0x0;var _0x2b88a9=_0x1f80[_0x2b92e2];return _0x2b88a9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x01f8('0x0'));var zipdir=require(_0x01f8('0x1'));var jsonpatch=require(_0x01f8('0x2'));var rp=require(_0x01f8('0x3'));var moment=require(_0x01f8('0x4'));var BPromise=require(_0x01f8('0x5'));var Mustache=require(_0x01f8('0x6'));var util=require(_0x01f8('0x7'));var path=require(_0x01f8('0x8'));var sox=require(_0x01f8('0x9'));var csv=require(_0x01f8('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x01f8('0xb'));var squel=require('squel');var crypto=require(_0x01f8('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x01f8('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x01f8('0xe'));var Redis=require(_0x01f8('0xf'));var authService=require(_0x01f8('0x10'));var qs=require(_0x01f8('0x11'));var as=require(_0x01f8('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x01f8('0x13'))(_0x01f8('0x14'));var utils=require(_0x01f8('0x15'));var config=require(_0x01f8('0x16'));var licenseUtil=require(_0x01f8('0x17'));var db=require('../../mysqldb')['db'];var dbH=require(_0x01f8('0x18'))[_0x01f8('0x19')];function respondWithStatusCode(_0x1d399f,_0x52cf79){_0x52cf79=_0x52cf79||0xcc;return function(_0x275efc){if(_0x275efc){return _0x1d399f['sendStatus'](_0x52cf79);}return _0x1d399f[_0x01f8('0x1a')](_0x52cf79)[_0x01f8('0x1b')]();};}function respondWithResult(_0x409cbd,_0x448d06){_0x448d06=_0x448d06||0xc8;return function(_0x115a73){if(_0x115a73){return _0x409cbd[_0x01f8('0x1a')](_0x448d06)[_0x01f8('0x1c')](_0x115a73);}};}function respondWithFilteredResult(_0x5a3ed5,_0x48166c){return function(_0x3f46da){if(_0x3f46da){var _0x19724d=typeof _0x48166c[_0x01f8('0x1d')]===_0x01f8('0x1e')&&typeof _0x48166c[_0x01f8('0x1f')]===_0x01f8('0x1e');var _0x352854=_0x3f46da[_0x01f8('0x20')];var _0x46380c=_0x19724d?0x0:_0x48166c[_0x01f8('0x1d')];var _0x4d3b0c=_0x19724d?_0x3f46da[_0x01f8('0x20')]:_0x48166c[_0x01f8('0x1d')]+_0x48166c[_0x01f8('0x1f')];var _0x5d8a77;if(_0x4d3b0c>=_0x352854){_0x4d3b0c=_0x352854;_0x5d8a77=0xc8;}else{_0x5d8a77=0xce;}_0x5a3ed5[_0x01f8('0x1a')](_0x5d8a77);return _0x5a3ed5[_0x01f8('0x21')](_0x01f8('0x22'),_0x46380c+'-'+_0x4d3b0c+'/'+_0x352854)[_0x01f8('0x1c')](_0x3f46da);}return null;};}function patchUpdates(_0x26f3bb){return function(_0x3428f9){try{jsonpatch[_0x01f8('0x23')](_0x3428f9,_0x26f3bb,!![]);}catch(_0x26e623){return BPromise[_0x01f8('0x24')](_0x26e623);}return _0x3428f9[_0x01f8('0x25')]();};}function saveUpdates(_0x5d511d,_0x2b0755){return function(_0x5183f6){if(_0x5183f6){return _0x5183f6[_0x01f8('0x26')](_0x5d511d)[_0x01f8('0x27')](function(_0x2d4d3f){return _0x2d4d3f;});}return null;};}function removeEntity(_0x376487,_0x274158){return function(_0x3b3b32){if(_0x3b3b32){return _0x3b3b32['destroy']()[_0x01f8('0x27')](function(){var _0x33552a=_0x3b3b32[_0x01f8('0x28')]({'plain':!![]});var _0x3cd8ed='CustomReports';return db[_0x01f8('0x29')][_0x01f8('0x2a')]({'where':{'type':_0x3cd8ed,'resourceId':_0x33552a['id']}})['then'](function(){return _0x3b3b32;});})['then'](function(){_0x376487[_0x01f8('0x1a')](0xcc)[_0x01f8('0x1b')]();});}};}function handleEntityNotFound(_0xf48611,_0x309714){return function(_0xbd5d79){if(!_0xbd5d79){_0xf48611[_0x01f8('0x2b')](0x194);}return _0xbd5d79;};}function handleError(_0xbc9495,_0x2a8dce){_0x2a8dce=_0x2a8dce||0x1f4;return function(_0x22d8a5){logger['error'](_0x22d8a5[_0x01f8('0x2c')]);if(_0x22d8a5[_0x01f8('0x2d')]){delete _0x22d8a5[_0x01f8('0x2d')];}_0xbc9495[_0x01f8('0x1a')](_0x2a8dce)[_0x01f8('0x2e')](_0x22d8a5);};}exports[_0x01f8('0x2f')]=function(_0x5e05e4,_0x59eea1){var _0x26056b={},_0x324a2c={},_0x531afa={'count':0x0,'rows':[]};var _0x48dcea=_[_0x01f8('0x30')](db[_0x01f8('0x31')][_0x01f8('0x32')],function(_0x118973){return{'name':_0x118973['fieldName'],'type':_0x118973['type'][_0x01f8('0x33')]};});_0x324a2c[_0x01f8('0x34')]=_[_0x01f8('0x30')](_0x48dcea,'name');_0x324a2c[_0x01f8('0x35')]=_[_0x01f8('0x36')](_0x5e05e4[_0x01f8('0x35')]);_0x324a2c['filters']=_[_0x01f8('0x37')](_0x324a2c['model'],_0x324a2c[_0x01f8('0x35')]);_0x26056b['attributes']=_[_0x01f8('0x37')](_0x324a2c[_0x01f8('0x34')],qs[_0x01f8('0x38')](_0x5e05e4[_0x01f8('0x35')]['fields']));_0x26056b['attributes']=_0x26056b[_0x01f8('0x39')]['length']?_0x26056b[_0x01f8('0x39')]:_0x324a2c['model'];if(!_0x5e05e4[_0x01f8('0x35')][_0x01f8('0x3a')]('nolimit')){_0x26056b[_0x01f8('0x1f')]=qs[_0x01f8('0x1f')](_0x5e05e4[_0x01f8('0x35')]['limit']);_0x26056b['offset']=qs[_0x01f8('0x1d')](_0x5e05e4[_0x01f8('0x35')][_0x01f8('0x1d')]);}_0x26056b[_0x01f8('0x3b')]=qs[_0x01f8('0x3c')](_0x5e05e4['query'][_0x01f8('0x3c')]);_0x26056b[_0x01f8('0x3d')]=qs[_0x01f8('0x3e')](_[_0x01f8('0x3f')](_0x5e05e4[_0x01f8('0x35')],_0x324a2c[_0x01f8('0x3e')]),_0x48dcea);if(_0x5e05e4[_0x01f8('0x35')][_0x01f8('0x40')]){_0x26056b[_0x01f8('0x3d')]=_['merge'](_0x26056b[_0x01f8('0x3d')],{'$or':_['map'](_0x48dcea,function(_0x550280){if(_0x550280[_0x01f8('0x41')]!==_0x01f8('0x42')){var _0x472027={};_0x472027[_0x550280[_0x01f8('0x2d')]]={'$like':'%'+_0x5e05e4[_0x01f8('0x35')]['filter']+'%'};return _0x472027;}})});}_0x26056b=_[_0x01f8('0x43')]({},_0x26056b,_0x5e05e4['options']);var _0x4e0681={'where':_0x26056b[_0x01f8('0x3d')]};return db[_0x01f8('0x31')]['count'](_0x4e0681)[_0x01f8('0x27')](function(_0x4efb32){_0x531afa[_0x01f8('0x20')]=_0x4efb32;if(_0x5e05e4['query'][_0x01f8('0x44')]){_0x26056b[_0x01f8('0x45')]=[{'all':!![]}];}return db[_0x01f8('0x31')][_0x01f8('0x46')](_0x26056b);})[_0x01f8('0x27')](function(_0xa01131){_0x531afa['rows']=_0xa01131;return _0x531afa;})[_0x01f8('0x27')](respondWithFilteredResult(_0x59eea1,_0x26056b))['catch'](handleError(_0x59eea1,null));};exports[_0x01f8('0x47')]=function(_0x145335,_0x4fefdc){var _0x1fdf51={'raw':![],'where':{'id':_0x145335[_0x01f8('0x48')]['id']}},_0xbb858d={};_0xbb858d[_0x01f8('0x34')]=_[_0x01f8('0x36')](db[_0x01f8('0x31')]['rawAttributes']);_0xbb858d[_0x01f8('0x35')]=_['keys'](_0x145335[_0x01f8('0x35')]);_0xbb858d[_0x01f8('0x3e')]=_[_0x01f8('0x37')](_0xbb858d[_0x01f8('0x34')],_0xbb858d[_0x01f8('0x35')]);_0x1fdf51[_0x01f8('0x39')]=_[_0x01f8('0x37')](_0xbb858d[_0x01f8('0x34')],qs[_0x01f8('0x38')](_0x145335[_0x01f8('0x35')][_0x01f8('0x38')]));_0x1fdf51[_0x01f8('0x39')]=_0x1fdf51[_0x01f8('0x39')][_0x01f8('0x49')]?_0x1fdf51[_0x01f8('0x39')]:_0xbb858d[_0x01f8('0x34')];if(_0x145335[_0x01f8('0x35')][_0x01f8('0x44')]){_0x1fdf51[_0x01f8('0x45')]=[{'all':!![]}];}_0x1fdf51=_[_0x01f8('0x43')]({},_0x1fdf51,_0x145335[_0x01f8('0x4a')]);return db[_0x01f8('0x31')][_0x01f8('0x4b')](_0x1fdf51)['then'](handleEntityNotFound(_0x4fefdc,null))['then'](respondWithResult(_0x4fefdc,null))[_0x01f8('0x4c')](handleError(_0x4fefdc,null));};exports['create']=function(_0x16e9c3,_0x3eefda){return db[_0x01f8('0x31')]['create'](_0x16e9c3[_0x01f8('0x4d')],{})[_0x01f8('0x27')](function(_0x3625ef){var _0x1683b7=_0x16e9c3[_0x01f8('0x4e')][_0x01f8('0x28')]({'plain':!![]});if(!_0x1683b7)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1683b7[_0x01f8('0x4f')]===_0x01f8('0x4e')){var _0x22224f=_0x3625ef[_0x01f8('0x28')]({'plain':!![]});var _0x45c431=_0x01f8('0x50');return db[_0x01f8('0x51')][_0x01f8('0x4b')]({'where':{'name':_0x45c431,'userProfileId':_0x1683b7[_0x01f8('0x52')]},'raw':!![]})['then'](function(_0xa15265){if(_0xa15265&&_0xa15265[_0x01f8('0x53')]===0x0){return db[_0x01f8('0x29')][_0x01f8('0x54')]({'name':_0x22224f[_0x01f8('0x2d')],'resourceId':_0x22224f['id'],'type':_0x01f8('0x55'),'sectionId':_0xa15265['id']},{})[_0x01f8('0x27')](function(){return _0x3625ef;});}else{return _0x3625ef;}})[_0x01f8('0x4c')](function(_0x4b1ce0){logger[_0x01f8('0x56')](_0x01f8('0x57'),_0x4b1ce0);throw _0x4b1ce0;});}return _0x3625ef;})[_0x01f8('0x27')](respondWithResult(_0x3eefda,0xc9))['catch'](handleError(_0x3eefda,null));};exports[_0x01f8('0x26')]=function(_0x5e328d,_0x5d8ad9){if(_0x5e328d[_0x01f8('0x4d')]['id']){delete _0x5e328d[_0x01f8('0x4d')]['id'];}return db['AnalyticCustomReport'][_0x01f8('0x4b')]({'where':{'id':_0x5e328d[_0x01f8('0x48')]['id']}})[_0x01f8('0x27')](handleEntityNotFound(_0x5d8ad9,null))[_0x01f8('0x27')](saveUpdates(_0x5e328d[_0x01f8('0x4d')],null))['then'](respondWithResult(_0x5d8ad9,null))['catch'](handleError(_0x5d8ad9,null));};exports['destroy']=function(_0x30d396,_0x548348){return db[_0x01f8('0x31')][_0x01f8('0x4b')]({'where':{'id':_0x30d396[_0x01f8('0x48')]['id']}})[_0x01f8('0x27')](handleEntityNotFound(_0x548348,null))[_0x01f8('0x27')](removeEntity(_0x548348,null))[_0x01f8('0x4c')](handleError(_0x548348,null));};exports[_0x01f8('0x58')]=function(_0x4124af,_0x8904c2){var _0x40a3b9=0xa;var _0x8d8f4f=['join','left_join','right_join','cross_join'];var _0x4cb98a={'SUM':'SUM(%s)','COUNT':_0x01f8('0x59'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x01f8('0x5a'),'MIN':_0x01f8('0x5b'),'AVG':_0x01f8('0x5c'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x01f8('0x5d'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x33bc22={'SEC_TO_TIME':_0x01f8('0x5e'),'DATE':_0x01f8('0x5f'),'HOUR':_0x01f8('0x60'),'ROUND':_0x01f8('0x61'),'UNIX_TIMESTAMP':_0x01f8('0x62')};var _0xc67043=function(_0x3c075f){return!_[_0x01f8('0x63')](['IS\x20NULL',_0x01f8('0x64'),'IS\x20EMPTY',_0x01f8('0x65')],_0x3c075f);};var _0x23d2ec=function(_0x503a87){if(!_0x503a87||!_0x503a87[_0x01f8('0x66')][_0x01f8('0x49')]){return'';}for(var _0x5d943c='(',_0x5b5016=0x0;_0x5b5016<_0x503a87[_0x01f8('0x66')][_0x01f8('0x49')];_0x5b5016+=0x1){_0x5b5016>0x0&&(_0x5d943c+='\x20'+_0x503a87[_0x01f8('0x67')]+'\x20');_0x5d943c+=_0x503a87['rules'][_0x5b5016][_0x01f8('0x68')]?_0x23d2ec(_0x503a87[_0x01f8('0x66')][_0x5b5016][_0x01f8('0x68')]):_0x503a87[_0x01f8('0x66')][_0x5b5016][_0x01f8('0x69')]+'\x20'+_0x503a87[_0x01f8('0x66')][_0x5b5016]['condition']+(_0xc67043(_0x503a87[_0x01f8('0x66')][_0x5b5016]['condition'])?'\x20'+_0x503a87[_0x01f8('0x66')][_0x5b5016][_0x01f8('0x6a')]:'');}return _0x5d943c+')';};var _0xab3670={'where':{'id':_0x4124af[_0x01f8('0x48')]['id']}},_0x42a289,_0x44d255,_0x1f73f9,_0x468a09,_0x6ff0ea;_0xab3670=_[_0x01f8('0x43')]({},_0xab3670,_0x4124af[_0x01f8('0x4a')]);return db[_0x01f8('0x31')][_0x01f8('0x4b')](_0xab3670)[_0x01f8('0x27')](function(_0x206e14){if(_0x206e14){_0x42a289=_0x206e14;return _0x206e14['getFields']();}return null;})[_0x01f8('0x27')](function(_0x181273){if(_0x181273){if(!_0x181273['length']){throw new db[(_0x01f8('0x6b'))][(_0x01f8('0x6c'))](_0x01f8('0x6d'),0x193);}_0x44d255=_0x181273;return db['AnalyticMetric'][_0x01f8('0x46')]({'raw':!![]});}return null;})[_0x01f8('0x27')](function(_0x435058){if(_0x435058){_0x1f73f9=_[_0x01f8('0x6e')](_0x435058,'id');var _0x4201c7;var _0x5d04ed=squel[_0x01f8('0x6f')]();_0x5d04ed[_0x01f8('0x70')](_0x42a289[_0x01f8('0x71')]);for(var _0x27823e=0x0;_0x27823e<_0x44d255[_0x01f8('0x49')];_0x27823e+=0x1){_0x4201c7=_0x44d255[_0x27823e]['MetricId']?_0x1f73f9[_0x44d255[_0x27823e][_0x01f8('0x72')]][_0x01f8('0x73')]:_0x44d255[_0x27823e][_0x01f8('0x69')];_0x4201c7=_0x44d255[_0x27823e][_0x01f8('0x74')]?_[_0x01f8('0x75')](_0x4cb98a[_0x44d255[_0x27823e][_0x01f8('0x74')]],'%s',_0x4201c7):_0x4201c7;_0x4201c7=_0x44d255[_0x27823e]['format']?_['replace'](_0x33bc22[_0x44d255[_0x27823e][_0x01f8('0x76')]],'%s',_0x4201c7):_0x4201c7;if(_0x44d255[_0x27823e][_0x01f8('0x77')]){_0x5d04ed[_0x01f8('0x68')](_0x4201c7);}_0x44d255[_0x27823e]['orderBy']&&_0x5d04ed[_0x01f8('0x3b')](_0x4201c7,_0x44d255[_0x27823e][_0x01f8('0x78')]===_0x01f8('0x79')?![]:!![]);_0x5d04ed[_0x01f8('0x69')](_0x4201c7,_0x44d255[_0x27823e][_0x01f8('0x7a')]||_0x4201c7);}if(_0x42a289[_0x01f8('0x7b')]){_0x42a289['joins']=JSON['parse'](_0x42a289['joins']);for(var _0x39bf02=0x0;_0x39bf02<_0x42a289[_0x01f8('0x7b')][_0x01f8('0x49')];_0x39bf02+=0x1){if(_0x42a289[_0x01f8('0x7b')][_0x39bf02]['type']&&_[_0x01f8('0x63')](_0x8d8f4f,_0x42a289[_0x01f8('0x7b')][_0x39bf02][_0x01f8('0x41')])&&_0x42a289[_0x01f8('0x7b')][_0x39bf02][_0x01f8('0x7c')]&&_0x42a289[_0x01f8('0x7b')][_0x39bf02][_0x01f8('0x7d')]&&_0x42a289[_0x01f8('0x7b')][_0x39bf02]['foreignKey']){_0x5d04ed[_0x42a289[_0x01f8('0x7b')][_0x39bf02]['type']](_0x42a289[_0x01f8('0x7b')][_0x39bf02][_0x01f8('0x7d')],null,util[_0x01f8('0x76')]('%s.%s\x20=\x20%s.%s',_0x42a289['table'],_0x42a289[_0x01f8('0x7b')][_0x39bf02][_0x01f8('0x7c')],_0x42a289[_0x01f8('0x7b')][_0x39bf02][_0x01f8('0x7d')],_0x42a289[_0x01f8('0x7b')][_0x39bf02][_0x01f8('0x7e')]));}}}if(_0x42a289['conditions']){_0x42a289['conditions']=JSON['parse'](_0x42a289[_0x01f8('0x7f')]);_0x5d04ed[_0x01f8('0x3d')](_0x23d2ec(_0x42a289['conditions'][_0x01f8('0x68')]));}_0x6ff0ea=_0x5d04ed[_0x01f8('0x80')]();_0x5d04ed[_0x01f8('0x1f')](_0x40a3b9);_0x5d04ed[_0x01f8('0x1d')](0x0);logger[_0x01f8('0x81')](_0x01f8('0x82'),_0x5d04ed['toString']());return dbH[_0x01f8('0x83')][_0x01f8('0x35')](_0x5d04ed[_0x01f8('0x84')](),{'type':dbH['sequelize'][_0x01f8('0x85')][_0x01f8('0x86')]});}})[_0x01f8('0x27')](respondWithResult(_0x8904c2,null))['catch'](handleError(_0x8904c2,null));};function runReport(_0x13ac9a,_0x507866,_0x2ed107){var _0x15f817=_0x507866[_0x01f8('0x2d')];var _0x1d2de2=0xa;var _0x2a5ee4=[_0x01f8('0x87'),_0x01f8('0x88'),_0x01f8('0x89'),_0x01f8('0x8a')];var _0x5c37d8={'SUM':_0x01f8('0x8b'),'COUNT':_0x01f8('0x59'),'COUNT DISTINCT':_0x01f8('0x8c'),'MAX':'MAX(%s)','MIN':_0x01f8('0x5b'),'AVG':_0x01f8('0x5c'),'GROUP_CONCAT':_0x01f8('0x8d'),'GROUP_CONCAT ASC':_0x01f8('0x5d'),'GROUP_CONCAT DESC':_0x01f8('0x8e')};var _0x3fec1c={'SEC_TO_TIME':_0x01f8('0x5e'),'DATE':_0x01f8('0x5f'),'HOUR':_0x01f8('0x60'),'ROUND':_0x01f8('0x61'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x44be26=function(_0x3f7409){return!_['includes'](['IS\x20NULL','IS\x20NOT\x20NULL',_0x01f8('0x8f'),_0x01f8('0x65')],_0x3f7409);};var _0x352ab0=function(_0x123ebb){if(!_0x123ebb||!_0x123ebb[_0x01f8('0x66')][_0x01f8('0x49')]){return'';}for(var _0x46c4bf='(',_0x1c2c2d=0x0;_0x1c2c2d<_0x123ebb[_0x01f8('0x66')][_0x01f8('0x49')];_0x1c2c2d+=0x1){_0x1c2c2d>0x0&&(_0x46c4bf+='\x20'+_0x123ebb[_0x01f8('0x67')]+'\x20');_0x46c4bf+=_0x123ebb[_0x01f8('0x66')][_0x1c2c2d][_0x01f8('0x68')]?_0x352ab0(_0x123ebb['rules'][_0x1c2c2d]['group']):_0x123ebb[_0x01f8('0x66')][_0x1c2c2d]['field']+'\x20'+_0x123ebb['rules'][_0x1c2c2d]['condition']+(_0x44be26(_0x123ebb[_0x01f8('0x66')][_0x1c2c2d]['condition'])?'\x20'+_0x123ebb['rules'][_0x1c2c2d]['value']:'');}return _0x46c4bf+')';};var _0xa7f724={'where':{'id':_0x13ac9a['id']}},_0x123339,_0x20ae16,_0x242108,_0x57b0ce,_0x166cce;_0xa7f724=_['merge']({},_0xa7f724,_0x2ed107);return db['AnalyticCustomReport']['find'](_0xa7f724)[_0x01f8('0x27')](function(_0x138118){if(_0x138118){_0x123339=_0x138118;return _0x138118['getFields']();}return null;})['then'](function(_0x18a466){if(_0x18a466){if(!_0x18a466[_0x01f8('0x49')]){throw new db[(_0x01f8('0x6b'))][(_0x01f8('0x6c'))](_0x01f8('0x6d'),0x193);}_0x20ae16=_0x18a466;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0x01f8('0x27')](function(_0x20b890){if(_0x20b890){_0x242108=_[_0x01f8('0x6e')](_0x20b890,'id');var _0x168bc5;var _0x414932=squel[_0x01f8('0x6f')]();_0x414932[_0x01f8('0x70')](_0x123339['table']);for(var _0x5be240=0x0;_0x5be240<_0x20ae16[_0x01f8('0x49')];_0x5be240+=0x1){_0x168bc5=_0x20ae16[_0x5be240][_0x01f8('0x72')]?_0x242108[_0x20ae16[_0x5be240][_0x01f8('0x72')]][_0x01f8('0x73')]:_0x20ae16[_0x5be240][_0x01f8('0x69')];_0x168bc5=_0x20ae16[_0x5be240][_0x01f8('0x74')]?_['replace'](_0x5c37d8[_0x20ae16[_0x5be240][_0x01f8('0x74')]],'%s',_0x168bc5):_0x168bc5;_0x168bc5=_0x20ae16[_0x5be240][_0x01f8('0x76')]?_[_0x01f8('0x75')](_0x3fec1c[_0x20ae16[_0x5be240][_0x01f8('0x76')]],'%s',_0x168bc5):_0x168bc5;if(_0x20ae16[_0x5be240]['groupBy']){_0x414932[_0x01f8('0x68')](_0x168bc5);}_0x20ae16[_0x5be240][_0x01f8('0x78')]&&_0x414932[_0x01f8('0x3b')](_0x168bc5,_0x20ae16[_0x5be240][_0x01f8('0x78')]===_0x01f8('0x79')?![]:!![]);_0x414932[_0x01f8('0x69')](_0x168bc5,_0x20ae16[_0x5be240]['alias']||_0x168bc5);}if(_0x123339[_0x01f8('0x7b')]){_0x123339['joins']=JSON['parse'](_0x123339[_0x01f8('0x7b')]);for(var _0x33c101=0x0;_0x33c101<_0x123339[_0x01f8('0x7b')]['length'];_0x33c101+=0x1){if(_0x123339[_0x01f8('0x7b')][_0x33c101]['type']&&_['includes'](_0x2a5ee4,_0x123339[_0x01f8('0x7b')][_0x33c101][_0x01f8('0x41')])&&_0x123339['joins'][_0x33c101][_0x01f8('0x7c')]&&_0x123339[_0x01f8('0x7b')][_0x33c101][_0x01f8('0x7d')]&&_0x123339[_0x01f8('0x7b')][_0x33c101][_0x01f8('0x7e')]){_0x414932[_0x123339['joins'][_0x33c101]['type']](_0x123339['joins'][_0x33c101][_0x01f8('0x7d')],null,util[_0x01f8('0x76')](_0x01f8('0x90'),_0x123339[_0x01f8('0x71')],_0x123339[_0x01f8('0x7b')][_0x33c101][_0x01f8('0x7c')],_0x123339['joins'][_0x33c101]['foreignTable'],_0x123339[_0x01f8('0x7b')][_0x33c101][_0x01f8('0x7e')]));}}}if(_0x123339['conditions']){_0x123339['conditions']=JSON[_0x01f8('0x91')](_0x123339[_0x01f8('0x7f')]);_0x414932[_0x01f8('0x3d')](_0x352ab0(_0x123339[_0x01f8('0x7f')][_0x01f8('0x68')]));}_0x166cce=_0x414932[_0x01f8('0x80')]();_0x414932[_0x01f8('0x1f')](_0x1d2de2);_0x414932[_0x01f8('0x1d')](0x0);return;}})[_0x01f8('0x27')](function(){if(_0x507866[_0x01f8('0x92')]===_0x01f8('0x93')){return null;}var _0x2d2530=_['merge'](_0x507866,{'name':_0x507866[_0x01f8('0x94')]||_0x507866[_0x01f8('0x2d')]||_0x123339[_0x01f8('0x2d')],'basename':_0x15f817,'savename':util[_0x01f8('0x76')](_0x01f8('0x95'),_0x507866['name']||_0x123339['name'],require('randomstring')[_0x01f8('0x96')](0x4),_0x507866[_0x01f8('0x92')]||_0x01f8('0x97')),'reportId':_0x123339['id'],'reportType':'custom'});return db[_0x01f8('0x98')]['create'](_0x2d2530,{'raw':!![]});})[_0x01f8('0x27')](function(_0x9f5f0a){if(_0x123339[_0x01f8('0x71')]===_0x01f8('0x99')){_0x166cce[_0x01f8('0x3d')](_0x123339[_0x01f8('0x71')]+_0x01f8('0x9a'),_0x507866['startDate'],_0x507866[_0x01f8('0x9b')]);}else{_0x166cce[_0x01f8('0x3d')](_0x123339[_0x01f8('0x71')]+_0x01f8('0x9c'),_0x507866[_0x01f8('0x9d')],_0x507866[_0x01f8('0x9b')]);}if(_0x9f5f0a){logger[_0x01f8('0x9e')](_0x01f8('0x9f'),_0x166cce[_0x01f8('0x84')]());require(_0x01f8('0xa0'))[_0x01f8('0xa1')](path['join'](__dirname,'../../components/export/',_0x9f5f0a[_0x01f8('0x92')]),[_0x9f5f0a['id'],_0x166cce[_0x01f8('0x84')](),path[_0x01f8('0x87')](__dirname,_0x01f8('0xa2'),_0x9f5f0a[_0x01f8('0xa3')]),_0x15f817]);return _0x9f5f0a;}else{var _0x1eeea0=squel[_0x01f8('0x6f')]();_0x1eeea0[_0x01f8('0x70')]('('+_0x166cce[_0x01f8('0x84')]()+')',_0x01f8('0xa4'));_0x1eeea0[_0x01f8('0x69')](_0x01f8('0xa5'),_0x01f8('0x20'));_0x166cce['limit'](_0x507866[_0x01f8('0x1f')]||_0x1d2de2);_0x166cce[_0x01f8('0x1d')](_0x507866['offset']||0x0);return dbH[_0x01f8('0x83')][_0x01f8('0x35')](_0x1eeea0['toString'](),{'type':dbH[_0x01f8('0x83')][_0x01f8('0x85')]['SELECT']})[_0x01f8('0x27')](function(_0x345417){if(!_0x345417[_0x01f8('0x49')]){_0x57b0ce=0x0;}else{_0x57b0ce=_0x345417[0x0][_0x01f8('0x20')]||0x0;}return dbH['sequelize'][_0x01f8('0x35')](_0x166cce[_0x01f8('0x84')](),{'type':dbH[_0x01f8('0x83')][_0x01f8('0x85')][_0x01f8('0x86')]});})[_0x01f8('0x27')](function(_0x43eb31){return{'rows':_0x43eb31||[],'count':_0x57b0ce};});}});}exports['run']=function(_0x14e0b7,_0x4a31a7){return runReport(_0x14e0b7[_0x01f8('0x48')],_0x14e0b7[_0x01f8('0x35')],_0x14e0b7[_0x01f8('0x4a')])['then'](respondWithResult(_0x4a31a7,null))[_0x01f8('0x4c')](handleError(_0x4a31a7,null));};exports[_0x01f8('0xa6')]=runReport;exports[_0x01f8('0x35')]=function(_0x2af8b8,_0x54004c){var _0x19033d=0xa;var _0x3f062e=[_0x01f8('0x87'),_0x01f8('0x88'),_0x01f8('0x89'),_0x01f8('0x8a')];var _0x48bf68={'SUM':_0x01f8('0x8b'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x01f8('0x8c'),'MAX':_0x01f8('0x5a'),'MIN':_0x01f8('0x5b'),'AVG':_0x01f8('0x5c'),'GROUP_CONCAT':_0x01f8('0x8d'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x01f8('0x8e')};var _0x4ddc14={'SEC_TO_TIME':_0x01f8('0x5e'),'DATE':_0x01f8('0x5f'),'HOUR':'HOUR(%s)','ROUND':_0x01f8('0x61'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x186cd0=function(_0x27fc5d){return!_[_0x01f8('0x63')]([_0x01f8('0xa7'),_0x01f8('0x64'),_0x01f8('0x8f'),_0x01f8('0x65')],_0x27fc5d);};var _0x5f4748=function(_0x4b5fa6){if(!_0x4b5fa6||!_0x4b5fa6[_0x01f8('0x66')][_0x01f8('0x49')]){return'';}for(var _0x1f79ce='(',_0x6e257=0x0;_0x6e257<_0x4b5fa6['rules']['length'];_0x6e257+=0x1){_0x6e257>0x0&&(_0x1f79ce+='\x20'+_0x4b5fa6[_0x01f8('0x67')]+'\x20');_0x1f79ce+=_0x4b5fa6[_0x01f8('0x66')][_0x6e257][_0x01f8('0x68')]?_0x5f4748(_0x4b5fa6[_0x01f8('0x66')][_0x6e257]['group']):_0x4b5fa6['rules'][_0x6e257][_0x01f8('0x69')]+'\x20'+_0x4b5fa6['rules'][_0x6e257]['condition']+(_0x186cd0(_0x4b5fa6[_0x01f8('0x66')][_0x6e257][_0x01f8('0xa8')])?'\x20'+_0x4b5fa6[_0x01f8('0x66')][_0x6e257][_0x01f8('0x6a')]:'');}return _0x1f79ce+')';};var _0x4be8b8={'where':{'id':_0x2af8b8[_0x01f8('0x48')]['id']}},_0xa5b068,_0x941b9f,_0x456eaa,_0x3668e8,_0x1f5319;_0x4be8b8=_[_0x01f8('0x43')]({},_0x4be8b8,_0x2af8b8[_0x01f8('0x4a')]);return db[_0x01f8('0x31')]['find'](_0x4be8b8)[_0x01f8('0x27')](function(_0x14d3d8){if(_0x14d3d8){_0xa5b068=_0x14d3d8;return _0x14d3d8[_0x01f8('0xa9')]();}return null;})[_0x01f8('0x27')](function(_0x4003b0){if(_0x4003b0){if(!_0x4003b0[_0x01f8('0x49')]){throw new db[(_0x01f8('0x6b'))][(_0x01f8('0x6c'))](_0x01f8('0x6d'),0x193);}_0x941b9f=_0x4003b0;return db[_0x01f8('0xaa')][_0x01f8('0x46')]({'raw':!![]});}return null;})['then'](function(_0x3758ad){if(_0x3758ad){_0x456eaa=_['keyBy'](_0x3758ad,'id');var _0x3fa75c;var _0xbaa87e=squel['select']();_0xbaa87e[_0x01f8('0x70')](_0xa5b068[_0x01f8('0x71')]);for(var _0x38ce79=0x0;_0x38ce79<_0x941b9f['length'];_0x38ce79+=0x1){_0x3fa75c=_0x941b9f[_0x38ce79][_0x01f8('0x72')]?_0x456eaa[_0x941b9f[_0x38ce79][_0x01f8('0x72')]][_0x01f8('0x73')]:_0x941b9f[_0x38ce79][_0x01f8('0x69')];_0x3fa75c=_0x941b9f[_0x38ce79][_0x01f8('0x74')]?_[_0x01f8('0x75')](_0x48bf68[_0x941b9f[_0x38ce79][_0x01f8('0x74')]],'%s',_0x3fa75c):_0x3fa75c;_0x3fa75c=_0x941b9f[_0x38ce79][_0x01f8('0x76')]?_[_0x01f8('0x75')](_0x4ddc14[_0x941b9f[_0x38ce79]['format']],'%s',_0x3fa75c):_0x3fa75c;if(_0x941b9f[_0x38ce79][_0x01f8('0x77')]){_0xbaa87e[_0x01f8('0x68')](_0x3fa75c);}_0x941b9f[_0x38ce79][_0x01f8('0x78')]&&_0xbaa87e[_0x01f8('0x3b')](_0x3fa75c,_0x941b9f[_0x38ce79][_0x01f8('0x78')]===_0x01f8('0x79')?![]:!![]);_0xbaa87e[_0x01f8('0x69')](_0x3fa75c,_0x941b9f[_0x38ce79]['alias']||_0x3fa75c);}if(_0xa5b068[_0x01f8('0x7b')]){_0xa5b068[_0x01f8('0x7b')]=JSON[_0x01f8('0x91')](_0xa5b068[_0x01f8('0x7b')]);for(var _0x3cb003=0x0;_0x3cb003<_0xa5b068[_0x01f8('0x7b')][_0x01f8('0x49')];_0x3cb003+=0x1){if(_0xa5b068[_0x01f8('0x7b')][_0x3cb003][_0x01f8('0x41')]&&_[_0x01f8('0x63')](_0x3f062e,_0xa5b068[_0x01f8('0x7b')][_0x3cb003][_0x01f8('0x41')])&&_0xa5b068[_0x01f8('0x7b')][_0x3cb003][_0x01f8('0x7c')]&&_0xa5b068[_0x01f8('0x7b')][_0x3cb003]['foreignTable']&&_0xa5b068['joins'][_0x3cb003][_0x01f8('0x7e')]){_0xbaa87e[_0xa5b068['joins'][_0x3cb003][_0x01f8('0x41')]](_0xa5b068[_0x01f8('0x7b')][_0x3cb003][_0x01f8('0x7d')],null,util[_0x01f8('0x76')]('%s.%s\x20=\x20%s.%s',_0xa5b068[_0x01f8('0x71')],_0xa5b068['joins'][_0x3cb003]['parentKey'],_0xa5b068[_0x01f8('0x7b')][_0x3cb003][_0x01f8('0x7d')],_0xa5b068[_0x01f8('0x7b')][_0x3cb003][_0x01f8('0x7e')]));}}}if(_0xa5b068[_0x01f8('0x7f')]){_0xa5b068[_0x01f8('0x7f')]=JSON[_0x01f8('0x91')](_0xa5b068[_0x01f8('0x7f')]);_0xbaa87e['where'](_0x5f4748(_0xa5b068[_0x01f8('0x7f')]['group']));}_0x1f5319=_0xbaa87e[_0x01f8('0x80')]();_0xbaa87e[_0x01f8('0x1f')](_0x19033d);_0xbaa87e[_0x01f8('0x1d')](0x0);logger[_0x01f8('0x81')](_0x01f8('0x82'),_0xbaa87e[_0x01f8('0x84')]());return dbH[_0x01f8('0x83')][_0x01f8('0x35')](_0xbaa87e[_0x01f8('0x84')](),{'type':dbH[_0x01f8('0x83')]['QueryTypes']['SELECT']});}})[_0x01f8('0x27')](function(){return{'sql':_0x1f5319['toString']()};})[_0x01f8('0x27')](respondWithResult(_0x54004c,null))[_0x01f8('0x4c')](handleError(_0x54004c,null));};