bc5d20677d53ba094ef3ccb8129a33137eeb58a9
[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 _0x2b70=['toString','sequelize','QueryTypes','SELECT','SUM(%s)','SEC_TO_TIME(%s)','ROUND(%s)','operator','Please\x20insert\x20at\x20least\x20one\x20field','select','output','%s-%s.%s','randomstring','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','Run\x20Query:','fork','../../files/reports','savename','COUNT(*)','runReport','AnalyticMetric','clone','rimraf','fast-json-patch','request-promise','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','reject','save','update','then','destroy','get','CustomReports','UserProfileResource','error','stack','send','index','AnalyticCustomReport','rawAttributes','type','key','model','map','name','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','findAll','keyBy','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','debug','Limited\x20Query:'];(function(_0x2452d4,_0x4ad3ef){var _0x5f27ac=function(_0x482223){while(--_0x482223){_0x2452d4['push'](_0x2452d4['shift']());}};_0x5f27ac(++_0x4ad3ef);}(_0x2b70,0xc0));var _0x02b7=function(_0x4547d5,_0x91d898){_0x4547d5=_0x4547d5-0x0;var _0x81ad1f=_0x2b70[_0x4547d5];return _0x81ad1f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x02b7('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x02b7('0x1'));var rp=require(_0x02b7('0x2'));var moment=require('moment');var BPromise=require(_0x02b7('0x3'));var Mustache=require('mustache');var util=require(_0x02b7('0x4'));var path=require('path');var sox=require(_0x02b7('0x5'));var csv=require(_0x02b7('0x6'));var ejs=require(_0x02b7('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x02b7('0x8'));var squel=require(_0x02b7('0x9'));var crypto=require(_0x02b7('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x02b7('0x6'));var querystring=require(_0x02b7('0xb'));var Papa=require(_0x02b7('0xc'));var Redis=require(_0x02b7('0xd'));var authService=require(_0x02b7('0xe'));var qs=require(_0x02b7('0xf'));var as=require(_0x02b7('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x02b7('0x11'))(_0x02b7('0x12'));var utils=require('../../config/utils');var config=require(_0x02b7('0x13'));var licenseUtil=require(_0x02b7('0x14'));var db=require('../../mysqldb')['db'];var dbH=require(_0x02b7('0x15'))[_0x02b7('0x16')];function respondWithStatusCode(_0x39491a,_0x4554fc){_0x4554fc=_0x4554fc||0xcc;return function(_0x47af4b){if(_0x47af4b){return _0x39491a[_0x02b7('0x17')](_0x4554fc);}return _0x39491a['status'](_0x4554fc)[_0x02b7('0x18')]();};}function respondWithResult(_0x531043,_0x50f094){_0x50f094=_0x50f094||0xc8;return function(_0x4e5dc5){if(_0x4e5dc5){return _0x531043[_0x02b7('0x19')](_0x50f094)[_0x02b7('0x1a')](_0x4e5dc5);}};}function respondWithFilteredResult(_0x5aac92,_0x5d5ef3){return function(_0x1afe35){if(_0x1afe35){var _0x4124b1=typeof _0x5d5ef3[_0x02b7('0x1b')]===_0x02b7('0x1c')&&typeof _0x5d5ef3[_0x02b7('0x1d')]===_0x02b7('0x1c');var _0xcef925=_0x1afe35[_0x02b7('0x1e')];var _0x19ac85=_0x4124b1?0x0:_0x5d5ef3[_0x02b7('0x1b')];var _0x1fe5a1=_0x4124b1?_0x1afe35[_0x02b7('0x1e')]:_0x5d5ef3['offset']+_0x5d5ef3[_0x02b7('0x1d')];var _0x586ddb;if(_0x1fe5a1>=_0xcef925){_0x1fe5a1=_0xcef925;_0x586ddb=0xc8;}else{_0x586ddb=0xce;}_0x5aac92[_0x02b7('0x19')](_0x586ddb);return _0x5aac92['set'](_0x02b7('0x1f'),_0x19ac85+'-'+_0x1fe5a1+'/'+_0xcef925)[_0x02b7('0x1a')](_0x1afe35);}return null;};}function patchUpdates(_0x6fb2da){return function(_0x5c1736){try{jsonpatch['apply'](_0x5c1736,_0x6fb2da,!![]);}catch(_0x4cafcc){return BPromise[_0x02b7('0x20')](_0x4cafcc);}return _0x5c1736[_0x02b7('0x21')]();};}function saveUpdates(_0x418847,_0x5228f4){return function(_0x208ef0){if(_0x208ef0){return _0x208ef0[_0x02b7('0x22')](_0x418847)[_0x02b7('0x23')](function(_0x4462a9){return _0x4462a9;});}return null;};}function removeEntity(_0x18c71d,_0x2f66d8){return function(_0xe4c8e2){if(_0xe4c8e2){return _0xe4c8e2[_0x02b7('0x24')]()[_0x02b7('0x23')](function(){var _0x138851=_0xe4c8e2[_0x02b7('0x25')]({'plain':!![]});var _0x408483=_0x02b7('0x26');return db[_0x02b7('0x27')][_0x02b7('0x24')]({'where':{'type':_0x408483,'resourceId':_0x138851['id']}})['then'](function(){return _0xe4c8e2;});})[_0x02b7('0x23')](function(){_0x18c71d[_0x02b7('0x19')](0xcc)[_0x02b7('0x18')]();});}};}function handleEntityNotFound(_0x5ea42f,_0x5543be){return function(_0x2fa2b0){if(!_0x2fa2b0){_0x5ea42f[_0x02b7('0x17')](0x194);}return _0x2fa2b0;};}function handleError(_0x55a5a3,_0x3c6a6a){_0x3c6a6a=_0x3c6a6a||0x1f4;return function(_0x5f20a3){logger[_0x02b7('0x28')](_0x5f20a3[_0x02b7('0x29')]);if(_0x5f20a3['name']){delete _0x5f20a3['name'];}_0x55a5a3['status'](_0x3c6a6a)[_0x02b7('0x2a')](_0x5f20a3);};}exports[_0x02b7('0x2b')]=function(_0x206f2d,_0x46fd93){var _0x3dd543={},_0x44d0d8={},_0x23b0d4={'count':0x0,'rows':[]};var _0x485368=_['map'](db[_0x02b7('0x2c')][_0x02b7('0x2d')],function(_0x277489){return{'name':_0x277489['fieldName'],'type':_0x277489[_0x02b7('0x2e')][_0x02b7('0x2f')]};});_0x44d0d8[_0x02b7('0x30')]=_[_0x02b7('0x31')](_0x485368,_0x02b7('0x32'));_0x44d0d8['query']=_[_0x02b7('0x33')](_0x206f2d[_0x02b7('0x34')]);_0x44d0d8['filters']=_[_0x02b7('0x35')](_0x44d0d8[_0x02b7('0x30')],_0x44d0d8['query']);_0x3dd543[_0x02b7('0x36')]=_[_0x02b7('0x35')](_0x44d0d8[_0x02b7('0x30')],qs[_0x02b7('0x37')](_0x206f2d[_0x02b7('0x34')][_0x02b7('0x37')]));_0x3dd543['attributes']=_0x3dd543[_0x02b7('0x36')][_0x02b7('0x38')]?_0x3dd543[_0x02b7('0x36')]:_0x44d0d8[_0x02b7('0x30')];if(!_0x206f2d[_0x02b7('0x34')][_0x02b7('0x39')](_0x02b7('0x3a'))){_0x3dd543[_0x02b7('0x1d')]=qs[_0x02b7('0x1d')](_0x206f2d['query'][_0x02b7('0x1d')]);_0x3dd543['offset']=qs[_0x02b7('0x1b')](_0x206f2d[_0x02b7('0x34')][_0x02b7('0x1b')]);}_0x3dd543[_0x02b7('0x3b')]=qs[_0x02b7('0x3c')](_0x206f2d[_0x02b7('0x34')]['sort']);_0x3dd543[_0x02b7('0x3d')]=qs[_0x02b7('0x3e')](_[_0x02b7('0x3f')](_0x206f2d['query'],_0x44d0d8['filters']),_0x485368);if(_0x206f2d[_0x02b7('0x34')][_0x02b7('0x40')]){_0x3dd543[_0x02b7('0x3d')]=_[_0x02b7('0x41')](_0x3dd543[_0x02b7('0x3d')],{'$or':_[_0x02b7('0x31')](_0x485368,function(_0x2b367f){if(_0x2b367f[_0x02b7('0x2e')]!==_0x02b7('0x42')){var _0x56a1b2={};_0x56a1b2[_0x2b367f[_0x02b7('0x32')]]={'$like':'%'+_0x206f2d[_0x02b7('0x34')][_0x02b7('0x40')]+'%'};return _0x56a1b2;}})});}_0x3dd543=_['merge']({},_0x3dd543,_0x206f2d[_0x02b7('0x43')]);var _0xf26f32={'where':_0x3dd543['where']};return db[_0x02b7('0x2c')][_0x02b7('0x1e')](_0xf26f32)[_0x02b7('0x23')](function(_0x4fee4e){_0x23b0d4[_0x02b7('0x1e')]=_0x4fee4e;if(_0x206f2d[_0x02b7('0x34')][_0x02b7('0x44')]){_0x3dd543[_0x02b7('0x45')]=[{'all':!![]}];}return db[_0x02b7('0x2c')]['findAll'](_0x3dd543);})[_0x02b7('0x23')](function(_0x3b8278){_0x23b0d4[_0x02b7('0x46')]=_0x3b8278;return _0x23b0d4;})[_0x02b7('0x23')](respondWithFilteredResult(_0x46fd93,_0x3dd543))[_0x02b7('0x47')](handleError(_0x46fd93,null));};exports[_0x02b7('0x48')]=function(_0x9c0da0,_0xffff47){var _0x3273cf={'raw':![],'where':{'id':_0x9c0da0[_0x02b7('0x49')]['id']}},_0x579db2={};_0x579db2[_0x02b7('0x30')]=_['keys'](db[_0x02b7('0x2c')][_0x02b7('0x2d')]);_0x579db2[_0x02b7('0x34')]=_[_0x02b7('0x33')](_0x9c0da0[_0x02b7('0x34')]);_0x579db2[_0x02b7('0x3e')]=_['intersection'](_0x579db2['model'],_0x579db2[_0x02b7('0x34')]);_0x3273cf[_0x02b7('0x36')]=_[_0x02b7('0x35')](_0x579db2[_0x02b7('0x30')],qs['fields'](_0x9c0da0[_0x02b7('0x34')]['fields']));_0x3273cf[_0x02b7('0x36')]=_0x3273cf['attributes'][_0x02b7('0x38')]?_0x3273cf[_0x02b7('0x36')]:_0x579db2[_0x02b7('0x30')];if(_0x9c0da0[_0x02b7('0x34')][_0x02b7('0x44')]){_0x3273cf[_0x02b7('0x45')]=[{'all':!![]}];}_0x3273cf=_[_0x02b7('0x41')]({},_0x3273cf,_0x9c0da0['options']);return db[_0x02b7('0x2c')][_0x02b7('0x4a')](_0x3273cf)[_0x02b7('0x23')](handleEntityNotFound(_0xffff47,null))[_0x02b7('0x23')](respondWithResult(_0xffff47,null))['catch'](handleError(_0xffff47,null));};exports[_0x02b7('0x4b')]=function(_0x367c4b,_0x454feb){return db[_0x02b7('0x2c')][_0x02b7('0x4b')](_0x367c4b[_0x02b7('0x4c')],{})[_0x02b7('0x23')](function(_0x588439){var _0x5dbbfb=_0x367c4b[_0x02b7('0x4d')]['get']({'plain':!![]});if(!_0x5dbbfb)throw new Error(_0x02b7('0x4e'));if(_0x5dbbfb['role']===_0x02b7('0x4d')){var _0x1c579f=_0x588439[_0x02b7('0x25')]({'plain':!![]});var _0x1f4876=_0x02b7('0x4f');return db[_0x02b7('0x50')][_0x02b7('0x4a')]({'where':{'name':_0x1f4876,'userProfileId':_0x5dbbfb[_0x02b7('0x51')]},'raw':!![]})[_0x02b7('0x23')](function(_0x288ae6){if(_0x288ae6&&_0x288ae6['autoAssociation']===0x0){return db[_0x02b7('0x27')][_0x02b7('0x4b')]({'name':_0x1c579f[_0x02b7('0x32')],'resourceId':_0x1c579f['id'],'type':_0x02b7('0x26'),'sectionId':_0x288ae6['id']},{})[_0x02b7('0x23')](function(){return _0x588439;});}else{return _0x588439;}})[_0x02b7('0x47')](function(_0x489317){logger[_0x02b7('0x28')](_0x02b7('0x52'),_0x489317);throw _0x489317;});}return _0x588439;})[_0x02b7('0x23')](respondWithResult(_0x454feb,0xc9))[_0x02b7('0x47')](handleError(_0x454feb,null));};exports[_0x02b7('0x22')]=function(_0x228d53,_0x2f6275){if(_0x228d53[_0x02b7('0x4c')]['id']){delete _0x228d53[_0x02b7('0x4c')]['id'];}return db['AnalyticCustomReport'][_0x02b7('0x4a')]({'where':{'id':_0x228d53[_0x02b7('0x49')]['id']}})[_0x02b7('0x23')](handleEntityNotFound(_0x2f6275,null))['then'](saveUpdates(_0x228d53[_0x02b7('0x4c')],null))[_0x02b7('0x23')](respondWithResult(_0x2f6275,null))[_0x02b7('0x47')](handleError(_0x2f6275,null));};exports[_0x02b7('0x24')]=function(_0x3d5dc5,_0x4ef949){return db['AnalyticCustomReport']['find']({'where':{'id':_0x3d5dc5[_0x02b7('0x49')]['id']}})['then'](handleEntityNotFound(_0x4ef949,null))[_0x02b7('0x23')](removeEntity(_0x4ef949,null))['catch'](handleError(_0x4ef949,null));};exports[_0x02b7('0x53')]=function(_0x1ad092,_0x2d041b){var _0xa52f09=0xa;var _0x202a44=[_0x02b7('0x54'),_0x02b7('0x55'),_0x02b7('0x56'),_0x02b7('0x57')];var _0x7e13e8={'SUM':'SUM(%s)','COUNT':_0x02b7('0x58'),'COUNT DISTINCT':_0x02b7('0x59'),'MAX':_0x02b7('0x5a'),'MIN':_0x02b7('0x5b'),'AVG':_0x02b7('0x5c'),'GROUP_CONCAT':_0x02b7('0x5d'),'GROUP_CONCAT ASC':_0x02b7('0x5e'),'GROUP_CONCAT DESC':_0x02b7('0x5f')};var _0x1984dc={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x02b7('0x60'),'HOUR':_0x02b7('0x61'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x02b7('0x62')};var _0x2955ef=function(_0x9cb996){return!_[_0x02b7('0x63')]([_0x02b7('0x64'),_0x02b7('0x65'),_0x02b7('0x66'),_0x02b7('0x67')],_0x9cb996);};var _0x287e79=function(_0x14dbca){if(!_0x14dbca||!_0x14dbca['rules']['length']){return'';}for(var _0x4bd498='(',_0xb5028a=0x0;_0xb5028a<_0x14dbca[_0x02b7('0x68')]['length'];_0xb5028a+=0x1){_0xb5028a>0x0&&(_0x4bd498+='\x20'+_0x14dbca['operator']+'\x20');_0x4bd498+=_0x14dbca['rules'][_0xb5028a]['group']?_0x287e79(_0x14dbca[_0x02b7('0x68')][_0xb5028a][_0x02b7('0x69')]):_0x14dbca[_0x02b7('0x68')][_0xb5028a][_0x02b7('0x6a')]+'\x20'+_0x14dbca['rules'][_0xb5028a][_0x02b7('0x6b')]+(_0x2955ef(_0x14dbca[_0x02b7('0x68')][_0xb5028a][_0x02b7('0x6b')])?'\x20'+_0x14dbca[_0x02b7('0x68')][_0xb5028a][_0x02b7('0x6c')]:'');}return _0x4bd498+')';};var _0x170dff={'where':{'id':_0x1ad092[_0x02b7('0x49')]['id']}},_0xea8fd5,_0x401b32,_0x872e1e,_0x5bfb8c,_0x5daa3e;_0x170dff=_[_0x02b7('0x41')]({},_0x170dff,_0x1ad092[_0x02b7('0x43')]);return db[_0x02b7('0x2c')][_0x02b7('0x4a')](_0x170dff)[_0x02b7('0x23')](function(_0x3cd771){if(_0x3cd771){_0xea8fd5=_0x3cd771;return _0x3cd771[_0x02b7('0x6d')]();}return null;})['then'](function(_0x36cbab){if(_0x36cbab){if(!_0x36cbab[_0x02b7('0x38')]){throw new db[(_0x02b7('0x6e'))][(_0x02b7('0x6f'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x401b32=_0x36cbab;return db['AnalyticMetric'][_0x02b7('0x70')]({'raw':!![]});}return null;})[_0x02b7('0x23')](function(_0x544ad4){if(_0x544ad4){_0x872e1e=_[_0x02b7('0x71')](_0x544ad4,'id');var _0x1f01aa;var _0x401265=squel['select']();_0x401265[_0x02b7('0x72')](_0xea8fd5[_0x02b7('0x73')]);for(var _0x264fdb=0x0;_0x264fdb<_0x401b32['length'];_0x264fdb+=0x1){_0x1f01aa=_0x401b32[_0x264fdb][_0x02b7('0x74')]?_0x872e1e[_0x401b32[_0x264fdb][_0x02b7('0x74')]][_0x02b7('0x75')]:_0x401b32[_0x264fdb][_0x02b7('0x6a')];_0x1f01aa=_0x401b32[_0x264fdb][_0x02b7('0x76')]?_[_0x02b7('0x77')](_0x7e13e8[_0x401b32[_0x264fdb]['function']],'%s',_0x1f01aa):_0x1f01aa;_0x1f01aa=_0x401b32[_0x264fdb][_0x02b7('0x78')]?_[_0x02b7('0x77')](_0x1984dc[_0x401b32[_0x264fdb][_0x02b7('0x78')]],'%s',_0x1f01aa):_0x1f01aa;if(_0x401b32[_0x264fdb][_0x02b7('0x79')]){_0x401265['group'](_0x1f01aa);}_0x401b32[_0x264fdb][_0x02b7('0x7a')]&&_0x401265['order'](_0x1f01aa,_0x401b32[_0x264fdb]['orderBy']===_0x02b7('0x7b')?![]:!![]);_0x401265[_0x02b7('0x6a')](_0x1f01aa,_0x401b32[_0x264fdb][_0x02b7('0x7c')]||_0x1f01aa);}if(_0xea8fd5[_0x02b7('0x7d')]){_0xea8fd5[_0x02b7('0x7d')]=JSON[_0x02b7('0x7e')](_0xea8fd5[_0x02b7('0x7d')]);for(var _0x476b43=0x0;_0x476b43<_0xea8fd5['joins']['length'];_0x476b43+=0x1){if(_0xea8fd5['joins'][_0x476b43][_0x02b7('0x2e')]&&_[_0x02b7('0x63')](_0x202a44,_0xea8fd5[_0x02b7('0x7d')][_0x476b43][_0x02b7('0x2e')])&&_0xea8fd5['joins'][_0x476b43][_0x02b7('0x7f')]&&_0xea8fd5[_0x02b7('0x7d')][_0x476b43]['foreignTable']&&_0xea8fd5[_0x02b7('0x7d')][_0x476b43][_0x02b7('0x80')]){_0x401265[_0xea8fd5[_0x02b7('0x7d')][_0x476b43][_0x02b7('0x2e')]](_0xea8fd5['joins'][_0x476b43][_0x02b7('0x81')],null,util[_0x02b7('0x78')](_0x02b7('0x82'),_0xea8fd5['table'],_0xea8fd5[_0x02b7('0x7d')][_0x476b43]['parentKey'],_0xea8fd5[_0x02b7('0x7d')][_0x476b43][_0x02b7('0x81')],_0xea8fd5[_0x02b7('0x7d')][_0x476b43][_0x02b7('0x80')]));}}}if(_0xea8fd5['conditions']){_0xea8fd5['conditions']=JSON['parse'](_0xea8fd5[_0x02b7('0x83')]);_0x401265[_0x02b7('0x3d')](_0x287e79(_0xea8fd5['conditions'][_0x02b7('0x69')]));}_0x5daa3e=_0x401265['clone']();_0x401265[_0x02b7('0x1d')](_0xa52f09);_0x401265[_0x02b7('0x1b')](0x0);logger[_0x02b7('0x84')](_0x02b7('0x85'),_0x401265[_0x02b7('0x86')]());return dbH[_0x02b7('0x87')][_0x02b7('0x34')](_0x401265[_0x02b7('0x86')](),{'type':dbH['sequelize'][_0x02b7('0x88')][_0x02b7('0x89')]});}})[_0x02b7('0x23')](respondWithResult(_0x2d041b,null))['catch'](handleError(_0x2d041b,null));};function runReport(_0x460acf,_0x19eba3,_0x2b5816){var _0x7db747=_0x19eba3['name'];var _0x44e510=0xa;var _0x3edae4=[_0x02b7('0x54'),_0x02b7('0x55'),_0x02b7('0x56'),_0x02b7('0x57')];var _0x3366e6={'SUM':_0x02b7('0x8a'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x02b7('0x59'),'MAX':_0x02b7('0x5a'),'MIN':_0x02b7('0x5b'),'AVG':_0x02b7('0x5c'),'GROUP_CONCAT':_0x02b7('0x5d'),'GROUP_CONCAT ASC':_0x02b7('0x5e'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2d719d={'SEC_TO_TIME':_0x02b7('0x8b'),'DATE':_0x02b7('0x60'),'HOUR':_0x02b7('0x61'),'ROUND':_0x02b7('0x8c'),'UNIX_TIMESTAMP':_0x02b7('0x62')};var _0x1809e5=function(_0x51134e){return!_['includes']([_0x02b7('0x64'),_0x02b7('0x65'),_0x02b7('0x66'),_0x02b7('0x67')],_0x51134e);};var _0x13164f=function(_0x595231){if(!_0x595231||!_0x595231['rules']['length']){return'';}for(var _0x252841='(',_0x1f3c24=0x0;_0x1f3c24<_0x595231[_0x02b7('0x68')][_0x02b7('0x38')];_0x1f3c24+=0x1){_0x1f3c24>0x0&&(_0x252841+='\x20'+_0x595231[_0x02b7('0x8d')]+'\x20');_0x252841+=_0x595231[_0x02b7('0x68')][_0x1f3c24][_0x02b7('0x69')]?_0x13164f(_0x595231['rules'][_0x1f3c24]['group']):_0x595231[_0x02b7('0x68')][_0x1f3c24]['field']+'\x20'+_0x595231[_0x02b7('0x68')][_0x1f3c24][_0x02b7('0x6b')]+(_0x1809e5(_0x595231[_0x02b7('0x68')][_0x1f3c24][_0x02b7('0x6b')])?'\x20'+_0x595231[_0x02b7('0x68')][_0x1f3c24][_0x02b7('0x6c')]:'');}return _0x252841+')';};var _0x36415c={'where':{'id':_0x460acf['id']}},_0xf8907b,_0x126694,_0x564ba0,_0x2eaf31,_0x1badcb;_0x36415c=_[_0x02b7('0x41')]({},_0x36415c,_0x2b5816);return db[_0x02b7('0x2c')][_0x02b7('0x4a')](_0x36415c)[_0x02b7('0x23')](function(_0x71bb6){if(_0x71bb6){_0xf8907b=_0x71bb6;return _0x71bb6[_0x02b7('0x6d')]();}return null;})[_0x02b7('0x23')](function(_0x1e38d5){if(_0x1e38d5){if(!_0x1e38d5[_0x02b7('0x38')]){throw new db[(_0x02b7('0x6e'))]['ValidationErrorItem'](_0x02b7('0x8e'),0x193);}_0x126694=_0x1e38d5;return db['AnalyticMetric'][_0x02b7('0x70')]({'raw':!![]});}return null;})[_0x02b7('0x23')](function(_0x542d79){if(_0x542d79){_0x564ba0=_[_0x02b7('0x71')](_0x542d79,'id');var _0x4adcea;var _0x3d39ee=squel[_0x02b7('0x8f')]();_0x3d39ee['from'](_0xf8907b[_0x02b7('0x73')]);for(var _0x45657e=0x0;_0x45657e<_0x126694[_0x02b7('0x38')];_0x45657e+=0x1){_0x4adcea=_0x126694[_0x45657e][_0x02b7('0x74')]?_0x564ba0[_0x126694[_0x45657e]['MetricId']][_0x02b7('0x75')]:_0x126694[_0x45657e]['field'];_0x4adcea=_0x126694[_0x45657e][_0x02b7('0x76')]?_[_0x02b7('0x77')](_0x3366e6[_0x126694[_0x45657e][_0x02b7('0x76')]],'%s',_0x4adcea):_0x4adcea;_0x4adcea=_0x126694[_0x45657e][_0x02b7('0x78')]?_[_0x02b7('0x77')](_0x2d719d[_0x126694[_0x45657e][_0x02b7('0x78')]],'%s',_0x4adcea):_0x4adcea;if(_0x126694[_0x45657e][_0x02b7('0x79')]){_0x3d39ee['group'](_0x4adcea);}_0x126694[_0x45657e][_0x02b7('0x7a')]&&_0x3d39ee['order'](_0x4adcea,_0x126694[_0x45657e][_0x02b7('0x7a')]==='DESC'?![]:!![]);_0x3d39ee[_0x02b7('0x6a')](_0x4adcea,_0x126694[_0x45657e][_0x02b7('0x7c')]||_0x4adcea);}if(_0xf8907b[_0x02b7('0x7d')]){_0xf8907b[_0x02b7('0x7d')]=JSON['parse'](_0xf8907b[_0x02b7('0x7d')]);for(var _0x1c2a7c=0x0;_0x1c2a7c<_0xf8907b[_0x02b7('0x7d')][_0x02b7('0x38')];_0x1c2a7c+=0x1){if(_0xf8907b[_0x02b7('0x7d')][_0x1c2a7c][_0x02b7('0x2e')]&&_['includes'](_0x3edae4,_0xf8907b['joins'][_0x1c2a7c][_0x02b7('0x2e')])&&_0xf8907b[_0x02b7('0x7d')][_0x1c2a7c][_0x02b7('0x7f')]&&_0xf8907b[_0x02b7('0x7d')][_0x1c2a7c]['foreignTable']&&_0xf8907b['joins'][_0x1c2a7c][_0x02b7('0x80')]){_0x3d39ee[_0xf8907b[_0x02b7('0x7d')][_0x1c2a7c][_0x02b7('0x2e')]](_0xf8907b[_0x02b7('0x7d')][_0x1c2a7c][_0x02b7('0x81')],null,util['format'](_0x02b7('0x82'),_0xf8907b[_0x02b7('0x73')],_0xf8907b[_0x02b7('0x7d')][_0x1c2a7c]['parentKey'],_0xf8907b[_0x02b7('0x7d')][_0x1c2a7c]['foreignTable'],_0xf8907b[_0x02b7('0x7d')][_0x1c2a7c]['foreignKey']));}}}if(_0xf8907b[_0x02b7('0x83')]){_0xf8907b[_0x02b7('0x83')]=JSON[_0x02b7('0x7e')](_0xf8907b[_0x02b7('0x83')]);_0x3d39ee[_0x02b7('0x3d')](_0x13164f(_0xf8907b[_0x02b7('0x83')]['group']));}_0x1badcb=_0x3d39ee['clone']();_0x3d39ee[_0x02b7('0x1d')](_0x44e510);_0x3d39ee[_0x02b7('0x1b')](0x0);return;}})[_0x02b7('0x23')](function(){if(_0x19eba3[_0x02b7('0x90')]==='web'){return null;}var _0x26be8d=_[_0x02b7('0x41')](_0x19eba3,{'name':_0x19eba3['fullPath']||_0x19eba3[_0x02b7('0x32')]||_0xf8907b[_0x02b7('0x32')],'basename':_0x7db747,'savename':util[_0x02b7('0x78')](_0x02b7('0x91'),_0x19eba3['name']||_0xf8907b[_0x02b7('0x32')],require(_0x02b7('0x92'))['generate'](0x4),_0x19eba3[_0x02b7('0x90')]||_0x02b7('0x93')),'reportId':_0xf8907b['id'],'reportType':_0x02b7('0x94')});return db[_0x02b7('0x95')][_0x02b7('0x4b')](_0x26be8d,{'raw':!![]});})[_0x02b7('0x23')](function(_0x2cf701){if(_0xf8907b[_0x02b7('0x73')]===_0x02b7('0x96')){_0x1badcb['where'](_0xf8907b[_0x02b7('0x73')]+_0x02b7('0x97'),_0x19eba3['startDate'],_0x19eba3[_0x02b7('0x98')]);}else{_0x1badcb[_0x02b7('0x3d')](_0xf8907b[_0x02b7('0x73')]+_0x02b7('0x99'),_0x19eba3[_0x02b7('0x9a')],_0x19eba3[_0x02b7('0x98')]);}if(_0x2cf701){logger['info'](_0x02b7('0x9b'),_0x1badcb['toString']());require('child_process')[_0x02b7('0x9c')](path[_0x02b7('0x54')](__dirname,'../../components/export/',_0x2cf701[_0x02b7('0x90')]),[_0x2cf701['id'],_0x1badcb[_0x02b7('0x86')](),path[_0x02b7('0x54')](__dirname,_0x02b7('0x9d'),_0x2cf701[_0x02b7('0x9e')]),_0x7db747]);return _0x2cf701;}else{var _0x572acf=squel[_0x02b7('0x8f')]();_0x572acf[_0x02b7('0x72')]('('+_0x1badcb['toString']()+')','countTable');_0x572acf[_0x02b7('0x6a')](_0x02b7('0x9f'),'count');_0x1badcb[_0x02b7('0x1d')](_0x19eba3['limit']||_0x44e510);_0x1badcb[_0x02b7('0x1b')](_0x19eba3['offset']||0x0);return dbH['sequelize'][_0x02b7('0x34')](_0x572acf[_0x02b7('0x86')](),{'type':dbH[_0x02b7('0x87')][_0x02b7('0x88')][_0x02b7('0x89')]})['then'](function(_0x5b8745){if(!_0x5b8745[_0x02b7('0x38')]){_0x2eaf31=0x0;}else{_0x2eaf31=_0x5b8745[0x0]['count']||0x0;}return dbH['sequelize'][_0x02b7('0x34')](_0x1badcb[_0x02b7('0x86')](),{'type':dbH['sequelize'][_0x02b7('0x88')][_0x02b7('0x89')]});})[_0x02b7('0x23')](function(_0x13caa5){return{'rows':_0x13caa5||[],'count':_0x2eaf31};});}});}exports['run']=function(_0x2aed11,_0xe25770){return runReport(_0x2aed11[_0x02b7('0x49')],_0x2aed11[_0x02b7('0x34')],_0x2aed11[_0x02b7('0x43')])[_0x02b7('0x23')](respondWithResult(_0xe25770,null))[_0x02b7('0x47')](handleError(_0xe25770,null));};exports[_0x02b7('0xa0')]=runReport;exports[_0x02b7('0x34')]=function(_0x31761e,_0x4dde4b){var _0x10dd4c=0xa;var _0x16c7a5=[_0x02b7('0x54'),'left_join',_0x02b7('0x56'),_0x02b7('0x57')];var _0x3e451d={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x02b7('0x5a'),'MIN':_0x02b7('0x5b'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x02b7('0x5d'),'GROUP_CONCAT ASC':_0x02b7('0x5e'),'GROUP_CONCAT DESC':_0x02b7('0x5f')};var _0x46bd40={'SEC_TO_TIME':_0x02b7('0x8b'),'DATE':'DATE(%s)','HOUR':_0x02b7('0x61'),'ROUND':_0x02b7('0x8c'),'UNIX_TIMESTAMP':_0x02b7('0x62')};var _0x1697a0=function(_0x7988c1){return!_['includes']([_0x02b7('0x64'),'IS\x20NOT\x20NULL',_0x02b7('0x66'),_0x02b7('0x67')],_0x7988c1);};var _0x2ae9d3=function(_0x883095){if(!_0x883095||!_0x883095[_0x02b7('0x68')]['length']){return'';}for(var _0x23a254='(',_0x935f9=0x0;_0x935f9<_0x883095[_0x02b7('0x68')]['length'];_0x935f9+=0x1){_0x935f9>0x0&&(_0x23a254+='\x20'+_0x883095[_0x02b7('0x8d')]+'\x20');_0x23a254+=_0x883095[_0x02b7('0x68')][_0x935f9][_0x02b7('0x69')]?_0x2ae9d3(_0x883095[_0x02b7('0x68')][_0x935f9]['group']):_0x883095[_0x02b7('0x68')][_0x935f9][_0x02b7('0x6a')]+'\x20'+_0x883095['rules'][_0x935f9][_0x02b7('0x6b')]+(_0x1697a0(_0x883095[_0x02b7('0x68')][_0x935f9]['condition'])?'\x20'+_0x883095['rules'][_0x935f9][_0x02b7('0x6c')]:'');}return _0x23a254+')';};var _0x19fd21={'where':{'id':_0x31761e[_0x02b7('0x49')]['id']}},_0x2a01e4,_0x598d9c,_0x52288a,_0x27f080,_0xdd30b4;_0x19fd21=_['merge']({},_0x19fd21,_0x31761e[_0x02b7('0x43')]);return db[_0x02b7('0x2c')][_0x02b7('0x4a')](_0x19fd21)['then'](function(_0x5d7744){if(_0x5d7744){_0x2a01e4=_0x5d7744;return _0x5d7744[_0x02b7('0x6d')]();}return null;})['then'](function(_0x4be029){if(_0x4be029){if(!_0x4be029['length']){throw new db[(_0x02b7('0x6e'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x598d9c=_0x4be029;return db[_0x02b7('0xa1')][_0x02b7('0x70')]({'raw':!![]});}return null;})[_0x02b7('0x23')](function(_0x4e2737){if(_0x4e2737){_0x52288a=_[_0x02b7('0x71')](_0x4e2737,'id');var _0x37e535;var _0x4eed59=squel['select']();_0x4eed59['from'](_0x2a01e4[_0x02b7('0x73')]);for(var _0x3492bd=0x0;_0x3492bd<_0x598d9c[_0x02b7('0x38')];_0x3492bd+=0x1){_0x37e535=_0x598d9c[_0x3492bd][_0x02b7('0x74')]?_0x52288a[_0x598d9c[_0x3492bd]['MetricId']][_0x02b7('0x75')]:_0x598d9c[_0x3492bd]['field'];_0x37e535=_0x598d9c[_0x3492bd][_0x02b7('0x76')]?_['replace'](_0x3e451d[_0x598d9c[_0x3492bd][_0x02b7('0x76')]],'%s',_0x37e535):_0x37e535;_0x37e535=_0x598d9c[_0x3492bd][_0x02b7('0x78')]?_[_0x02b7('0x77')](_0x46bd40[_0x598d9c[_0x3492bd]['format']],'%s',_0x37e535):_0x37e535;if(_0x598d9c[_0x3492bd][_0x02b7('0x79')]){_0x4eed59['group'](_0x37e535);}_0x598d9c[_0x3492bd][_0x02b7('0x7a')]&&_0x4eed59[_0x02b7('0x3b')](_0x37e535,_0x598d9c[_0x3492bd]['orderBy']===_0x02b7('0x7b')?![]:!![]);_0x4eed59['field'](_0x37e535,_0x598d9c[_0x3492bd]['alias']||_0x37e535);}if(_0x2a01e4['joins']){_0x2a01e4[_0x02b7('0x7d')]=JSON[_0x02b7('0x7e')](_0x2a01e4[_0x02b7('0x7d')]);for(var _0x5f1f0d=0x0;_0x5f1f0d<_0x2a01e4[_0x02b7('0x7d')][_0x02b7('0x38')];_0x5f1f0d+=0x1){if(_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d][_0x02b7('0x2e')]&&_['includes'](_0x16c7a5,_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d][_0x02b7('0x2e')])&&_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d][_0x02b7('0x7f')]&&_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d][_0x02b7('0x81')]&&_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d][_0x02b7('0x80')]){_0x4eed59[_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d]['type']](_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d][_0x02b7('0x81')],null,util[_0x02b7('0x78')](_0x02b7('0x82'),_0x2a01e4['table'],_0x2a01e4['joins'][_0x5f1f0d][_0x02b7('0x7f')],_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d][_0x02b7('0x81')],_0x2a01e4[_0x02b7('0x7d')][_0x5f1f0d][_0x02b7('0x80')]));}}}if(_0x2a01e4[_0x02b7('0x83')]){_0x2a01e4['conditions']=JSON['parse'](_0x2a01e4['conditions']);_0x4eed59['where'](_0x2ae9d3(_0x2a01e4[_0x02b7('0x83')][_0x02b7('0x69')]));}_0xdd30b4=_0x4eed59[_0x02b7('0xa2')]();_0x4eed59[_0x02b7('0x1d')](_0x10dd4c);_0x4eed59[_0x02b7('0x1b')](0x0);logger['debug'](_0x02b7('0x85'),_0x4eed59[_0x02b7('0x86')]());return dbH[_0x02b7('0x87')][_0x02b7('0x34')](_0x4eed59[_0x02b7('0x86')](),{'type':dbH['sequelize']['QueryTypes'][_0x02b7('0x89')]});}})[_0x02b7('0x23')](function(){return{'sql':_0xdd30b4[_0x02b7('0x86')]()};})[_0x02b7('0x23')](respondWithResult(_0x4dde4b,null))[_0x02b7('0x47')](handleError(_0x4dde4b,null));};