c292f35036e94672ab0a7558b9ac0cb3ebb6cb9f
[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 _0x7ee0=['map','AnalyticCustomReport','rawAttributes','fieldName','key','model','query','keys','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','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','cross_join','SUM(%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)','SEC_TO_TIME(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','function','format','replace','groupBy','orderBy','alias','joins','parse','type','foreignTable','%s.%s\x20=\x20%s.%s','foreignKey','conditions','clone','debug','sequelize','QueryTypes','SELECT','right_join','COUNT(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','DESC','parentKey','output','fullPath','%s-%s.%s','randomstring','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','toString','fork','../../components/export/','savename','countTable','COUNT(*)','IS\x20NULL','IS\x20NOT\x20NULL','Limited\x20Query:','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','get','CustomReports','UserProfileResource','sendStatus','error','name','send','index'];(function(_0x2e4794,_0x3d2731){var _0x433bc1=function(_0x33a3c9){while(--_0x33a3c9){_0x2e4794['push'](_0x2e4794['shift']());}};_0x433bc1(++_0x3d2731);}(_0x7ee0,0x123));var _0x07ee=function(_0x18398b,_0x1c0169){_0x18398b=_0x18398b-0x0;var _0x381dae=_0x7ee0[_0x18398b];return _0x381dae;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x07ee('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x07ee('0x1'));var rp=require(_0x07ee('0x2'));var moment=require(_0x07ee('0x3'));var BPromise=require(_0x07ee('0x4'));var Mustache=require(_0x07ee('0x5'));var util=require(_0x07ee('0x6'));var path=require(_0x07ee('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x07ee('0x8'));var fs=require('fs');var fs_extra=require(_0x07ee('0x9'));var _=require(_0x07ee('0xa'));var squel=require(_0x07ee('0xb'));var crypto=require(_0x07ee('0xc'));var jsforce=require(_0x07ee('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x07ee('0xe'));var querystring=require(_0x07ee('0xf'));var Papa=require('papaparse');var Redis=require(_0x07ee('0x10'));var authService=require(_0x07ee('0x11'));var qs=require(_0x07ee('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x07ee('0x13'));var logger=require('../../config/logger')(_0x07ee('0x14'));var utils=require(_0x07ee('0x15'));var config=require(_0x07ee('0x16'));var licenseUtil=require(_0x07ee('0x17'));var db=require('../../mysqldb')['db'];var dbH=require(_0x07ee('0x18'))[_0x07ee('0x19')];function respondWithStatusCode(_0x17a46f,_0x2d90d5){_0x2d90d5=_0x2d90d5||0xcc;return function(_0x5a0d4c){if(_0x5a0d4c){return _0x17a46f['sendStatus'](_0x2d90d5);}return _0x17a46f[_0x07ee('0x1a')](_0x2d90d5)[_0x07ee('0x1b')]();};}function respondWithResult(_0x491624,_0x1e544d){_0x1e544d=_0x1e544d||0xc8;return function(_0x1aa2f1){if(_0x1aa2f1){return _0x491624['status'](_0x1e544d)[_0x07ee('0x1c')](_0x1aa2f1);}};}function respondWithFilteredResult(_0x30ea8e,_0x88675e){return function(_0x4ae67f){if(_0x4ae67f){var _0x16e0f4=typeof _0x88675e[_0x07ee('0x1d')]===_0x07ee('0x1e')&&typeof _0x88675e[_0x07ee('0x1f')]===_0x07ee('0x1e');var _0x347228=_0x4ae67f[_0x07ee('0x20')];var _0x569b17=_0x16e0f4?0x0:_0x88675e[_0x07ee('0x1d')];var _0x2bd70e=_0x16e0f4?_0x4ae67f[_0x07ee('0x20')]:_0x88675e[_0x07ee('0x1d')]+_0x88675e[_0x07ee('0x1f')];var _0x5c5ca2;if(_0x2bd70e>=_0x347228){_0x2bd70e=_0x347228;_0x5c5ca2=0xc8;}else{_0x5c5ca2=0xce;}_0x30ea8e[_0x07ee('0x1a')](_0x5c5ca2);return _0x30ea8e['set'](_0x07ee('0x21'),_0x569b17+'-'+_0x2bd70e+'/'+_0x347228)[_0x07ee('0x1c')](_0x4ae67f);}return null;};}function patchUpdates(_0x15013b){return function(_0x351dfb){try{jsonpatch[_0x07ee('0x22')](_0x351dfb,_0x15013b,!![]);}catch(_0xf249c){return BPromise[_0x07ee('0x23')](_0xf249c);}return _0x351dfb['save']();};}function saveUpdates(_0x4d40f4,_0x7e8b8f){return function(_0x2f965d){if(_0x2f965d){return _0x2f965d[_0x07ee('0x24')](_0x4d40f4)[_0x07ee('0x25')](function(_0x382cfb){return _0x382cfb;});}return null;};}function removeEntity(_0x3058fa,_0x40038d){return function(_0x4f38c0){if(_0x4f38c0){return _0x4f38c0[_0x07ee('0x26')]()[_0x07ee('0x25')](function(){var _0x29d69b=_0x4f38c0[_0x07ee('0x27')]({'plain':!![]});var _0x44bd18=_0x07ee('0x28');return db[_0x07ee('0x29')][_0x07ee('0x26')]({'where':{'type':_0x44bd18,'resourceId':_0x29d69b['id']}})['then'](function(){return _0x4f38c0;});})['then'](function(){_0x3058fa[_0x07ee('0x1a')](0xcc)[_0x07ee('0x1b')]();});}};}function handleEntityNotFound(_0xe21fa4,_0x2b1a35){return function(_0x5dfdf9){if(!_0x5dfdf9){_0xe21fa4[_0x07ee('0x2a')](0x194);}return _0x5dfdf9;};}function handleError(_0x300abe,_0x520ba2){_0x520ba2=_0x520ba2||0x1f4;return function(_0x181568){logger[_0x07ee('0x2b')](_0x181568['stack']);if(_0x181568[_0x07ee('0x2c')]){delete _0x181568[_0x07ee('0x2c')];}_0x300abe[_0x07ee('0x1a')](_0x520ba2)[_0x07ee('0x2d')](_0x181568);};}exports[_0x07ee('0x2e')]=function(_0x420cef,_0x5bb9c0){var _0x251607={},_0x9788fd={},_0x260b30={'count':0x0,'rows':[]};var _0x21ada1=_[_0x07ee('0x2f')](db[_0x07ee('0x30')][_0x07ee('0x31')],function(_0x5c1c24){return{'name':_0x5c1c24[_0x07ee('0x32')],'type':_0x5c1c24['type'][_0x07ee('0x33')]};});_0x9788fd[_0x07ee('0x34')]=_[_0x07ee('0x2f')](_0x21ada1,_0x07ee('0x2c'));_0x9788fd[_0x07ee('0x35')]=_[_0x07ee('0x36')](_0x420cef[_0x07ee('0x35')]);_0x9788fd['filters']=_[_0x07ee('0x37')](_0x9788fd['model'],_0x9788fd[_0x07ee('0x35')]);_0x251607[_0x07ee('0x38')]=_[_0x07ee('0x37')](_0x9788fd[_0x07ee('0x34')],qs[_0x07ee('0x39')](_0x420cef[_0x07ee('0x35')]['fields']));_0x251607['attributes']=_0x251607[_0x07ee('0x38')][_0x07ee('0x3a')]?_0x251607[_0x07ee('0x38')]:_0x9788fd[_0x07ee('0x34')];if(!_0x420cef['query'][_0x07ee('0x3b')](_0x07ee('0x3c'))){_0x251607[_0x07ee('0x1f')]=qs[_0x07ee('0x1f')](_0x420cef['query']['limit']);_0x251607[_0x07ee('0x1d')]=qs[_0x07ee('0x1d')](_0x420cef[_0x07ee('0x35')][_0x07ee('0x1d')]);}_0x251607[_0x07ee('0x3d')]=qs['sort'](_0x420cef[_0x07ee('0x35')][_0x07ee('0x3e')]);_0x251607[_0x07ee('0x3f')]=qs[_0x07ee('0x40')](_[_0x07ee('0x41')](_0x420cef['query'],_0x9788fd[_0x07ee('0x40')]),_0x21ada1);if(_0x420cef[_0x07ee('0x35')][_0x07ee('0x42')]){_0x251607['where']=_[_0x07ee('0x43')](_0x251607['where'],{'$or':_['map'](_0x21ada1,function(_0x4323f8){if(_0x4323f8['type']!==_0x07ee('0x44')){var _0x24b81b={};_0x24b81b[_0x4323f8[_0x07ee('0x2c')]]={'$like':'%'+_0x420cef[_0x07ee('0x35')][_0x07ee('0x42')]+'%'};return _0x24b81b;}})});}_0x251607=_[_0x07ee('0x43')]({},_0x251607,_0x420cef[_0x07ee('0x45')]);var _0x3a74fc={'where':_0x251607[_0x07ee('0x3f')]};return db[_0x07ee('0x30')][_0x07ee('0x20')](_0x3a74fc)[_0x07ee('0x25')](function(_0x218183){_0x260b30['count']=_0x218183;if(_0x420cef[_0x07ee('0x35')][_0x07ee('0x46')]){_0x251607[_0x07ee('0x47')]=[{'all':!![]}];}return db[_0x07ee('0x30')]['findAll'](_0x251607);})[_0x07ee('0x25')](function(_0x457d52){_0x260b30[_0x07ee('0x48')]=_0x457d52;return _0x260b30;})[_0x07ee('0x25')](respondWithFilteredResult(_0x5bb9c0,_0x251607))[_0x07ee('0x49')](handleError(_0x5bb9c0,null));};exports[_0x07ee('0x4a')]=function(_0x3fed0b,_0x5e895c){var _0x124d95={'raw':![],'where':{'id':_0x3fed0b[_0x07ee('0x4b')]['id']}},_0x195311={};_0x195311['model']=_['keys'](db['AnalyticCustomReport'][_0x07ee('0x31')]);_0x195311[_0x07ee('0x35')]=_[_0x07ee('0x36')](_0x3fed0b[_0x07ee('0x35')]);_0x195311[_0x07ee('0x40')]=_[_0x07ee('0x37')](_0x195311['model'],_0x195311[_0x07ee('0x35')]);_0x124d95[_0x07ee('0x38')]=_[_0x07ee('0x37')](_0x195311[_0x07ee('0x34')],qs[_0x07ee('0x39')](_0x3fed0b['query']['fields']));_0x124d95[_0x07ee('0x38')]=_0x124d95['attributes'][_0x07ee('0x3a')]?_0x124d95[_0x07ee('0x38')]:_0x195311[_0x07ee('0x34')];if(_0x3fed0b[_0x07ee('0x35')][_0x07ee('0x46')]){_0x124d95[_0x07ee('0x47')]=[{'all':!![]}];}_0x124d95=_[_0x07ee('0x43')]({},_0x124d95,_0x3fed0b[_0x07ee('0x45')]);return db[_0x07ee('0x30')][_0x07ee('0x4c')](_0x124d95)['then'](handleEntityNotFound(_0x5e895c,null))[_0x07ee('0x25')](respondWithResult(_0x5e895c,null))[_0x07ee('0x49')](handleError(_0x5e895c,null));};exports[_0x07ee('0x4d')]=function(_0xdacf3d,_0xc8d223){return db[_0x07ee('0x30')]['create'](_0xdacf3d[_0x07ee('0x4e')],{})['then'](function(_0x1f13c3){var _0x43b97f=_0xdacf3d[_0x07ee('0x4f')][_0x07ee('0x27')]({'plain':!![]});if(!_0x43b97f)throw new Error(_0x07ee('0x50'));if(_0x43b97f[_0x07ee('0x51')]===_0x07ee('0x4f')){var _0x63d5f3=_0x1f13c3[_0x07ee('0x27')]({'plain':!![]});var _0xbc78ae='Reports';return db[_0x07ee('0x52')][_0x07ee('0x4c')]({'where':{'name':_0xbc78ae,'userProfileId':_0x43b97f[_0x07ee('0x53')]},'raw':!![]})[_0x07ee('0x25')](function(_0x82a833){if(_0x82a833&&_0x82a833[_0x07ee('0x54')]===0x0){return db[_0x07ee('0x29')][_0x07ee('0x4d')]({'name':_0x63d5f3[_0x07ee('0x2c')],'resourceId':_0x63d5f3['id'],'type':_0x07ee('0x28'),'sectionId':_0x82a833['id']},{})[_0x07ee('0x25')](function(){return _0x1f13c3;});}else{return _0x1f13c3;}})[_0x07ee('0x49')](function(_0x4b4893){logger[_0x07ee('0x2b')](_0x07ee('0x55'),_0x4b4893);throw _0x4b4893;});}return _0x1f13c3;})[_0x07ee('0x25')](respondWithResult(_0xc8d223,0xc9))['catch'](handleError(_0xc8d223,null));};exports[_0x07ee('0x24')]=function(_0x5bba31,_0x356095){if(_0x5bba31[_0x07ee('0x4e')]['id']){delete _0x5bba31[_0x07ee('0x4e')]['id'];}return db[_0x07ee('0x30')][_0x07ee('0x4c')]({'where':{'id':_0x5bba31[_0x07ee('0x4b')]['id']}})['then'](handleEntityNotFound(_0x356095,null))[_0x07ee('0x25')](saveUpdates(_0x5bba31[_0x07ee('0x4e')],null))['then'](respondWithResult(_0x356095,null))['catch'](handleError(_0x356095,null));};exports[_0x07ee('0x26')]=function(_0x3d849f,_0x67cb76){return db[_0x07ee('0x30')]['find']({'where':{'id':_0x3d849f['params']['id']}})[_0x07ee('0x25')](handleEntityNotFound(_0x67cb76,null))[_0x07ee('0x25')](removeEntity(_0x67cb76,null))[_0x07ee('0x49')](handleError(_0x67cb76,null));};exports[_0x07ee('0x56')]=function(_0x5c9463,_0x35113b){var _0x2984fb=0xa;var _0x469b65=[_0x07ee('0x57'),_0x07ee('0x58'),'right_join',_0x07ee('0x59')];var _0xf39c99={'SUM':_0x07ee('0x5a'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x07ee('0x5b'),'MAX':_0x07ee('0x5c'),'MIN':_0x07ee('0x5d'),'AVG':_0x07ee('0x5e'),'GROUP_CONCAT':_0x07ee('0x5f'),'GROUP_CONCAT ASC':_0x07ee('0x60'),'GROUP_CONCAT DESC':_0x07ee('0x61')};var _0x58fa92={'SEC_TO_TIME':_0x07ee('0x62'),'DATE':'DATE(%s)','HOUR':_0x07ee('0x63'),'ROUND':_0x07ee('0x64'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x5170f2=function(_0x56e95c){return!_[_0x07ee('0x65')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x07ee('0x66'),_0x07ee('0x67')],_0x56e95c);};var _0x46cc2c=function(_0x3188c5){if(!_0x3188c5||!_0x3188c5[_0x07ee('0x68')][_0x07ee('0x3a')]){return'';}for(var _0x513821='(',_0x4794f6=0x0;_0x4794f6<_0x3188c5['rules'][_0x07ee('0x3a')];_0x4794f6+=0x1){_0x4794f6>0x0&&(_0x513821+='\x20'+_0x3188c5[_0x07ee('0x69')]+'\x20');_0x513821+=_0x3188c5[_0x07ee('0x68')][_0x4794f6]['group']?_0x46cc2c(_0x3188c5['rules'][_0x4794f6][_0x07ee('0x6a')]):_0x3188c5['rules'][_0x4794f6][_0x07ee('0x6b')]+'\x20'+_0x3188c5[_0x07ee('0x68')][_0x4794f6][_0x07ee('0x6c')]+(_0x5170f2(_0x3188c5[_0x07ee('0x68')][_0x4794f6][_0x07ee('0x6c')])?'\x20'+_0x3188c5[_0x07ee('0x68')][_0x4794f6][_0x07ee('0x6d')]:'');}return _0x513821+')';};var _0x8487f={'where':{'id':_0x5c9463[_0x07ee('0x4b')]['id']}},_0x4fa7e2,_0x23644a,_0x388c37,_0x9412a3,_0x16c1fa;_0x8487f=_[_0x07ee('0x43')]({},_0x8487f,_0x5c9463['options']);return db[_0x07ee('0x30')][_0x07ee('0x4c')](_0x8487f)['then'](function(_0x510176){if(_0x510176){_0x4fa7e2=_0x510176;return _0x510176[_0x07ee('0x6e')]();}return null;})[_0x07ee('0x25')](function(_0x54aacb){if(_0x54aacb){if(!_0x54aacb[_0x07ee('0x3a')]){throw new db[(_0x07ee('0x6f'))][(_0x07ee('0x70'))](_0x07ee('0x71'),0x193);}_0x23644a=_0x54aacb;return db[_0x07ee('0x72')][_0x07ee('0x73')]({'raw':!![]});}return null;})[_0x07ee('0x25')](function(_0x1b24b6){if(_0x1b24b6){_0x388c37=_[_0x07ee('0x74')](_0x1b24b6,'id');var _0x13fb35;var _0xb06d06=squel[_0x07ee('0x75')]();_0xb06d06[_0x07ee('0x76')](_0x4fa7e2[_0x07ee('0x77')]);for(var _0x2078d9=0x0;_0x2078d9<_0x23644a[_0x07ee('0x3a')];_0x2078d9+=0x1){_0x13fb35=_0x23644a[_0x2078d9]['MetricId']?_0x388c37[_0x23644a[_0x2078d9][_0x07ee('0x78')]][_0x07ee('0x79')]:_0x23644a[_0x2078d9]['field'];_0x13fb35=_0x23644a[_0x2078d9][_0x07ee('0x7a')]?_['replace'](_0xf39c99[_0x23644a[_0x2078d9][_0x07ee('0x7a')]],'%s',_0x13fb35):_0x13fb35;_0x13fb35=_0x23644a[_0x2078d9][_0x07ee('0x7b')]?_[_0x07ee('0x7c')](_0x58fa92[_0x23644a[_0x2078d9][_0x07ee('0x7b')]],'%s',_0x13fb35):_0x13fb35;if(_0x23644a[_0x2078d9][_0x07ee('0x7d')]){_0xb06d06[_0x07ee('0x6a')](_0x13fb35);}_0x23644a[_0x2078d9][_0x07ee('0x7e')]&&_0xb06d06[_0x07ee('0x3d')](_0x13fb35,_0x23644a[_0x2078d9][_0x07ee('0x7e')]==='DESC'?![]:!![]);_0xb06d06[_0x07ee('0x6b')](_0x13fb35,_0x23644a[_0x2078d9][_0x07ee('0x7f')]||_0x13fb35);}if(_0x4fa7e2[_0x07ee('0x80')]){_0x4fa7e2['joins']=JSON[_0x07ee('0x81')](_0x4fa7e2[_0x07ee('0x80')]);for(var _0x1e263e=0x0;_0x1e263e<_0x4fa7e2['joins'][_0x07ee('0x3a')];_0x1e263e+=0x1){if(_0x4fa7e2[_0x07ee('0x80')][_0x1e263e][_0x07ee('0x82')]&&_[_0x07ee('0x65')](_0x469b65,_0x4fa7e2['joins'][_0x1e263e][_0x07ee('0x82')])&&_0x4fa7e2[_0x07ee('0x80')][_0x1e263e]['parentKey']&&_0x4fa7e2[_0x07ee('0x80')][_0x1e263e][_0x07ee('0x83')]&&_0x4fa7e2[_0x07ee('0x80')][_0x1e263e]['foreignKey']){_0xb06d06[_0x4fa7e2['joins'][_0x1e263e][_0x07ee('0x82')]](_0x4fa7e2['joins'][_0x1e263e][_0x07ee('0x83')],null,util[_0x07ee('0x7b')](_0x07ee('0x84'),_0x4fa7e2[_0x07ee('0x77')],_0x4fa7e2[_0x07ee('0x80')][_0x1e263e]['parentKey'],_0x4fa7e2['joins'][_0x1e263e][_0x07ee('0x83')],_0x4fa7e2[_0x07ee('0x80')][_0x1e263e][_0x07ee('0x85')]));}}}if(_0x4fa7e2['conditions']){_0x4fa7e2[_0x07ee('0x86')]=JSON['parse'](_0x4fa7e2[_0x07ee('0x86')]);_0xb06d06[_0x07ee('0x3f')](_0x46cc2c(_0x4fa7e2[_0x07ee('0x86')]['group']));}_0x16c1fa=_0xb06d06[_0x07ee('0x87')]();_0xb06d06['limit'](_0x2984fb);_0xb06d06[_0x07ee('0x1d')](0x0);logger[_0x07ee('0x88')]('Limited\x20Query:',_0xb06d06['toString']());return dbH[_0x07ee('0x89')][_0x07ee('0x35')](_0xb06d06['toString'](),{'type':dbH[_0x07ee('0x89')][_0x07ee('0x8a')][_0x07ee('0x8b')]});}})[_0x07ee('0x25')](respondWithResult(_0x35113b,null))[_0x07ee('0x49')](handleError(_0x35113b,null));};function runReport(_0x3a20b6,_0x43711f,_0x4d395c){var _0x5e7e92=_0x43711f['name'];var _0x3cbf3a=0xa;var _0x115809=[_0x07ee('0x57'),_0x07ee('0x58'),_0x07ee('0x8c'),'cross_join'];var _0x5a1a95={'SUM':_0x07ee('0x5a'),'COUNT':_0x07ee('0x8d'),'COUNT DISTINCT':_0x07ee('0x5b'),'MAX':_0x07ee('0x5c'),'MIN':_0x07ee('0x5d'),'AVG':_0x07ee('0x5e'),'GROUP_CONCAT':_0x07ee('0x5f'),'GROUP_CONCAT ASC':_0x07ee('0x60'),'GROUP_CONCAT DESC':_0x07ee('0x61')};var _0x16ce89={'SEC_TO_TIME':_0x07ee('0x62'),'DATE':_0x07ee('0x8e'),'HOUR':'HOUR(%s)','ROUND':_0x07ee('0x64'),'UNIX_TIMESTAMP':_0x07ee('0x8f')};var _0x3a1fc1=function(_0xceb40){return!_['includes'](['IS\x20NULL','IS\x20NOT\x20NULL',_0x07ee('0x66'),_0x07ee('0x67')],_0xceb40);};var _0x240c26=function(_0x49001e){if(!_0x49001e||!_0x49001e[_0x07ee('0x68')][_0x07ee('0x3a')]){return'';}for(var _0x1a147c='(',_0xf6e95e=0x0;_0xf6e95e<_0x49001e[_0x07ee('0x68')][_0x07ee('0x3a')];_0xf6e95e+=0x1){_0xf6e95e>0x0&&(_0x1a147c+='\x20'+_0x49001e[_0x07ee('0x69')]+'\x20');_0x1a147c+=_0x49001e[_0x07ee('0x68')][_0xf6e95e][_0x07ee('0x6a')]?_0x240c26(_0x49001e['rules'][_0xf6e95e][_0x07ee('0x6a')]):_0x49001e['rules'][_0xf6e95e][_0x07ee('0x6b')]+'\x20'+_0x49001e[_0x07ee('0x68')][_0xf6e95e]['condition']+(_0x3a1fc1(_0x49001e[_0x07ee('0x68')][_0xf6e95e][_0x07ee('0x6c')])?'\x20'+_0x49001e[_0x07ee('0x68')][_0xf6e95e][_0x07ee('0x6d')]:'');}return _0x1a147c+')';};var _0x2b2e6c={'where':{'id':_0x3a20b6['id']}},_0x4aabb5,_0x30fced,_0x3ee486,_0x4fa34f,_0x46db12;_0x2b2e6c=_[_0x07ee('0x43')]({},_0x2b2e6c,_0x4d395c);return db[_0x07ee('0x30')][_0x07ee('0x4c')](_0x2b2e6c)[_0x07ee('0x25')](function(_0xc0c61d){if(_0xc0c61d){_0x4aabb5=_0xc0c61d;return _0xc0c61d[_0x07ee('0x6e')]();}return null;})[_0x07ee('0x25')](function(_0x436291){if(_0x436291){if(!_0x436291[_0x07ee('0x3a')]){throw new db['Sequelize'][(_0x07ee('0x70'))](_0x07ee('0x71'),0x193);}_0x30fced=_0x436291;return db[_0x07ee('0x72')][_0x07ee('0x73')]({'raw':!![]});}return null;})[_0x07ee('0x25')](function(_0x892b7e){if(_0x892b7e){_0x3ee486=_[_0x07ee('0x74')](_0x892b7e,'id');var _0x12de04;var _0x53cb4f=squel['select']();_0x53cb4f[_0x07ee('0x76')](_0x4aabb5[_0x07ee('0x77')]);for(var _0x2ab642=0x0;_0x2ab642<_0x30fced[_0x07ee('0x3a')];_0x2ab642+=0x1){_0x12de04=_0x30fced[_0x2ab642][_0x07ee('0x78')]?_0x3ee486[_0x30fced[_0x2ab642][_0x07ee('0x78')]]['metric']:_0x30fced[_0x2ab642][_0x07ee('0x6b')];_0x12de04=_0x30fced[_0x2ab642]['function']?_[_0x07ee('0x7c')](_0x5a1a95[_0x30fced[_0x2ab642]['function']],'%s',_0x12de04):_0x12de04;_0x12de04=_0x30fced[_0x2ab642][_0x07ee('0x7b')]?_[_0x07ee('0x7c')](_0x16ce89[_0x30fced[_0x2ab642][_0x07ee('0x7b')]],'%s',_0x12de04):_0x12de04;if(_0x30fced[_0x2ab642][_0x07ee('0x7d')]){_0x53cb4f[_0x07ee('0x6a')](_0x12de04);}_0x30fced[_0x2ab642][_0x07ee('0x7e')]&&_0x53cb4f[_0x07ee('0x3d')](_0x12de04,_0x30fced[_0x2ab642][_0x07ee('0x7e')]===_0x07ee('0x90')?![]:!![]);_0x53cb4f[_0x07ee('0x6b')](_0x12de04,_0x30fced[_0x2ab642]['alias']||_0x12de04);}if(_0x4aabb5['joins']){_0x4aabb5[_0x07ee('0x80')]=JSON['parse'](_0x4aabb5['joins']);for(var _0x35cef9=0x0;_0x35cef9<_0x4aabb5[_0x07ee('0x80')][_0x07ee('0x3a')];_0x35cef9+=0x1){if(_0x4aabb5['joins'][_0x35cef9][_0x07ee('0x82')]&&_[_0x07ee('0x65')](_0x115809,_0x4aabb5[_0x07ee('0x80')][_0x35cef9][_0x07ee('0x82')])&&_0x4aabb5[_0x07ee('0x80')][_0x35cef9][_0x07ee('0x91')]&&_0x4aabb5[_0x07ee('0x80')][_0x35cef9][_0x07ee('0x83')]&&_0x4aabb5['joins'][_0x35cef9][_0x07ee('0x85')]){_0x53cb4f[_0x4aabb5[_0x07ee('0x80')][_0x35cef9][_0x07ee('0x82')]](_0x4aabb5[_0x07ee('0x80')][_0x35cef9]['foreignTable'],null,util[_0x07ee('0x7b')](_0x07ee('0x84'),_0x4aabb5['table'],_0x4aabb5['joins'][_0x35cef9][_0x07ee('0x91')],_0x4aabb5[_0x07ee('0x80')][_0x35cef9]['foreignTable'],_0x4aabb5[_0x07ee('0x80')][_0x35cef9]['foreignKey']));}}}if(_0x4aabb5[_0x07ee('0x86')]){_0x4aabb5[_0x07ee('0x86')]=JSON[_0x07ee('0x81')](_0x4aabb5[_0x07ee('0x86')]);_0x53cb4f[_0x07ee('0x3f')](_0x240c26(_0x4aabb5[_0x07ee('0x86')][_0x07ee('0x6a')]));}_0x46db12=_0x53cb4f[_0x07ee('0x87')]();_0x53cb4f['limit'](_0x3cbf3a);_0x53cb4f[_0x07ee('0x1d')](0x0);return;}})[_0x07ee('0x25')](function(){if(_0x43711f[_0x07ee('0x92')]==='web'){return null;}var _0x4a51c5=_[_0x07ee('0x43')](_0x43711f,{'name':_0x43711f[_0x07ee('0x93')]||_0x43711f[_0x07ee('0x2c')]||_0x4aabb5[_0x07ee('0x2c')],'basename':_0x5e7e92,'savename':util[_0x07ee('0x7b')](_0x07ee('0x94'),_0x43711f[_0x07ee('0x2c')]||_0x4aabb5['name'],require(_0x07ee('0x95'))['generate'](0x4),_0x43711f[_0x07ee('0x92')]||_0x07ee('0x96')),'reportId':_0x4aabb5['id'],'reportType':_0x07ee('0x97')});return db[_0x07ee('0x98')]['create'](_0x4a51c5,{'raw':!![]});})[_0x07ee('0x25')](function(_0x286f0a){if(_0x4aabb5['table']===_0x07ee('0x99')){_0x46db12[_0x07ee('0x3f')](_0x4aabb5['table']+_0x07ee('0x9a'),_0x43711f[_0x07ee('0x9b')],_0x43711f[_0x07ee('0x9c')]);}else{_0x46db12[_0x07ee('0x3f')](_0x4aabb5[_0x07ee('0x77')]+_0x07ee('0x9d'),_0x43711f['startDate'],_0x43711f[_0x07ee('0x9c')]);}if(_0x286f0a){logger[_0x07ee('0x9e')](_0x07ee('0x9f'),_0x46db12[_0x07ee('0xa0')]());require('child_process')[_0x07ee('0xa1')](path[_0x07ee('0x57')](__dirname,_0x07ee('0xa2'),_0x286f0a['output']),[_0x286f0a['id'],_0x46db12[_0x07ee('0xa0')](),path[_0x07ee('0x57')](__dirname,'../../files/reports',_0x286f0a[_0x07ee('0xa3')]),_0x5e7e92]);return _0x286f0a;}else{var _0x348e97=squel[_0x07ee('0x75')]();_0x348e97['from']('('+_0x46db12['toString']()+')',_0x07ee('0xa4'));_0x348e97['field'](_0x07ee('0xa5'),_0x07ee('0x20'));_0x46db12[_0x07ee('0x1f')](_0x43711f[_0x07ee('0x1f')]||_0x3cbf3a);_0x46db12[_0x07ee('0x1d')](_0x43711f[_0x07ee('0x1d')]||0x0);return dbH[_0x07ee('0x89')][_0x07ee('0x35')](_0x348e97[_0x07ee('0xa0')](),{'type':dbH[_0x07ee('0x89')][_0x07ee('0x8a')][_0x07ee('0x8b')]})[_0x07ee('0x25')](function(_0x55affe){if(!_0x55affe[_0x07ee('0x3a')]){_0x4fa34f=0x0;}else{_0x4fa34f=_0x55affe[0x0][_0x07ee('0x20')]||0x0;}return dbH['sequelize'][_0x07ee('0x35')](_0x46db12['toString'](),{'type':dbH['sequelize'][_0x07ee('0x8a')][_0x07ee('0x8b')]});})[_0x07ee('0x25')](function(_0x30eac0){return{'rows':_0x30eac0||[],'count':_0x4fa34f};});}});}exports['run']=function(_0x32b2d1,_0x4fb9a4){return runReport(_0x32b2d1['params'],_0x32b2d1[_0x07ee('0x35')],_0x32b2d1[_0x07ee('0x45')])['then'](respondWithResult(_0x4fb9a4,null))[_0x07ee('0x49')](handleError(_0x4fb9a4,null));};exports['runReport']=runReport;exports['query']=function(_0x33f17c,_0x58ccfb){var _0x2e34cf=0xa;var _0x2037c1=['join',_0x07ee('0x58'),_0x07ee('0x8c'),_0x07ee('0x59')];var _0x52620a={'SUM':_0x07ee('0x5a'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x07ee('0x5b'),'MAX':_0x07ee('0x5c'),'MIN':'MIN(%s)','AVG':_0x07ee('0x5e'),'GROUP_CONCAT':_0x07ee('0x5f'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x07ee('0x61')};var _0x6b879c={'SEC_TO_TIME':_0x07ee('0x62'),'DATE':'DATE(%s)','HOUR':_0x07ee('0x63'),'ROUND':_0x07ee('0x64'),'UNIX_TIMESTAMP':_0x07ee('0x8f')};var _0x1ccf68=function(_0x1dd0e9){return!_[_0x07ee('0x65')]([_0x07ee('0xa6'),_0x07ee('0xa7'),_0x07ee('0x66'),'IS\x20NOT\x20EMPTY'],_0x1dd0e9);};var _0x677fc6=function(_0x39d307){if(!_0x39d307||!_0x39d307[_0x07ee('0x68')]['length']){return'';}for(var _0x44e92d='(',_0x441a=0x0;_0x441a<_0x39d307[_0x07ee('0x68')][_0x07ee('0x3a')];_0x441a+=0x1){_0x441a>0x0&&(_0x44e92d+='\x20'+_0x39d307['operator']+'\x20');_0x44e92d+=_0x39d307[_0x07ee('0x68')][_0x441a][_0x07ee('0x6a')]?_0x677fc6(_0x39d307[_0x07ee('0x68')][_0x441a][_0x07ee('0x6a')]):_0x39d307['rules'][_0x441a]['field']+'\x20'+_0x39d307[_0x07ee('0x68')][_0x441a][_0x07ee('0x6c')]+(_0x1ccf68(_0x39d307['rules'][_0x441a][_0x07ee('0x6c')])?'\x20'+_0x39d307[_0x07ee('0x68')][_0x441a][_0x07ee('0x6d')]:'');}return _0x44e92d+')';};var _0x5a4011={'where':{'id':_0x33f17c[_0x07ee('0x4b')]['id']}},_0x3c98ac,_0x5b59a2,_0x5de7bb,_0x24327b,_0x33d648;_0x5a4011=_[_0x07ee('0x43')]({},_0x5a4011,_0x33f17c[_0x07ee('0x45')]);return db[_0x07ee('0x30')][_0x07ee('0x4c')](_0x5a4011)['then'](function(_0x5bae7f){if(_0x5bae7f){_0x3c98ac=_0x5bae7f;return _0x5bae7f[_0x07ee('0x6e')]();}return null;})['then'](function(_0x25f510){if(_0x25f510){if(!_0x25f510[_0x07ee('0x3a')]){throw new db[(_0x07ee('0x6f'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x5b59a2=_0x25f510;return db[_0x07ee('0x72')]['findAll']({'raw':!![]});}return null;})[_0x07ee('0x25')](function(_0x3284a6){if(_0x3284a6){_0x5de7bb=_[_0x07ee('0x74')](_0x3284a6,'id');var _0x381412;var _0x38c946=squel[_0x07ee('0x75')]();_0x38c946[_0x07ee('0x76')](_0x3c98ac[_0x07ee('0x77')]);for(var _0x10aec2=0x0;_0x10aec2<_0x5b59a2[_0x07ee('0x3a')];_0x10aec2+=0x1){_0x381412=_0x5b59a2[_0x10aec2]['MetricId']?_0x5de7bb[_0x5b59a2[_0x10aec2][_0x07ee('0x78')]][_0x07ee('0x79')]:_0x5b59a2[_0x10aec2]['field'];_0x381412=_0x5b59a2[_0x10aec2][_0x07ee('0x7a')]?_[_0x07ee('0x7c')](_0x52620a[_0x5b59a2[_0x10aec2][_0x07ee('0x7a')]],'%s',_0x381412):_0x381412;_0x381412=_0x5b59a2[_0x10aec2][_0x07ee('0x7b')]?_['replace'](_0x6b879c[_0x5b59a2[_0x10aec2][_0x07ee('0x7b')]],'%s',_0x381412):_0x381412;if(_0x5b59a2[_0x10aec2][_0x07ee('0x7d')]){_0x38c946[_0x07ee('0x6a')](_0x381412);}_0x5b59a2[_0x10aec2]['orderBy']&&_0x38c946[_0x07ee('0x3d')](_0x381412,_0x5b59a2[_0x10aec2][_0x07ee('0x7e')]===_0x07ee('0x90')?![]:!![]);_0x38c946[_0x07ee('0x6b')](_0x381412,_0x5b59a2[_0x10aec2][_0x07ee('0x7f')]||_0x381412);}if(_0x3c98ac['joins']){_0x3c98ac[_0x07ee('0x80')]=JSON[_0x07ee('0x81')](_0x3c98ac[_0x07ee('0x80')]);for(var _0x33ed30=0x0;_0x33ed30<_0x3c98ac[_0x07ee('0x80')]['length'];_0x33ed30+=0x1){if(_0x3c98ac['joins'][_0x33ed30]['type']&&_[_0x07ee('0x65')](_0x2037c1,_0x3c98ac[_0x07ee('0x80')][_0x33ed30][_0x07ee('0x82')])&&_0x3c98ac[_0x07ee('0x80')][_0x33ed30][_0x07ee('0x91')]&&_0x3c98ac['joins'][_0x33ed30]['foreignTable']&&_0x3c98ac['joins'][_0x33ed30][_0x07ee('0x85')]){_0x38c946[_0x3c98ac[_0x07ee('0x80')][_0x33ed30][_0x07ee('0x82')]](_0x3c98ac[_0x07ee('0x80')][_0x33ed30][_0x07ee('0x83')],null,util[_0x07ee('0x7b')](_0x07ee('0x84'),_0x3c98ac[_0x07ee('0x77')],_0x3c98ac[_0x07ee('0x80')][_0x33ed30][_0x07ee('0x91')],_0x3c98ac[_0x07ee('0x80')][_0x33ed30][_0x07ee('0x83')],_0x3c98ac['joins'][_0x33ed30][_0x07ee('0x85')]));}}}if(_0x3c98ac[_0x07ee('0x86')]){_0x3c98ac[_0x07ee('0x86')]=JSON['parse'](_0x3c98ac[_0x07ee('0x86')]);_0x38c946[_0x07ee('0x3f')](_0x677fc6(_0x3c98ac[_0x07ee('0x86')]['group']));}_0x33d648=_0x38c946['clone']();_0x38c946[_0x07ee('0x1f')](_0x2e34cf);_0x38c946[_0x07ee('0x1d')](0x0);logger[_0x07ee('0x88')](_0x07ee('0xa8'),_0x38c946[_0x07ee('0xa0')]());return dbH['sequelize'][_0x07ee('0x35')](_0x38c946[_0x07ee('0xa0')](),{'type':dbH[_0x07ee('0x89')]['QueryTypes']['SELECT']});}})[_0x07ee('0x25')](function(){return{'sql':_0x33d648[_0x07ee('0xa0')]()};})[_0x07ee('0x25')](respondWithResult(_0x58ccfb,null))[_0x07ee('0x49')](handleError(_0x58ccfb,null));};