Built motion from commit fe909640.|2.6.8
[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 _0x69c4=['../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','update','then','destroy','CustomReports','UserProfileResource','error','name','send','index','map','rawAttributes','type','model','query','keys','filters','fields','attributes','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','AnalyticCustomReport','includeAll','findAll','catch','show','length','include','find','create','body','role','user','get','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','preview','left_join','SUM(%s)','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','Sequelize','ValidationErrorItem','AnalyticMetric','select','from','table','MetricId','metric','function','format','replace','groupBy','DESC','alias','joins','parse','foreignKey','foreignTable','parentKey','clone','debug','Limited\x20Query:','sequelize','toString','SELECT','join','right_join','cross_join','COUNT(%s)','MIN(%s)','SEC_TO_TIME(%s)','value','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','orderBy','%s.%s\x20=\x20%s.%s','conditions','output','fullPath','%s-%s.%s','generate','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','child_process','fork','../../files/reports','savename','countTable','COUNT(*)','QueryTypes','run','runReport','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x3ea913,_0x255df2){var _0x2b4f28=function(_0x48bb25){while(--_0x48bb25){_0x3ea913['push'](_0x3ea913['shift']());}};_0x2b4f28(++_0x255df2);}(_0x69c4,0x1d9));var _0x469c=function(_0x14d3f5,_0x1f83ac){_0x14d3f5=_0x14d3f5-0x0;var _0x4e725f=_0x69c4[_0x14d3f5];return _0x4e725f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x469c('0x0'));var jsonpatch=require(_0x469c('0x1'));var rp=require(_0x469c('0x2'));var moment=require('moment');var BPromise=require(_0x469c('0x3'));var Mustache=require(_0x469c('0x4'));var util=require(_0x469c('0x5'));var path=require(_0x469c('0x6'));var sox=require(_0x469c('0x7'));var csv=require(_0x469c('0x8'));var ejs=require(_0x469c('0x9'));var fs=require('fs');var fs_extra=require(_0x469c('0xa'));var _=require(_0x469c('0xb'));var squel=require(_0x469c('0xc'));var crypto=require(_0x469c('0xd'));var jsforce=require(_0x469c('0xe'));var deskjs=require(_0x469c('0xf'));var toCsv=require(_0x469c('0x8'));var querystring=require(_0x469c('0x10'));var Papa=require(_0x469c('0x11'));var Redis=require(_0x469c('0x12'));var authService=require(_0x469c('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x469c('0x14'));var hardwareService=require(_0x469c('0x15'));var logger=require(_0x469c('0x16'))(_0x469c('0x17'));var utils=require(_0x469c('0x18'));var config=require(_0x469c('0x19'));var licenseUtil=require(_0x469c('0x1a'));var db=require(_0x469c('0x1b'))['db'];var dbH=require(_0x469c('0x1b'))[_0x469c('0x1c')];function respondWithStatusCode(_0x53ff01,_0x29ecb8){_0x29ecb8=_0x29ecb8||0xcc;return function(_0x349d6c){if(_0x349d6c){return _0x53ff01[_0x469c('0x1d')](_0x29ecb8);}return _0x53ff01[_0x469c('0x1e')](_0x29ecb8)[_0x469c('0x1f')]();};}function respondWithResult(_0x760e1e,_0x2df696){_0x2df696=_0x2df696||0xc8;return function(_0x33c695){if(_0x33c695){return _0x760e1e['status'](_0x2df696)[_0x469c('0x20')](_0x33c695);}};}function respondWithFilteredResult(_0x331cf6,_0x2d0135){return function(_0x87f46c){if(_0x87f46c){var _0x535e6e=typeof _0x2d0135[_0x469c('0x21')]===_0x469c('0x22')&&typeof _0x2d0135[_0x469c('0x23')]==='undefined';var _0x2d26ba=_0x87f46c['count'];var _0xb7fa72=_0x535e6e?0x0:_0x2d0135[_0x469c('0x21')];var _0x1974a9=_0x535e6e?_0x87f46c[_0x469c('0x24')]:_0x2d0135[_0x469c('0x21')]+_0x2d0135[_0x469c('0x23')];var _0x15eb1d;if(_0x1974a9>=_0x2d26ba){_0x1974a9=_0x2d26ba;_0x15eb1d=0xc8;}else{_0x15eb1d=0xce;}_0x331cf6['status'](_0x15eb1d);return _0x331cf6[_0x469c('0x25')]('Content-Range',_0xb7fa72+'-'+_0x1974a9+'/'+_0x2d26ba)['json'](_0x87f46c);}return null;};}function patchUpdates(_0x2d1056){return function(_0x148c44){try{jsonpatch[_0x469c('0x26')](_0x148c44,_0x2d1056,!![]);}catch(_0x4d2186){return BPromise[_0x469c('0x27')](_0x4d2186);}return _0x148c44['save']();};}function saveUpdates(_0x50dd04,_0xf16351){return function(_0x31086a){if(_0x31086a){return _0x31086a[_0x469c('0x28')](_0x50dd04)[_0x469c('0x29')](function(_0x415073){return _0x415073;});}return null;};}function removeEntity(_0x444ec7,_0x68618c){return function(_0x21a9c4){if(_0x21a9c4){return _0x21a9c4[_0x469c('0x2a')]()[_0x469c('0x29')](function(){var _0x171a1d=_0x21a9c4['get']({'plain':!![]});var _0x579b35=_0x469c('0x2b');return db[_0x469c('0x2c')]['destroy']({'where':{'type':_0x579b35,'resourceId':_0x171a1d['id']}})[_0x469c('0x29')](function(){return _0x21a9c4;});})[_0x469c('0x29')](function(){_0x444ec7[_0x469c('0x1e')](0xcc)[_0x469c('0x1f')]();});}};}function handleEntityNotFound(_0x538dbd,_0x39100a){return function(_0x4c8676){if(!_0x4c8676){_0x538dbd['sendStatus'](0x194);}return _0x4c8676;};}function handleError(_0x563b28,_0x40c999){_0x40c999=_0x40c999||0x1f4;return function(_0x16a742){logger[_0x469c('0x2d')](_0x16a742['stack']);if(_0x16a742[_0x469c('0x2e')]){delete _0x16a742[_0x469c('0x2e')];}_0x563b28['status'](_0x40c999)[_0x469c('0x2f')](_0x16a742);};}exports[_0x469c('0x30')]=function(_0x3aff00,_0x259444){var _0xff0de1={},_0x569f2e={},_0xbf6c5a={'count':0x0,'rows':[]};var _0x4f4ae3=_[_0x469c('0x31')](db['AnalyticCustomReport'][_0x469c('0x32')],function(_0x2e77e8){return{'name':_0x2e77e8['fieldName'],'type':_0x2e77e8[_0x469c('0x33')]['key']};});_0x569f2e[_0x469c('0x34')]=_[_0x469c('0x31')](_0x4f4ae3,_0x469c('0x2e'));_0x569f2e[_0x469c('0x35')]=_[_0x469c('0x36')](_0x3aff00[_0x469c('0x35')]);_0x569f2e[_0x469c('0x37')]=_['intersection'](_0x569f2e[_0x469c('0x34')],_0x569f2e['query']);_0xff0de1['attributes']=_['intersection'](_0x569f2e[_0x469c('0x34')],qs[_0x469c('0x38')](_0x3aff00[_0x469c('0x35')][_0x469c('0x38')]));_0xff0de1[_0x469c('0x39')]=_0xff0de1['attributes']['length']?_0xff0de1['attributes']:_0x569f2e[_0x469c('0x34')];if(!_0x3aff00['query'][_0x469c('0x3a')](_0x469c('0x3b'))){_0xff0de1[_0x469c('0x23')]=qs[_0x469c('0x23')](_0x3aff00[_0x469c('0x35')][_0x469c('0x23')]);_0xff0de1[_0x469c('0x21')]=qs[_0x469c('0x21')](_0x3aff00[_0x469c('0x35')][_0x469c('0x21')]);}_0xff0de1[_0x469c('0x3c')]=qs['sort'](_0x3aff00[_0x469c('0x35')]['sort']);_0xff0de1[_0x469c('0x3d')]=qs[_0x469c('0x37')](_[_0x469c('0x3e')](_0x3aff00[_0x469c('0x35')],_0x569f2e[_0x469c('0x37')]),_0x4f4ae3);if(_0x3aff00[_0x469c('0x35')][_0x469c('0x3f')]){_0xff0de1[_0x469c('0x3d')]=_[_0x469c('0x40')](_0xff0de1[_0x469c('0x3d')],{'$or':_['map'](_0x4f4ae3,function(_0x46570d){if(_0x46570d['type']!==_0x469c('0x41')){var _0x28f479={};_0x28f479[_0x46570d['name']]={'$like':'%'+_0x3aff00[_0x469c('0x35')]['filter']+'%'};return _0x28f479;}})});}_0xff0de1=_[_0x469c('0x40')]({},_0xff0de1,_0x3aff00[_0x469c('0x42')]);var _0xf89b1c={'where':_0xff0de1[_0x469c('0x3d')]};return db[_0x469c('0x43')][_0x469c('0x24')](_0xf89b1c)['then'](function(_0x268390){_0xbf6c5a['count']=_0x268390;if(_0x3aff00[_0x469c('0x35')][_0x469c('0x44')]){_0xff0de1['include']=[{'all':!![]}];}return db[_0x469c('0x43')][_0x469c('0x45')](_0xff0de1);})[_0x469c('0x29')](function(_0x34a7ce){_0xbf6c5a['rows']=_0x34a7ce;return _0xbf6c5a;})['then'](respondWithFilteredResult(_0x259444,_0xff0de1))[_0x469c('0x46')](handleError(_0x259444,null));};exports[_0x469c('0x47')]=function(_0x6f04ee,_0x4baf48){var _0x320990={'raw':![],'where':{'id':_0x6f04ee['params']['id']}},_0xfa7f7={};_0xfa7f7[_0x469c('0x34')]=_['keys'](db[_0x469c('0x43')]['rawAttributes']);_0xfa7f7[_0x469c('0x35')]=_[_0x469c('0x36')](_0x6f04ee[_0x469c('0x35')]);_0xfa7f7['filters']=_['intersection'](_0xfa7f7['model'],_0xfa7f7[_0x469c('0x35')]);_0x320990['attributes']=_['intersection'](_0xfa7f7[_0x469c('0x34')],qs[_0x469c('0x38')](_0x6f04ee[_0x469c('0x35')][_0x469c('0x38')]));_0x320990[_0x469c('0x39')]=_0x320990['attributes'][_0x469c('0x48')]?_0x320990[_0x469c('0x39')]:_0xfa7f7[_0x469c('0x34')];if(_0x6f04ee['query'][_0x469c('0x44')]){_0x320990[_0x469c('0x49')]=[{'all':!![]}];}_0x320990=_[_0x469c('0x40')]({},_0x320990,_0x6f04ee[_0x469c('0x42')]);return db[_0x469c('0x43')][_0x469c('0x4a')](_0x320990)[_0x469c('0x29')](handleEntityNotFound(_0x4baf48,null))[_0x469c('0x29')](respondWithResult(_0x4baf48,null))['catch'](handleError(_0x4baf48,null));};exports['create']=function(_0x3eeea4,_0x470481){return db[_0x469c('0x43')][_0x469c('0x4b')](_0x3eeea4[_0x469c('0x4c')],{})['then'](function(_0x162a6e){var _0x2baeca=_0x3eeea4['user']['get']({'plain':!![]});if(!_0x2baeca)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2baeca[_0x469c('0x4d')]===_0x469c('0x4e')){var _0x2ec720=_0x162a6e[_0x469c('0x4f')]({'plain':!![]});var _0x2cf769='Reports';return db['UserProfileSection'][_0x469c('0x4a')]({'where':{'name':_0x2cf769,'userProfileId':_0x2baeca[_0x469c('0x50')]},'raw':!![]})['then'](function(_0xfe4650){if(_0xfe4650&&_0xfe4650[_0x469c('0x51')]===0x0){return db[_0x469c('0x2c')][_0x469c('0x4b')]({'name':_0x2ec720['name'],'resourceId':_0x2ec720['id'],'type':_0x469c('0x2b'),'sectionId':_0xfe4650['id']},{})[_0x469c('0x29')](function(){return _0x162a6e;});}else{return _0x162a6e;}})[_0x469c('0x46')](function(_0x3afdeb){logger[_0x469c('0x2d')](_0x469c('0x52'),_0x3afdeb);throw _0x3afdeb;});}return _0x162a6e;})['then'](respondWithResult(_0x470481,0xc9))[_0x469c('0x46')](handleError(_0x470481,null));};exports[_0x469c('0x28')]=function(_0x19e2f8,_0x3ac2fc){if(_0x19e2f8[_0x469c('0x4c')]['id']){delete _0x19e2f8[_0x469c('0x4c')]['id'];}return db[_0x469c('0x43')][_0x469c('0x4a')]({'where':{'id':_0x19e2f8[_0x469c('0x53')]['id']}})[_0x469c('0x29')](handleEntityNotFound(_0x3ac2fc,null))[_0x469c('0x29')](saveUpdates(_0x19e2f8[_0x469c('0x4c')],null))[_0x469c('0x29')](respondWithResult(_0x3ac2fc,null))[_0x469c('0x46')](handleError(_0x3ac2fc,null));};exports[_0x469c('0x2a')]=function(_0xbbe550,_0x31d2e5){return db['AnalyticCustomReport'][_0x469c('0x4a')]({'where':{'id':_0xbbe550[_0x469c('0x53')]['id']}})[_0x469c('0x29')](handleEntityNotFound(_0x31d2e5,null))[_0x469c('0x29')](removeEntity(_0x31d2e5,null))[_0x469c('0x46')](handleError(_0x31d2e5,null));};exports[_0x469c('0x54')]=function(_0xe7f70e,_0x3ea8e8){var _0x4743b2=0xa;var _0x5b2164=['join',_0x469c('0x55'),'right_join','cross_join'];var _0x418438={'SUM':_0x469c('0x56'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x469c('0x57'),'MIN':'MIN(%s)','AVG':_0x469c('0x58'),'GROUP_CONCAT':_0x469c('0x59'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x469c('0x5a')};var _0xaa9585={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x469c('0x5b'),'HOUR':_0x469c('0x5c'),'ROUND':_0x469c('0x5d'),'UNIX_TIMESTAMP':_0x469c('0x5e')};var _0x52019c=function(_0x2744d5){return!_[_0x469c('0x5f')]([_0x469c('0x60'),_0x469c('0x61'),_0x469c('0x62'),_0x469c('0x63')],_0x2744d5);};var _0x2d6678=function(_0x5e9899){if(!_0x5e9899||!_0x5e9899[_0x469c('0x64')][_0x469c('0x48')]){return'';}for(var _0x28bb7d='(',_0x28ee56=0x0;_0x28ee56<_0x5e9899[_0x469c('0x64')]['length'];_0x28ee56+=0x1){_0x28ee56>0x0&&(_0x28bb7d+='\x20'+_0x5e9899[_0x469c('0x65')]+'\x20');_0x28bb7d+=_0x5e9899[_0x469c('0x64')][_0x28ee56]['group']?_0x2d6678(_0x5e9899[_0x469c('0x64')][_0x28ee56][_0x469c('0x66')]):_0x5e9899['rules'][_0x28ee56][_0x469c('0x67')]+'\x20'+_0x5e9899[_0x469c('0x64')][_0x28ee56]['condition']+(_0x52019c(_0x5e9899[_0x469c('0x64')][_0x28ee56][_0x469c('0x68')])?'\x20'+_0x5e9899['rules'][_0x28ee56]['value']:'');}return _0x28bb7d+')';};var _0x4fb6be={'where':{'id':_0xe7f70e[_0x469c('0x53')]['id']}},_0x5b20e7,_0xab15de,_0x9f543,_0x391f98,_0x4effaf;_0x4fb6be=_['merge']({},_0x4fb6be,_0xe7f70e[_0x469c('0x42')]);return db[_0x469c('0x43')]['find'](_0x4fb6be)['then'](function(_0x380375){if(_0x380375){_0x5b20e7=_0x380375;return _0x380375[_0x469c('0x69')]();}return null;})[_0x469c('0x29')](function(_0x23c797){if(_0x23c797){if(!_0x23c797[_0x469c('0x48')]){throw new db[(_0x469c('0x6a'))][(_0x469c('0x6b'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0xab15de=_0x23c797;return db[_0x469c('0x6c')][_0x469c('0x45')]({'raw':!![]});}return null;})['then'](function(_0x34356c){if(_0x34356c){_0x9f543=_['keyBy'](_0x34356c,'id');var _0x51010c;var _0x595a04=squel[_0x469c('0x6d')]();_0x595a04[_0x469c('0x6e')](_0x5b20e7[_0x469c('0x6f')]);for(var _0x38a103=0x0;_0x38a103<_0xab15de['length'];_0x38a103+=0x1){_0x51010c=_0xab15de[_0x38a103][_0x469c('0x70')]?_0x9f543[_0xab15de[_0x38a103]['MetricId']][_0x469c('0x71')]:_0xab15de[_0x38a103][_0x469c('0x67')];_0x51010c=_0xab15de[_0x38a103][_0x469c('0x72')]?_['replace'](_0x418438[_0xab15de[_0x38a103]['function']],'%s',_0x51010c):_0x51010c;_0x51010c=_0xab15de[_0x38a103][_0x469c('0x73')]?_[_0x469c('0x74')](_0xaa9585[_0xab15de[_0x38a103][_0x469c('0x73')]],'%s',_0x51010c):_0x51010c;if(_0xab15de[_0x38a103][_0x469c('0x75')]){_0x595a04[_0x469c('0x66')](_0x51010c);}_0xab15de[_0x38a103]['orderBy']&&_0x595a04[_0x469c('0x3c')](_0x51010c,_0xab15de[_0x38a103]['orderBy']===_0x469c('0x76')?![]:!![]);_0x595a04[_0x469c('0x67')](_0x51010c,_0xab15de[_0x38a103][_0x469c('0x77')]||_0x51010c);}if(_0x5b20e7[_0x469c('0x78')]){_0x5b20e7['joins']=JSON[_0x469c('0x79')](_0x5b20e7['joins']);for(var _0x41f9e7=0x0;_0x41f9e7<_0x5b20e7[_0x469c('0x78')][_0x469c('0x48')];_0x41f9e7+=0x1){if(_0x5b20e7['joins'][_0x41f9e7][_0x469c('0x33')]&&_[_0x469c('0x5f')](_0x5b2164,_0x5b20e7[_0x469c('0x78')][_0x41f9e7]['type'])&&_0x5b20e7['joins'][_0x41f9e7]['parentKey']&&_0x5b20e7[_0x469c('0x78')][_0x41f9e7]['foreignTable']&&_0x5b20e7[_0x469c('0x78')][_0x41f9e7][_0x469c('0x7a')]){_0x595a04[_0x5b20e7[_0x469c('0x78')][_0x41f9e7][_0x469c('0x33')]](_0x5b20e7[_0x469c('0x78')][_0x41f9e7][_0x469c('0x7b')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x5b20e7[_0x469c('0x6f')],_0x5b20e7['joins'][_0x41f9e7][_0x469c('0x7c')],_0x5b20e7[_0x469c('0x78')][_0x41f9e7][_0x469c('0x7b')],_0x5b20e7['joins'][_0x41f9e7][_0x469c('0x7a')]));}}}if(_0x5b20e7['conditions']){_0x5b20e7['conditions']=JSON[_0x469c('0x79')](_0x5b20e7['conditions']);_0x595a04[_0x469c('0x3d')](_0x2d6678(_0x5b20e7['conditions'][_0x469c('0x66')]));}_0x4effaf=_0x595a04[_0x469c('0x7d')]();_0x595a04[_0x469c('0x23')](_0x4743b2);_0x595a04[_0x469c('0x21')](0x0);logger[_0x469c('0x7e')](_0x469c('0x7f'),_0x595a04['toString']());return dbH[_0x469c('0x80')]['query'](_0x595a04[_0x469c('0x81')](),{'type':dbH[_0x469c('0x80')]['QueryTypes'][_0x469c('0x82')]});}})[_0x469c('0x29')](respondWithResult(_0x3ea8e8,null))[_0x469c('0x46')](handleError(_0x3ea8e8,null));};function runReport(_0xddb1ae,_0x72c46e,_0x2d6e6f){var _0x5c6871=_0x72c46e[_0x469c('0x2e')];var _0xdf661a=0xa;var _0x257533=[_0x469c('0x83'),'left_join',_0x469c('0x84'),_0x469c('0x85')];var _0x5885a0={'SUM':_0x469c('0x56'),'COUNT':_0x469c('0x86'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x469c('0x87'),'AVG':_0x469c('0x58'),'GROUP_CONCAT':_0x469c('0x59'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x469c('0x5a')};var _0x45ad41={'SEC_TO_TIME':_0x469c('0x88'),'DATE':'DATE(%s)','HOUR':_0x469c('0x5c'),'ROUND':_0x469c('0x5d'),'UNIX_TIMESTAMP':_0x469c('0x5e')};var _0x4ffc4f=function(_0x176f7c){return!_['includes']([_0x469c('0x60'),'IS\x20NOT\x20NULL',_0x469c('0x62'),'IS\x20NOT\x20EMPTY'],_0x176f7c);};var _0x3f6700=function(_0x3e5af6){if(!_0x3e5af6||!_0x3e5af6[_0x469c('0x64')]['length']){return'';}for(var _0x4a04ad='(',_0x12de18=0x0;_0x12de18<_0x3e5af6[_0x469c('0x64')][_0x469c('0x48')];_0x12de18+=0x1){_0x12de18>0x0&&(_0x4a04ad+='\x20'+_0x3e5af6['operator']+'\x20');_0x4a04ad+=_0x3e5af6[_0x469c('0x64')][_0x12de18][_0x469c('0x66')]?_0x3f6700(_0x3e5af6['rules'][_0x12de18][_0x469c('0x66')]):_0x3e5af6['rules'][_0x12de18][_0x469c('0x67')]+'\x20'+_0x3e5af6[_0x469c('0x64')][_0x12de18][_0x469c('0x68')]+(_0x4ffc4f(_0x3e5af6[_0x469c('0x64')][_0x12de18][_0x469c('0x68')])?'\x20'+_0x3e5af6[_0x469c('0x64')][_0x12de18][_0x469c('0x89')]:'');}return _0x4a04ad+')';};var _0x7a5a43={'where':{'id':_0xddb1ae['id']}},_0x2e5ff1,_0x2e141e,_0x40dcfe,_0x4a3f3b,_0x4f29ed;_0x7a5a43=_[_0x469c('0x40')]({},_0x7a5a43,_0x2d6e6f);return db[_0x469c('0x43')]['find'](_0x7a5a43)[_0x469c('0x29')](function(_0x34454e){if(_0x34454e){_0x2e5ff1=_0x34454e;return _0x34454e[_0x469c('0x69')]();}return null;})[_0x469c('0x29')](function(_0x2ce09d){if(_0x2ce09d){if(!_0x2ce09d['length']){throw new db[(_0x469c('0x6a'))]['ValidationErrorItem'](_0x469c('0x8a'),0x193);}_0x2e141e=_0x2ce09d;return db['AnalyticMetric'][_0x469c('0x45')]({'raw':!![]});}return null;})[_0x469c('0x29')](function(_0x1b7309){if(_0x1b7309){_0x40dcfe=_[_0x469c('0x8b')](_0x1b7309,'id');var _0x33cfb9;var _0x280a5b=squel[_0x469c('0x6d')]();_0x280a5b['from'](_0x2e5ff1[_0x469c('0x6f')]);for(var _0x2792c2=0x0;_0x2792c2<_0x2e141e['length'];_0x2792c2+=0x1){_0x33cfb9=_0x2e141e[_0x2792c2][_0x469c('0x70')]?_0x40dcfe[_0x2e141e[_0x2792c2][_0x469c('0x70')]][_0x469c('0x71')]:_0x2e141e[_0x2792c2][_0x469c('0x67')];_0x33cfb9=_0x2e141e[_0x2792c2][_0x469c('0x72')]?_[_0x469c('0x74')](_0x5885a0[_0x2e141e[_0x2792c2]['function']],'%s',_0x33cfb9):_0x33cfb9;_0x33cfb9=_0x2e141e[_0x2792c2][_0x469c('0x73')]?_[_0x469c('0x74')](_0x45ad41[_0x2e141e[_0x2792c2]['format']],'%s',_0x33cfb9):_0x33cfb9;if(_0x2e141e[_0x2792c2]['groupBy']){_0x280a5b[_0x469c('0x66')](_0x33cfb9);}_0x2e141e[_0x2792c2][_0x469c('0x8c')]&&_0x280a5b[_0x469c('0x3c')](_0x33cfb9,_0x2e141e[_0x2792c2][_0x469c('0x8c')]==='DESC'?![]:!![]);_0x280a5b[_0x469c('0x67')](_0x33cfb9,_0x2e141e[_0x2792c2]['alias']||_0x33cfb9);}if(_0x2e5ff1['joins']){_0x2e5ff1[_0x469c('0x78')]=JSON['parse'](_0x2e5ff1['joins']);for(var _0x44d718=0x0;_0x44d718<_0x2e5ff1[_0x469c('0x78')][_0x469c('0x48')];_0x44d718+=0x1){if(_0x2e5ff1['joins'][_0x44d718][_0x469c('0x33')]&&_['includes'](_0x257533,_0x2e5ff1[_0x469c('0x78')][_0x44d718][_0x469c('0x33')])&&_0x2e5ff1[_0x469c('0x78')][_0x44d718]['parentKey']&&_0x2e5ff1[_0x469c('0x78')][_0x44d718][_0x469c('0x7b')]&&_0x2e5ff1[_0x469c('0x78')][_0x44d718][_0x469c('0x7a')]){_0x280a5b[_0x2e5ff1[_0x469c('0x78')][_0x44d718]['type']](_0x2e5ff1[_0x469c('0x78')][_0x44d718]['foreignTable'],null,util[_0x469c('0x73')](_0x469c('0x8d'),_0x2e5ff1[_0x469c('0x6f')],_0x2e5ff1[_0x469c('0x78')][_0x44d718][_0x469c('0x7c')],_0x2e5ff1[_0x469c('0x78')][_0x44d718]['foreignTable'],_0x2e5ff1[_0x469c('0x78')][_0x44d718]['foreignKey']));}}}if(_0x2e5ff1['conditions']){_0x2e5ff1[_0x469c('0x8e')]=JSON['parse'](_0x2e5ff1[_0x469c('0x8e')]);_0x280a5b[_0x469c('0x3d')](_0x3f6700(_0x2e5ff1['conditions'][_0x469c('0x66')]));}_0x4f29ed=_0x280a5b[_0x469c('0x7d')]();_0x280a5b['limit'](_0xdf661a);_0x280a5b[_0x469c('0x21')](0x0);return;}})[_0x469c('0x29')](function(){if(_0x72c46e[_0x469c('0x8f')]==='web'){return null;}var _0x18ee69=_[_0x469c('0x40')](_0x72c46e,{'name':_0x72c46e[_0x469c('0x90')]||_0x72c46e[_0x469c('0x2e')]||_0x2e5ff1[_0x469c('0x2e')],'basename':_0x5c6871,'savename':util[_0x469c('0x73')](_0x469c('0x91'),_0x72c46e['name']||_0x2e5ff1[_0x469c('0x2e')],require('randomstring')[_0x469c('0x92')](0x4),_0x72c46e[_0x469c('0x8f')]||_0x469c('0x93')),'reportId':_0x2e5ff1['id'],'reportType':'custom'});return db[_0x469c('0x94')][_0x469c('0x4b')](_0x18ee69,{'raw':!![]});})[_0x469c('0x29')](function(_0x5a6980){if(_0x2e5ff1[_0x469c('0x6f')]===_0x469c('0x95')){_0x4f29ed[_0x469c('0x3d')](_0x2e5ff1[_0x469c('0x6f')]+_0x469c('0x96'),_0x72c46e[_0x469c('0x97')],_0x72c46e['endDate']);}else{_0x4f29ed['where'](_0x2e5ff1[_0x469c('0x6f')]+_0x469c('0x98'),_0x72c46e['startDate'],_0x72c46e[_0x469c('0x99')]);}if(_0x5a6980){logger[_0x469c('0x9a')](_0x469c('0x9b'),_0x4f29ed[_0x469c('0x81')]());require(_0x469c('0x9c'))[_0x469c('0x9d')](path['join'](__dirname,'../../components/export/',_0x5a6980[_0x469c('0x8f')]),[_0x5a6980['id'],_0x4f29ed['toString'](),path[_0x469c('0x83')](__dirname,_0x469c('0x9e'),_0x5a6980[_0x469c('0x9f')]),_0x5c6871]);return _0x5a6980;}else{var _0x318d1c=squel['select']();_0x318d1c[_0x469c('0x6e')]('('+_0x4f29ed[_0x469c('0x81')]()+')',_0x469c('0xa0'));_0x318d1c[_0x469c('0x67')](_0x469c('0xa1'),_0x469c('0x24'));_0x4f29ed[_0x469c('0x23')](_0x72c46e[_0x469c('0x23')]||_0xdf661a);_0x4f29ed[_0x469c('0x21')](_0x72c46e[_0x469c('0x21')]||0x0);return dbH[_0x469c('0x80')][_0x469c('0x35')](_0x318d1c[_0x469c('0x81')](),{'type':dbH[_0x469c('0x80')]['QueryTypes']['SELECT']})['then'](function(_0x27ac34){if(!_0x27ac34['length']){_0x4a3f3b=0x0;}else{_0x4a3f3b=_0x27ac34[0x0][_0x469c('0x24')]||0x0;}return dbH['sequelize']['query'](_0x4f29ed[_0x469c('0x81')](),{'type':dbH[_0x469c('0x80')][_0x469c('0xa2')]['SELECT']});})[_0x469c('0x29')](function(_0x2ab737){return{'rows':_0x2ab737||[],'count':_0x4a3f3b};});}});}exports[_0x469c('0xa3')]=function(_0x208058,_0x2d4c91){return runReport(_0x208058[_0x469c('0x53')],_0x208058['query'],_0x208058[_0x469c('0x42')])[_0x469c('0x29')](respondWithResult(_0x2d4c91,null))[_0x469c('0x46')](handleError(_0x2d4c91,null));};exports[_0x469c('0xa4')]=runReport;exports[_0x469c('0x35')]=function(_0x2025c3,_0x4d0bf2){var _0x37521f=0xa;var _0x453157=['join',_0x469c('0x55'),_0x469c('0x84'),'cross_join'];var _0x281062={'SUM':'SUM(%s)','COUNT':_0x469c('0x86'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x469c('0x57'),'MIN':_0x469c('0x87'),'AVG':_0x469c('0x58'),'GROUP_CONCAT':_0x469c('0x59'),'GROUP_CONCAT ASC':_0x469c('0xa5'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x23f61d={'SEC_TO_TIME':_0x469c('0x88'),'DATE':_0x469c('0x5b'),'HOUR':_0x469c('0x5c'),'ROUND':_0x469c('0x5d'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x26fc22=function(_0x5bc229){return!_[_0x469c('0x5f')]([_0x469c('0x60'),'IS\x20NOT\x20NULL','IS\x20EMPTY',_0x469c('0x63')],_0x5bc229);};var _0xbd34ed=function(_0x55e5bb){if(!_0x55e5bb||!_0x55e5bb[_0x469c('0x64')][_0x469c('0x48')]){return'';}for(var _0x1deb0f='(',_0xd625f=0x0;_0xd625f<_0x55e5bb[_0x469c('0x64')][_0x469c('0x48')];_0xd625f+=0x1){_0xd625f>0x0&&(_0x1deb0f+='\x20'+_0x55e5bb['operator']+'\x20');_0x1deb0f+=_0x55e5bb['rules'][_0xd625f][_0x469c('0x66')]?_0xbd34ed(_0x55e5bb[_0x469c('0x64')][_0xd625f][_0x469c('0x66')]):_0x55e5bb[_0x469c('0x64')][_0xd625f]['field']+'\x20'+_0x55e5bb[_0x469c('0x64')][_0xd625f]['condition']+(_0x26fc22(_0x55e5bb['rules'][_0xd625f]['condition'])?'\x20'+_0x55e5bb[_0x469c('0x64')][_0xd625f][_0x469c('0x89')]:'');}return _0x1deb0f+')';};var _0x6b0614={'where':{'id':_0x2025c3[_0x469c('0x53')]['id']}},_0x5dac00,_0x25a7c7,_0x21cb3a,_0x42027b,_0x3f557b;_0x6b0614=_['merge']({},_0x6b0614,_0x2025c3['options']);return db[_0x469c('0x43')][_0x469c('0x4a')](_0x6b0614)[_0x469c('0x29')](function(_0xec7606){if(_0xec7606){_0x5dac00=_0xec7606;return _0xec7606['getFields']();}return null;})[_0x469c('0x29')](function(_0x5d2586){if(_0x5d2586){if(!_0x5d2586[_0x469c('0x48')]){throw new db[(_0x469c('0x6a'))][(_0x469c('0x6b'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x25a7c7=_0x5d2586;return db['AnalyticMetric'][_0x469c('0x45')]({'raw':!![]});}return null;})[_0x469c('0x29')](function(_0x1fd864){if(_0x1fd864){_0x21cb3a=_['keyBy'](_0x1fd864,'id');var _0x29566b;var _0x17177b=squel[_0x469c('0x6d')]();_0x17177b[_0x469c('0x6e')](_0x5dac00['table']);for(var _0x4fbf6e=0x0;_0x4fbf6e<_0x25a7c7['length'];_0x4fbf6e+=0x1){_0x29566b=_0x25a7c7[_0x4fbf6e]['MetricId']?_0x21cb3a[_0x25a7c7[_0x4fbf6e]['MetricId']][_0x469c('0x71')]:_0x25a7c7[_0x4fbf6e][_0x469c('0x67')];_0x29566b=_0x25a7c7[_0x4fbf6e]['function']?_['replace'](_0x281062[_0x25a7c7[_0x4fbf6e]['function']],'%s',_0x29566b):_0x29566b;_0x29566b=_0x25a7c7[_0x4fbf6e][_0x469c('0x73')]?_[_0x469c('0x74')](_0x23f61d[_0x25a7c7[_0x4fbf6e]['format']],'%s',_0x29566b):_0x29566b;if(_0x25a7c7[_0x4fbf6e][_0x469c('0x75')]){_0x17177b[_0x469c('0x66')](_0x29566b);}_0x25a7c7[_0x4fbf6e][_0x469c('0x8c')]&&_0x17177b[_0x469c('0x3c')](_0x29566b,_0x25a7c7[_0x4fbf6e][_0x469c('0x8c')]===_0x469c('0x76')?![]:!![]);_0x17177b[_0x469c('0x67')](_0x29566b,_0x25a7c7[_0x4fbf6e][_0x469c('0x77')]||_0x29566b);}if(_0x5dac00['joins']){_0x5dac00[_0x469c('0x78')]=JSON['parse'](_0x5dac00[_0x469c('0x78')]);for(var _0x3bd8d1=0x0;_0x3bd8d1<_0x5dac00['joins']['length'];_0x3bd8d1+=0x1){if(_0x5dac00['joins'][_0x3bd8d1][_0x469c('0x33')]&&_['includes'](_0x453157,_0x5dac00['joins'][_0x3bd8d1][_0x469c('0x33')])&&_0x5dac00['joins'][_0x3bd8d1][_0x469c('0x7c')]&&_0x5dac00['joins'][_0x3bd8d1][_0x469c('0x7b')]&&_0x5dac00[_0x469c('0x78')][_0x3bd8d1][_0x469c('0x7a')]){_0x17177b[_0x5dac00[_0x469c('0x78')][_0x3bd8d1][_0x469c('0x33')]](_0x5dac00[_0x469c('0x78')][_0x3bd8d1][_0x469c('0x7b')],null,util[_0x469c('0x73')](_0x469c('0x8d'),_0x5dac00['table'],_0x5dac00[_0x469c('0x78')][_0x3bd8d1][_0x469c('0x7c')],_0x5dac00[_0x469c('0x78')][_0x3bd8d1]['foreignTable'],_0x5dac00['joins'][_0x3bd8d1][_0x469c('0x7a')]));}}}if(_0x5dac00[_0x469c('0x8e')]){_0x5dac00[_0x469c('0x8e')]=JSON[_0x469c('0x79')](_0x5dac00['conditions']);_0x17177b['where'](_0xbd34ed(_0x5dac00[_0x469c('0x8e')][_0x469c('0x66')]));}_0x3f557b=_0x17177b['clone']();_0x17177b[_0x469c('0x23')](_0x37521f);_0x17177b[_0x469c('0x21')](0x0);logger[_0x469c('0x7e')](_0x469c('0x7f'),_0x17177b[_0x469c('0x81')]());return dbH[_0x469c('0x80')][_0x469c('0x35')](_0x17177b[_0x469c('0x81')](),{'type':dbH[_0x469c('0x80')]['QueryTypes']['SELECT']});}})[_0x469c('0x29')](function(){return{'sql':_0x3f557b[_0x469c('0x81')]()};})[_0x469c('0x29')](respondWithResult(_0x4d0bf2,null))[_0x469c('0x46')](handleError(_0x4d0bf2,null));};