Built motion from commit 47436d59.|2.6.7
[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 _0xba3c=['request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','dbH','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','then','destroy','get','CustomReports','UserProfileResource','stack','name','send','index','map','AnalyticCustomReport','fieldName','key','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','condition','merge','getFields','Sequelize','ValidationErrorItem','AnalyticMetric','keyBy','select','from','table','MetricId','metric','field','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','SEC_TO_TIME(%s)','HOUR(%s)','value','output','fullPath','%s-%s.%s','randomstring','generate','csv','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','fork','../../components/export/','../../files/reports','countTable','run','runReport','MAX(%s)','Please\x20insert\x20at\x20least\x20one\x20field','rimraf','zip-dir','fast-json-patch'];(function(_0x3ff9bc,_0x51778d){var _0x4017d6=function(_0x57bb0a){while(--_0x57bb0a){_0x3ff9bc['push'](_0x3ff9bc['shift']());}};_0x4017d6(++_0x51778d);}(_0xba3c,0x1f2));var _0xcba3=function(_0x476fae,_0x915a56){_0x476fae=_0x476fae-0x0;var _0x21a4b4=_0xba3c[_0x476fae];return _0x21a4b4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xcba3('0x0'));var zipdir=require(_0xcba3('0x1'));var jsonpatch=require(_0xcba3('0x2'));var rp=require(_0xcba3('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xcba3('0x4'));var util=require(_0xcba3('0x5'));var path=require(_0xcba3('0x6'));var sox=require(_0xcba3('0x7'));var csv=require(_0xcba3('0x8'));var ejs=require(_0xcba3('0x9'));var fs=require('fs');var fs_extra=require(_0xcba3('0xa'));var _=require(_0xcba3('0xb'));var squel=require(_0xcba3('0xc'));var crypto=require('crypto');var jsforce=require(_0xcba3('0xd'));var deskjs=require(_0xcba3('0xe'));var toCsv=require(_0xcba3('0x8'));var querystring=require(_0xcba3('0xf'));var Papa=require(_0xcba3('0x10'));var Redis=require(_0xcba3('0x11'));var authService=require(_0xcba3('0x12'));var qs=require(_0xcba3('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcba3('0x14'));var logger=require(_0xcba3('0x15'))('api');var utils=require(_0xcba3('0x16'));var config=require(_0xcba3('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xcba3('0x18'))['db'];var dbH=require(_0xcba3('0x18'))[_0xcba3('0x19')];function respondWithStatusCode(_0x1ac0cd,_0x3a6d11){_0x3a6d11=_0x3a6d11||0xcc;return function(_0x25164d){if(_0x25164d){return _0x1ac0cd[_0xcba3('0x1a')](_0x3a6d11);}return _0x1ac0cd['status'](_0x3a6d11)[_0xcba3('0x1b')]();};}function respondWithResult(_0xbe7ff7,_0x5c0379){_0x5c0379=_0x5c0379||0xc8;return function(_0x5eb0b4){if(_0x5eb0b4){return _0xbe7ff7[_0xcba3('0x1c')](_0x5c0379)['json'](_0x5eb0b4);}};}function respondWithFilteredResult(_0x504cb0,_0xabc4c3){return function(_0x5f007d){if(_0x5f007d){var _0x2e1a85=typeof _0xabc4c3[_0xcba3('0x1d')]===_0xcba3('0x1e')&&typeof _0xabc4c3[_0xcba3('0x1f')]==='undefined';var _0x29c0d9=_0x5f007d['count'];var _0x2617c8=_0x2e1a85?0x0:_0xabc4c3[_0xcba3('0x1d')];var _0xdd6cca=_0x2e1a85?_0x5f007d[_0xcba3('0x20')]:_0xabc4c3[_0xcba3('0x1d')]+_0xabc4c3[_0xcba3('0x1f')];var _0xbcec97;if(_0xdd6cca>=_0x29c0d9){_0xdd6cca=_0x29c0d9;_0xbcec97=0xc8;}else{_0xbcec97=0xce;}_0x504cb0[_0xcba3('0x1c')](_0xbcec97);return _0x504cb0[_0xcba3('0x21')](_0xcba3('0x22'),_0x2617c8+'-'+_0xdd6cca+'/'+_0x29c0d9)[_0xcba3('0x23')](_0x5f007d);}return null;};}function patchUpdates(_0x550f2d){return function(_0x3d3a86){try{jsonpatch[_0xcba3('0x24')](_0x3d3a86,_0x550f2d,!![]);}catch(_0x1f568d){return BPromise[_0xcba3('0x25')](_0x1f568d);}return _0x3d3a86[_0xcba3('0x26')]();};}function saveUpdates(_0x29201b,_0x29aa91){return function(_0x32f99b){if(_0x32f99b){return _0x32f99b['update'](_0x29201b)[_0xcba3('0x27')](function(_0x24da95){return _0x24da95;});}return null;};}function removeEntity(_0x48e0a8,_0x5405e6){return function(_0x309994){if(_0x309994){return _0x309994[_0xcba3('0x28')]()[_0xcba3('0x27')](function(){var _0x1c185b=_0x309994[_0xcba3('0x29')]({'plain':!![]});var _0x20faf4=_0xcba3('0x2a');return db[_0xcba3('0x2b')]['destroy']({'where':{'type':_0x20faf4,'resourceId':_0x1c185b['id']}})[_0xcba3('0x27')](function(){return _0x309994;});})['then'](function(){_0x48e0a8[_0xcba3('0x1c')](0xcc)[_0xcba3('0x1b')]();});}};}function handleEntityNotFound(_0x5ea7c9,_0x4e3897){return function(_0x136028){if(!_0x136028){_0x5ea7c9[_0xcba3('0x1a')](0x194);}return _0x136028;};}function handleError(_0x12c38b,_0xa61b4d){_0xa61b4d=_0xa61b4d||0x1f4;return function(_0x2f3fa7){logger['error'](_0x2f3fa7[_0xcba3('0x2c')]);if(_0x2f3fa7[_0xcba3('0x2d')]){delete _0x2f3fa7[_0xcba3('0x2d')];}_0x12c38b[_0xcba3('0x1c')](_0xa61b4d)[_0xcba3('0x2e')](_0x2f3fa7);};}exports[_0xcba3('0x2f')]=function(_0xaffce3,_0x1f60f5){var _0x5a446d={},_0x136db1={},_0x1502f8={'count':0x0,'rows':[]};var _0x12b2f4=_[_0xcba3('0x30')](db[_0xcba3('0x31')]['rawAttributes'],function(_0x5193e4){return{'name':_0x5193e4[_0xcba3('0x32')],'type':_0x5193e4['type'][_0xcba3('0x33')]};});_0x136db1['model']=_[_0xcba3('0x30')](_0x12b2f4,_0xcba3('0x2d'));_0x136db1[_0xcba3('0x34')]=_['keys'](_0xaffce3[_0xcba3('0x34')]);_0x136db1['filters']=_[_0xcba3('0x35')](_0x136db1[_0xcba3('0x36')],_0x136db1['query']);_0x5a446d['attributes']=_['intersection'](_0x136db1[_0xcba3('0x36')],qs[_0xcba3('0x37')](_0xaffce3[_0xcba3('0x34')][_0xcba3('0x37')]));_0x5a446d[_0xcba3('0x38')]=_0x5a446d[_0xcba3('0x38')][_0xcba3('0x39')]?_0x5a446d[_0xcba3('0x38')]:_0x136db1['model'];if(!_0xaffce3[_0xcba3('0x34')][_0xcba3('0x3a')](_0xcba3('0x3b'))){_0x5a446d['limit']=qs[_0xcba3('0x1f')](_0xaffce3[_0xcba3('0x34')][_0xcba3('0x1f')]);_0x5a446d[_0xcba3('0x1d')]=qs[_0xcba3('0x1d')](_0xaffce3[_0xcba3('0x34')][_0xcba3('0x1d')]);}_0x5a446d[_0xcba3('0x3c')]=qs[_0xcba3('0x3d')](_0xaffce3[_0xcba3('0x34')][_0xcba3('0x3d')]);_0x5a446d[_0xcba3('0x3e')]=qs[_0xcba3('0x3f')](_[_0xcba3('0x40')](_0xaffce3['query'],_0x136db1[_0xcba3('0x3f')]),_0x12b2f4);if(_0xaffce3[_0xcba3('0x34')][_0xcba3('0x41')]){_0x5a446d[_0xcba3('0x3e')]=_['merge'](_0x5a446d[_0xcba3('0x3e')],{'$or':_[_0xcba3('0x30')](_0x12b2f4,function(_0x5b0c6d){if(_0x5b0c6d[_0xcba3('0x42')]!==_0xcba3('0x43')){var _0x311a8d={};_0x311a8d[_0x5b0c6d['name']]={'$like':'%'+_0xaffce3['query'][_0xcba3('0x41')]+'%'};return _0x311a8d;}})});}_0x5a446d=_['merge']({},_0x5a446d,_0xaffce3[_0xcba3('0x44')]);var _0x2ebe4e={'where':_0x5a446d[_0xcba3('0x3e')]};return db['AnalyticCustomReport'][_0xcba3('0x20')](_0x2ebe4e)[_0xcba3('0x27')](function(_0x409fd5){_0x1502f8[_0xcba3('0x20')]=_0x409fd5;if(_0xaffce3[_0xcba3('0x34')][_0xcba3('0x45')]){_0x5a446d[_0xcba3('0x46')]=[{'all':!![]}];}return db[_0xcba3('0x31')][_0xcba3('0x47')](_0x5a446d);})[_0xcba3('0x27')](function(_0x257da3){_0x1502f8[_0xcba3('0x48')]=_0x257da3;return _0x1502f8;})['then'](respondWithFilteredResult(_0x1f60f5,_0x5a446d))[_0xcba3('0x49')](handleError(_0x1f60f5,null));};exports[_0xcba3('0x4a')]=function(_0x37b3e1,_0x3e8d0c){var _0x12ce8d={'raw':![],'where':{'id':_0x37b3e1[_0xcba3('0x4b')]['id']}},_0x388354={};_0x388354['model']=_['keys'](db[_0xcba3('0x31')]['rawAttributes']);_0x388354[_0xcba3('0x34')]=_['keys'](_0x37b3e1[_0xcba3('0x34')]);_0x388354['filters']=_[_0xcba3('0x35')](_0x388354['model'],_0x388354['query']);_0x12ce8d[_0xcba3('0x38')]=_[_0xcba3('0x35')](_0x388354[_0xcba3('0x36')],qs['fields'](_0x37b3e1[_0xcba3('0x34')]['fields']));_0x12ce8d[_0xcba3('0x38')]=_0x12ce8d[_0xcba3('0x38')][_0xcba3('0x39')]?_0x12ce8d['attributes']:_0x388354['model'];if(_0x37b3e1[_0xcba3('0x34')][_0xcba3('0x45')]){_0x12ce8d[_0xcba3('0x46')]=[{'all':!![]}];}_0x12ce8d=_['merge']({},_0x12ce8d,_0x37b3e1[_0xcba3('0x44')]);return db[_0xcba3('0x31')][_0xcba3('0x4c')](_0x12ce8d)[_0xcba3('0x27')](handleEntityNotFound(_0x3e8d0c,null))[_0xcba3('0x27')](respondWithResult(_0x3e8d0c,null))[_0xcba3('0x49')](handleError(_0x3e8d0c,null));};exports[_0xcba3('0x4d')]=function(_0x30ee0c,_0x137aa0){return db['AnalyticCustomReport']['create'](_0x30ee0c[_0xcba3('0x4e')],{})[_0xcba3('0x27')](function(_0x5c1f1d){var _0x1ccabc=_0x30ee0c[_0xcba3('0x4f')][_0xcba3('0x29')]({'plain':!![]});if(!_0x1ccabc)throw new Error(_0xcba3('0x50'));if(_0x1ccabc[_0xcba3('0x51')]===_0xcba3('0x4f')){var _0x1093fa=_0x5c1f1d['get']({'plain':!![]});var _0x262b1c=_0xcba3('0x52');return db[_0xcba3('0x53')][_0xcba3('0x4c')]({'where':{'name':_0x262b1c,'userProfileId':_0x1ccabc[_0xcba3('0x54')]},'raw':!![]})[_0xcba3('0x27')](function(_0x51eb9f){if(_0x51eb9f&&_0x51eb9f['autoAssociation']===0x0){return db[_0xcba3('0x2b')][_0xcba3('0x4d')]({'name':_0x1093fa[_0xcba3('0x2d')],'resourceId':_0x1093fa['id'],'type':'CustomReports','sectionId':_0x51eb9f['id']},{})['then'](function(){return _0x5c1f1d;});}else{return _0x5c1f1d;}})[_0xcba3('0x49')](function(_0x2b3b23){logger[_0xcba3('0x55')](_0xcba3('0x56'),_0x2b3b23);throw _0x2b3b23;});}return _0x5c1f1d;})['then'](respondWithResult(_0x137aa0,0xc9))[_0xcba3('0x49')](handleError(_0x137aa0,null));};exports[_0xcba3('0x57')]=function(_0x4af463,_0x499363){if(_0x4af463[_0xcba3('0x4e')]['id']){delete _0x4af463[_0xcba3('0x4e')]['id'];}return db[_0xcba3('0x31')][_0xcba3('0x4c')]({'where':{'id':_0x4af463[_0xcba3('0x4b')]['id']}})[_0xcba3('0x27')](handleEntityNotFound(_0x499363,null))[_0xcba3('0x27')](saveUpdates(_0x4af463[_0xcba3('0x4e')],null))[_0xcba3('0x27')](respondWithResult(_0x499363,null))[_0xcba3('0x49')](handleError(_0x499363,null));};exports['destroy']=function(_0x4d44ef,_0x1e3212){return db['AnalyticCustomReport'][_0xcba3('0x4c')]({'where':{'id':_0x4d44ef[_0xcba3('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1e3212,null))['then'](removeEntity(_0x1e3212,null))[_0xcba3('0x49')](handleError(_0x1e3212,null));};exports['preview']=function(_0x597d2f,_0x397308){var _0x2eeea2=0xa;var _0x108730=[_0xcba3('0x58'),_0xcba3('0x59'),_0xcba3('0x5a'),_0xcba3('0x5b')];var _0x2512ad={'SUM':_0xcba3('0x5c'),'COUNT':_0xcba3('0x5d'),'COUNT DISTINCT':_0xcba3('0x5e'),'MAX':'MAX(%s)','MIN':_0xcba3('0x5f'),'AVG':_0xcba3('0x60'),'GROUP_CONCAT':_0xcba3('0x61'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xcba3('0x62')};var _0x3a1060={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xcba3('0x63'),'HOUR':'HOUR(%s)','ROUND':_0xcba3('0x64'),'UNIX_TIMESTAMP':_0xcba3('0x65')};var _0x315ac4=function(_0x577368){return!_[_0xcba3('0x66')]([_0xcba3('0x67'),_0xcba3('0x68'),_0xcba3('0x69'),_0xcba3('0x6a')],_0x577368);};var _0x3e1c59=function(_0x30a1bc){if(!_0x30a1bc||!_0x30a1bc[_0xcba3('0x6b')]['length']){return'';}for(var _0x2d7368='(',_0x52baa0=0x0;_0x52baa0<_0x30a1bc[_0xcba3('0x6b')][_0xcba3('0x39')];_0x52baa0+=0x1){_0x52baa0>0x0&&(_0x2d7368+='\x20'+_0x30a1bc[_0xcba3('0x6c')]+'\x20');_0x2d7368+=_0x30a1bc[_0xcba3('0x6b')][_0x52baa0][_0xcba3('0x6d')]?_0x3e1c59(_0x30a1bc[_0xcba3('0x6b')][_0x52baa0]['group']):_0x30a1bc[_0xcba3('0x6b')][_0x52baa0]['field']+'\x20'+_0x30a1bc[_0xcba3('0x6b')][_0x52baa0][_0xcba3('0x6e')]+(_0x315ac4(_0x30a1bc['rules'][_0x52baa0][_0xcba3('0x6e')])?'\x20'+_0x30a1bc[_0xcba3('0x6b')][_0x52baa0]['value']:'');}return _0x2d7368+')';};var _0x64380d={'where':{'id':_0x597d2f['params']['id']}},_0x2fee95,_0x4a1395,_0x1cddcd,_0xf5a97e,_0x1b74f6;_0x64380d=_[_0xcba3('0x6f')]({},_0x64380d,_0x597d2f[_0xcba3('0x44')]);return db[_0xcba3('0x31')][_0xcba3('0x4c')](_0x64380d)[_0xcba3('0x27')](function(_0x5cd788){if(_0x5cd788){_0x2fee95=_0x5cd788;return _0x5cd788[_0xcba3('0x70')]();}return null;})[_0xcba3('0x27')](function(_0x30ff7c){if(_0x30ff7c){if(!_0x30ff7c[_0xcba3('0x39')]){throw new db[(_0xcba3('0x71'))][(_0xcba3('0x72'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4a1395=_0x30ff7c;return db[_0xcba3('0x73')]['findAll']({'raw':!![]});}return null;})[_0xcba3('0x27')](function(_0x175d31){if(_0x175d31){_0x1cddcd=_[_0xcba3('0x74')](_0x175d31,'id');var _0x444ba6;var _0x4bc17f=squel[_0xcba3('0x75')]();_0x4bc17f[_0xcba3('0x76')](_0x2fee95[_0xcba3('0x77')]);for(var _0x24ecd3=0x0;_0x24ecd3<_0x4a1395[_0xcba3('0x39')];_0x24ecd3+=0x1){_0x444ba6=_0x4a1395[_0x24ecd3][_0xcba3('0x78')]?_0x1cddcd[_0x4a1395[_0x24ecd3][_0xcba3('0x78')]][_0xcba3('0x79')]:_0x4a1395[_0x24ecd3][_0xcba3('0x7a')];_0x444ba6=_0x4a1395[_0x24ecd3][_0xcba3('0x7b')]?_[_0xcba3('0x7c')](_0x2512ad[_0x4a1395[_0x24ecd3][_0xcba3('0x7b')]],'%s',_0x444ba6):_0x444ba6;_0x444ba6=_0x4a1395[_0x24ecd3]['format']?_[_0xcba3('0x7c')](_0x3a1060[_0x4a1395[_0x24ecd3][_0xcba3('0x7d')]],'%s',_0x444ba6):_0x444ba6;if(_0x4a1395[_0x24ecd3][_0xcba3('0x7e')]){_0x4bc17f[_0xcba3('0x6d')](_0x444ba6);}_0x4a1395[_0x24ecd3][_0xcba3('0x7f')]&&_0x4bc17f[_0xcba3('0x3c')](_0x444ba6,_0x4a1395[_0x24ecd3][_0xcba3('0x7f')]===_0xcba3('0x80')?![]:!![]);_0x4bc17f[_0xcba3('0x7a')](_0x444ba6,_0x4a1395[_0x24ecd3][_0xcba3('0x81')]||_0x444ba6);}if(_0x2fee95['joins']){_0x2fee95[_0xcba3('0x82')]=JSON[_0xcba3('0x83')](_0x2fee95[_0xcba3('0x82')]);for(var _0x3757f7=0x0;_0x3757f7<_0x2fee95[_0xcba3('0x82')]['length'];_0x3757f7+=0x1){if(_0x2fee95['joins'][_0x3757f7][_0xcba3('0x42')]&&_[_0xcba3('0x66')](_0x108730,_0x2fee95[_0xcba3('0x82')][_0x3757f7][_0xcba3('0x42')])&&_0x2fee95[_0xcba3('0x82')][_0x3757f7][_0xcba3('0x84')]&&_0x2fee95[_0xcba3('0x82')][_0x3757f7]['foreignTable']&&_0x2fee95['joins'][_0x3757f7][_0xcba3('0x85')]){_0x4bc17f[_0x2fee95[_0xcba3('0x82')][_0x3757f7][_0xcba3('0x42')]](_0x2fee95['joins'][_0x3757f7][_0xcba3('0x86')],null,util[_0xcba3('0x7d')](_0xcba3('0x87'),_0x2fee95[_0xcba3('0x77')],_0x2fee95[_0xcba3('0x82')][_0x3757f7][_0xcba3('0x84')],_0x2fee95[_0xcba3('0x82')][_0x3757f7][_0xcba3('0x86')],_0x2fee95[_0xcba3('0x82')][_0x3757f7][_0xcba3('0x85')]));}}}if(_0x2fee95['conditions']){_0x2fee95['conditions']=JSON[_0xcba3('0x83')](_0x2fee95[_0xcba3('0x88')]);_0x4bc17f['where'](_0x3e1c59(_0x2fee95['conditions'][_0xcba3('0x6d')]));}_0x1b74f6=_0x4bc17f[_0xcba3('0x89')]();_0x4bc17f[_0xcba3('0x1f')](_0x2eeea2);_0x4bc17f['offset'](0x0);logger[_0xcba3('0x8a')](_0xcba3('0x8b'),_0x4bc17f[_0xcba3('0x8c')]());return dbH[_0xcba3('0x8d')][_0xcba3('0x34')](_0x4bc17f['toString'](),{'type':dbH[_0xcba3('0x8d')][_0xcba3('0x8e')][_0xcba3('0x8f')]});}})[_0xcba3('0x27')](respondWithResult(_0x397308,null))[_0xcba3('0x49')](handleError(_0x397308,null));};function runReport(_0x27bf60,_0x537c62,_0x4c1421){var _0xc18753=_0x537c62[_0xcba3('0x2d')];var _0x2d5b90=0xa;var _0x368c01=[_0xcba3('0x58'),_0xcba3('0x59'),_0xcba3('0x5a'),_0xcba3('0x5b')];var _0x1d69c={'SUM':_0xcba3('0x5c'),'COUNT':_0xcba3('0x5d'),'COUNT DISTINCT':_0xcba3('0x5e'),'MAX':'MAX(%s)','MIN':_0xcba3('0x5f'),'AVG':_0xcba3('0x60'),'GROUP_CONCAT':_0xcba3('0x61'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xcba3('0x62')};var _0x4bd84d={'SEC_TO_TIME':_0xcba3('0x90'),'DATE':_0xcba3('0x63'),'HOUR':_0xcba3('0x91'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x3d15e8=function(_0x5b23f8){return!_[_0xcba3('0x66')]([_0xcba3('0x67'),_0xcba3('0x68'),_0xcba3('0x69'),'IS\x20NOT\x20EMPTY'],_0x5b23f8);};var _0x569dc1=function(_0x57c1d5){if(!_0x57c1d5||!_0x57c1d5[_0xcba3('0x6b')][_0xcba3('0x39')]){return'';}for(var _0x867a8d='(',_0x3a273c=0x0;_0x3a273c<_0x57c1d5[_0xcba3('0x6b')][_0xcba3('0x39')];_0x3a273c+=0x1){_0x3a273c>0x0&&(_0x867a8d+='\x20'+_0x57c1d5[_0xcba3('0x6c')]+'\x20');_0x867a8d+=_0x57c1d5[_0xcba3('0x6b')][_0x3a273c]['group']?_0x569dc1(_0x57c1d5[_0xcba3('0x6b')][_0x3a273c][_0xcba3('0x6d')]):_0x57c1d5[_0xcba3('0x6b')][_0x3a273c][_0xcba3('0x7a')]+'\x20'+_0x57c1d5[_0xcba3('0x6b')][_0x3a273c][_0xcba3('0x6e')]+(_0x3d15e8(_0x57c1d5[_0xcba3('0x6b')][_0x3a273c][_0xcba3('0x6e')])?'\x20'+_0x57c1d5['rules'][_0x3a273c][_0xcba3('0x92')]:'');}return _0x867a8d+')';};var _0x47d1ad={'where':{'id':_0x27bf60['id']}},_0x1796a6,_0x3a5ca6,_0x6f140d,_0x1eef55,_0x327f6b;_0x47d1ad=_[_0xcba3('0x6f')]({},_0x47d1ad,_0x4c1421);return db[_0xcba3('0x31')][_0xcba3('0x4c')](_0x47d1ad)[_0xcba3('0x27')](function(_0x317e0a){if(_0x317e0a){_0x1796a6=_0x317e0a;return _0x317e0a[_0xcba3('0x70')]();}return null;})[_0xcba3('0x27')](function(_0x29cdee){if(_0x29cdee){if(!_0x29cdee[_0xcba3('0x39')]){throw new db['Sequelize'][(_0xcba3('0x72'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x3a5ca6=_0x29cdee;return db[_0xcba3('0x73')][_0xcba3('0x47')]({'raw':!![]});}return null;})['then'](function(_0x1a0d63){if(_0x1a0d63){_0x6f140d=_[_0xcba3('0x74')](_0x1a0d63,'id');var _0x5b30b5;var _0x5a8689=squel[_0xcba3('0x75')]();_0x5a8689['from'](_0x1796a6[_0xcba3('0x77')]);for(var _0x4086b2=0x0;_0x4086b2<_0x3a5ca6['length'];_0x4086b2+=0x1){_0x5b30b5=_0x3a5ca6[_0x4086b2]['MetricId']?_0x6f140d[_0x3a5ca6[_0x4086b2][_0xcba3('0x78')]][_0xcba3('0x79')]:_0x3a5ca6[_0x4086b2][_0xcba3('0x7a')];_0x5b30b5=_0x3a5ca6[_0x4086b2][_0xcba3('0x7b')]?_['replace'](_0x1d69c[_0x3a5ca6[_0x4086b2][_0xcba3('0x7b')]],'%s',_0x5b30b5):_0x5b30b5;_0x5b30b5=_0x3a5ca6[_0x4086b2]['format']?_[_0xcba3('0x7c')](_0x4bd84d[_0x3a5ca6[_0x4086b2][_0xcba3('0x7d')]],'%s',_0x5b30b5):_0x5b30b5;if(_0x3a5ca6[_0x4086b2]['groupBy']){_0x5a8689[_0xcba3('0x6d')](_0x5b30b5);}_0x3a5ca6[_0x4086b2][_0xcba3('0x7f')]&&_0x5a8689[_0xcba3('0x3c')](_0x5b30b5,_0x3a5ca6[_0x4086b2][_0xcba3('0x7f')]===_0xcba3('0x80')?![]:!![]);_0x5a8689['field'](_0x5b30b5,_0x3a5ca6[_0x4086b2]['alias']||_0x5b30b5);}if(_0x1796a6['joins']){_0x1796a6[_0xcba3('0x82')]=JSON[_0xcba3('0x83')](_0x1796a6[_0xcba3('0x82')]);for(var _0x212c5d=0x0;_0x212c5d<_0x1796a6[_0xcba3('0x82')][_0xcba3('0x39')];_0x212c5d+=0x1){if(_0x1796a6[_0xcba3('0x82')][_0x212c5d][_0xcba3('0x42')]&&_[_0xcba3('0x66')](_0x368c01,_0x1796a6[_0xcba3('0x82')][_0x212c5d]['type'])&&_0x1796a6['joins'][_0x212c5d][_0xcba3('0x84')]&&_0x1796a6[_0xcba3('0x82')][_0x212c5d]['foreignTable']&&_0x1796a6['joins'][_0x212c5d][_0xcba3('0x85')]){_0x5a8689[_0x1796a6['joins'][_0x212c5d][_0xcba3('0x42')]](_0x1796a6['joins'][_0x212c5d][_0xcba3('0x86')],null,util[_0xcba3('0x7d')](_0xcba3('0x87'),_0x1796a6[_0xcba3('0x77')],_0x1796a6[_0xcba3('0x82')][_0x212c5d][_0xcba3('0x84')],_0x1796a6[_0xcba3('0x82')][_0x212c5d]['foreignTable'],_0x1796a6[_0xcba3('0x82')][_0x212c5d][_0xcba3('0x85')]));}}}if(_0x1796a6[_0xcba3('0x88')]){_0x1796a6[_0xcba3('0x88')]=JSON['parse'](_0x1796a6[_0xcba3('0x88')]);_0x5a8689[_0xcba3('0x3e')](_0x569dc1(_0x1796a6['conditions']['group']));}_0x327f6b=_0x5a8689[_0xcba3('0x89')]();_0x5a8689[_0xcba3('0x1f')](_0x2d5b90);_0x5a8689[_0xcba3('0x1d')](0x0);return;}})[_0xcba3('0x27')](function(){if(_0x537c62[_0xcba3('0x93')]==='web'){return null;}var _0xa476e=_['merge'](_0x537c62,{'name':_0x537c62[_0xcba3('0x94')]||_0x537c62[_0xcba3('0x2d')]||_0x1796a6[_0xcba3('0x2d')],'basename':_0xc18753,'savename':util[_0xcba3('0x7d')](_0xcba3('0x95'),_0x537c62[_0xcba3('0x2d')]||_0x1796a6[_0xcba3('0x2d')],require(_0xcba3('0x96'))[_0xcba3('0x97')](0x4),_0x537c62[_0xcba3('0x93')]||_0xcba3('0x98')),'reportId':_0x1796a6['id'],'reportType':'custom'});return db['AnalyticExtractedReport']['create'](_0xa476e,{'raw':!![]});})[_0xcba3('0x27')](function(_0x1f9bf8){if(_0x1796a6['table']===_0xcba3('0x99')){_0x327f6b[_0xcba3('0x3e')](_0x1796a6[_0xcba3('0x77')]+_0xcba3('0x9a'),_0x537c62[_0xcba3('0x9b')],_0x537c62[_0xcba3('0x9c')]);}else{_0x327f6b[_0xcba3('0x3e')](_0x1796a6[_0xcba3('0x77')]+_0xcba3('0x9d'),_0x537c62[_0xcba3('0x9b')],_0x537c62[_0xcba3('0x9c')]);}if(_0x1f9bf8){logger[_0xcba3('0x9e')]('Run\x20Query:',_0x327f6b[_0xcba3('0x8c')]());require('child_process')[_0xcba3('0x9f')](path[_0xcba3('0x58')](__dirname,_0xcba3('0xa0'),_0x1f9bf8['output']),[_0x1f9bf8['id'],_0x327f6b[_0xcba3('0x8c')](),path[_0xcba3('0x58')](__dirname,_0xcba3('0xa1'),_0x1f9bf8['savename']),_0xc18753]);return _0x1f9bf8;}else{var _0xc70ba2=squel[_0xcba3('0x75')]();_0xc70ba2[_0xcba3('0x76')]('('+_0x327f6b[_0xcba3('0x8c')]()+')',_0xcba3('0xa2'));_0xc70ba2[_0xcba3('0x7a')]('COUNT(*)','count');_0x327f6b[_0xcba3('0x1f')](_0x537c62['limit']||_0x2d5b90);_0x327f6b[_0xcba3('0x1d')](_0x537c62['offset']||0x0);return dbH[_0xcba3('0x8d')][_0xcba3('0x34')](_0xc70ba2[_0xcba3('0x8c')](),{'type':dbH['sequelize'][_0xcba3('0x8e')][_0xcba3('0x8f')]})[_0xcba3('0x27')](function(_0x1d79f9){if(!_0x1d79f9[_0xcba3('0x39')]){_0x1eef55=0x0;}else{_0x1eef55=_0x1d79f9[0x0][_0xcba3('0x20')]||0x0;}return dbH[_0xcba3('0x8d')][_0xcba3('0x34')](_0x327f6b[_0xcba3('0x8c')](),{'type':dbH['sequelize'][_0xcba3('0x8e')]['SELECT']});})[_0xcba3('0x27')](function(_0x6a0cda){return{'rows':_0x6a0cda||[],'count':_0x1eef55};});}});}exports[_0xcba3('0xa3')]=function(_0x4f39e0,_0x52ec36){return runReport(_0x4f39e0[_0xcba3('0x4b')],_0x4f39e0['query'],_0x4f39e0[_0xcba3('0x44')])[_0xcba3('0x27')](respondWithResult(_0x52ec36,null))['catch'](handleError(_0x52ec36,null));};exports[_0xcba3('0xa4')]=runReport;exports['query']=function(_0x2a5f7a,_0x4cbe6d){var _0x18d527=0xa;var _0x25744c=['join',_0xcba3('0x59'),_0xcba3('0x5a'),'cross_join'];var _0x56a08c={'SUM':'SUM(%s)','COUNT':_0xcba3('0x5d'),'COUNT DISTINCT':_0xcba3('0x5e'),'MAX':_0xcba3('0xa5'),'MIN':'MIN(%s)','AVG':_0xcba3('0x60'),'GROUP_CONCAT':_0xcba3('0x61'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xcba3('0x62')};var _0x36f027={'SEC_TO_TIME':_0xcba3('0x90'),'DATE':_0xcba3('0x63'),'HOUR':_0xcba3('0x91'),'ROUND':_0xcba3('0x64'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x5ee84f=function(_0x4dcbd1){return!_['includes']([_0xcba3('0x67'),_0xcba3('0x68'),_0xcba3('0x69'),_0xcba3('0x6a')],_0x4dcbd1);};var _0x7815de=function(_0x3f09e5){if(!_0x3f09e5||!_0x3f09e5[_0xcba3('0x6b')][_0xcba3('0x39')]){return'';}for(var _0x18ce4e='(',_0x17e03c=0x0;_0x17e03c<_0x3f09e5['rules'][_0xcba3('0x39')];_0x17e03c+=0x1){_0x17e03c>0x0&&(_0x18ce4e+='\x20'+_0x3f09e5['operator']+'\x20');_0x18ce4e+=_0x3f09e5['rules'][_0x17e03c][_0xcba3('0x6d')]?_0x7815de(_0x3f09e5[_0xcba3('0x6b')][_0x17e03c]['group']):_0x3f09e5[_0xcba3('0x6b')][_0x17e03c]['field']+'\x20'+_0x3f09e5[_0xcba3('0x6b')][_0x17e03c][_0xcba3('0x6e')]+(_0x5ee84f(_0x3f09e5[_0xcba3('0x6b')][_0x17e03c][_0xcba3('0x6e')])?'\x20'+_0x3f09e5['rules'][_0x17e03c][_0xcba3('0x92')]:'');}return _0x18ce4e+')';};var _0x82cde7={'where':{'id':_0x2a5f7a[_0xcba3('0x4b')]['id']}},_0x12d34c,_0x2f46e0,_0x44fb22,_0x1bbbfc,_0x567de0;_0x82cde7=_[_0xcba3('0x6f')]({},_0x82cde7,_0x2a5f7a['options']);return db[_0xcba3('0x31')][_0xcba3('0x4c')](_0x82cde7)[_0xcba3('0x27')](function(_0x3d9fbc){if(_0x3d9fbc){_0x12d34c=_0x3d9fbc;return _0x3d9fbc[_0xcba3('0x70')]();}return null;})[_0xcba3('0x27')](function(_0x523ecf){if(_0x523ecf){if(!_0x523ecf[_0xcba3('0x39')]){throw new db[(_0xcba3('0x71'))][(_0xcba3('0x72'))](_0xcba3('0xa6'),0x193);}_0x2f46e0=_0x523ecf;return db['AnalyticMetric'][_0xcba3('0x47')]({'raw':!![]});}return null;})[_0xcba3('0x27')](function(_0x3e8216){if(_0x3e8216){_0x44fb22=_[_0xcba3('0x74')](_0x3e8216,'id');var _0x6ff62e;var _0xb1606a=squel[_0xcba3('0x75')]();_0xb1606a[_0xcba3('0x76')](_0x12d34c['table']);for(var _0x2598be=0x0;_0x2598be<_0x2f46e0[_0xcba3('0x39')];_0x2598be+=0x1){_0x6ff62e=_0x2f46e0[_0x2598be][_0xcba3('0x78')]?_0x44fb22[_0x2f46e0[_0x2598be]['MetricId']][_0xcba3('0x79')]:_0x2f46e0[_0x2598be][_0xcba3('0x7a')];_0x6ff62e=_0x2f46e0[_0x2598be][_0xcba3('0x7b')]?_[_0xcba3('0x7c')](_0x56a08c[_0x2f46e0[_0x2598be][_0xcba3('0x7b')]],'%s',_0x6ff62e):_0x6ff62e;_0x6ff62e=_0x2f46e0[_0x2598be][_0xcba3('0x7d')]?_['replace'](_0x36f027[_0x2f46e0[_0x2598be][_0xcba3('0x7d')]],'%s',_0x6ff62e):_0x6ff62e;if(_0x2f46e0[_0x2598be]['groupBy']){_0xb1606a[_0xcba3('0x6d')](_0x6ff62e);}_0x2f46e0[_0x2598be][_0xcba3('0x7f')]&&_0xb1606a['order'](_0x6ff62e,_0x2f46e0[_0x2598be][_0xcba3('0x7f')]===_0xcba3('0x80')?![]:!![]);_0xb1606a['field'](_0x6ff62e,_0x2f46e0[_0x2598be][_0xcba3('0x81')]||_0x6ff62e);}if(_0x12d34c['joins']){_0x12d34c[_0xcba3('0x82')]=JSON[_0xcba3('0x83')](_0x12d34c[_0xcba3('0x82')]);for(var _0x3333c6=0x0;_0x3333c6<_0x12d34c[_0xcba3('0x82')][_0xcba3('0x39')];_0x3333c6+=0x1){if(_0x12d34c[_0xcba3('0x82')][_0x3333c6][_0xcba3('0x42')]&&_['includes'](_0x25744c,_0x12d34c[_0xcba3('0x82')][_0x3333c6]['type'])&&_0x12d34c[_0xcba3('0x82')][_0x3333c6][_0xcba3('0x84')]&&_0x12d34c['joins'][_0x3333c6][_0xcba3('0x86')]&&_0x12d34c[_0xcba3('0x82')][_0x3333c6][_0xcba3('0x85')]){_0xb1606a[_0x12d34c[_0xcba3('0x82')][_0x3333c6]['type']](_0x12d34c[_0xcba3('0x82')][_0x3333c6][_0xcba3('0x86')],null,util[_0xcba3('0x7d')]('%s.%s\x20=\x20%s.%s',_0x12d34c[_0xcba3('0x77')],_0x12d34c['joins'][_0x3333c6][_0xcba3('0x84')],_0x12d34c['joins'][_0x3333c6][_0xcba3('0x86')],_0x12d34c[_0xcba3('0x82')][_0x3333c6][_0xcba3('0x85')]));}}}if(_0x12d34c[_0xcba3('0x88')]){_0x12d34c[_0xcba3('0x88')]=JSON[_0xcba3('0x83')](_0x12d34c[_0xcba3('0x88')]);_0xb1606a[_0xcba3('0x3e')](_0x7815de(_0x12d34c[_0xcba3('0x88')][_0xcba3('0x6d')]));}_0x567de0=_0xb1606a[_0xcba3('0x89')]();_0xb1606a[_0xcba3('0x1f')](_0x18d527);_0xb1606a[_0xcba3('0x1d')](0x0);logger[_0xcba3('0x8a')]('Limited\x20Query:',_0xb1606a[_0xcba3('0x8c')]());return dbH[_0xcba3('0x8d')][_0xcba3('0x34')](_0xb1606a[_0xcba3('0x8c')](),{'type':dbH[_0xcba3('0x8d')]['QueryTypes'][_0xcba3('0x8f')]});}})[_0xcba3('0x27')](function(){return{'sql':_0x567de0['toString']()};})['then'](respondWithResult(_0x4cbe6d,null))[_0xcba3('0x49')](handleError(_0x4cbe6d,null));};