Built motion from commit c738b9ac.|2.6.25
[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 _0x5b8f=['keyBy','clone','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','get','stack','name','send','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','pick','filter','where','merge','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','CustomReports','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\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','select','table','MetricId','metric','function','replace','format','groupBy','order','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','foreignKey','conditions','debug','toString','sequelize','QueryTypes','SELECT','GROUP_CONCAT(%s)','IS\x20NOT\x20EMPTY','operator','Sequelize','%s.%s\x20=\x20%s.%s','output','web','fullPath','%s-%s.%s','generate','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','child_process','fork','../../files/reports','savename','from','countTable','COUNT(*)','run','runReport','UNIX_TIMESTAMP(%s)'];(function(_0x1f9f37,_0x18776e){var _0x21c080=function(_0x4acb93){while(--_0x4acb93){_0x1f9f37['push'](_0x1f9f37['shift']());}};_0x21c080(++_0x18776e);}(_0x5b8f,0xa4));var _0xf5b8=function(_0x48d6a3,_0x37c848){_0x48d6a3=_0x48d6a3-0x0;var _0x38bfa0=_0x5b8f[_0x48d6a3];return _0x38bfa0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf5b8('0x0'));var zipdir=require(_0xf5b8('0x1'));var jsonpatch=require(_0xf5b8('0x2'));var rp=require('request-promise');var moment=require(_0xf5b8('0x3'));var BPromise=require(_0xf5b8('0x4'));var Mustache=require(_0xf5b8('0x5'));var util=require('util');var path=require(_0xf5b8('0x6'));var sox=require(_0xf5b8('0x7'));var csv=require(_0xf5b8('0x8'));var ejs=require(_0xf5b8('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf5b8('0xa'));var squel=require(_0xf5b8('0xb'));var crypto=require('crypto');var jsforce=require(_0xf5b8('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xf5b8('0xd'));var Papa=require(_0xf5b8('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xf5b8('0xf'));var as=require(_0xf5b8('0x10'));var hardwareService=require(_0xf5b8('0x11'));var logger=require('../../config/logger')(_0xf5b8('0x12'));var utils=require(_0xf5b8('0x13'));var config=require(_0xf5b8('0x14'));var licenseUtil=require(_0xf5b8('0x15'));var db=require('../../mysqldb')['db'];var dbH=require(_0xf5b8('0x16'))[_0xf5b8('0x17')];function respondWithStatusCode(_0x4d40d7,_0x3d28c8){_0x3d28c8=_0x3d28c8||0xcc;return function(_0x2f2c54){if(_0x2f2c54){return _0x4d40d7[_0xf5b8('0x18')](_0x3d28c8);}return _0x4d40d7[_0xf5b8('0x19')](_0x3d28c8)[_0xf5b8('0x1a')]();};}function respondWithResult(_0x16c73a,_0x167560){_0x167560=_0x167560||0xc8;return function(_0x34d626){if(_0x34d626){return _0x16c73a['status'](_0x167560)['json'](_0x34d626);}};}function respondWithFilteredResult(_0x372dfc,_0x12d969){return function(_0x146aba){if(_0x146aba){var _0x12963e=typeof _0x12d969[_0xf5b8('0x1b')]===_0xf5b8('0x1c')&&typeof _0x12d969[_0xf5b8('0x1d')]==='undefined';var _0x3105e0=_0x146aba[_0xf5b8('0x1e')];var _0x98ad2f=_0x12963e?0x0:_0x12d969['offset'];var _0x251f3c=_0x12963e?_0x146aba[_0xf5b8('0x1e')]:_0x12d969[_0xf5b8('0x1b')]+_0x12d969[_0xf5b8('0x1d')];var _0x11cc7d;if(_0x251f3c>=_0x3105e0){_0x251f3c=_0x3105e0;_0x11cc7d=0xc8;}else{_0x11cc7d=0xce;}_0x372dfc[_0xf5b8('0x19')](_0x11cc7d);return _0x372dfc[_0xf5b8('0x1f')](_0xf5b8('0x20'),_0x98ad2f+'-'+_0x251f3c+'/'+_0x3105e0)['json'](_0x146aba);}return null;};}function patchUpdates(_0x20ca5c){return function(_0x59c0e4){try{jsonpatch[_0xf5b8('0x21')](_0x59c0e4,_0x20ca5c,!![]);}catch(_0x44ea40){return BPromise['reject'](_0x44ea40);}return _0x59c0e4['save']();};}function saveUpdates(_0xb1bbcf,_0x5f5c83){return function(_0x30f0d0){if(_0x30f0d0){return _0x30f0d0[_0xf5b8('0x22')](_0xb1bbcf)[_0xf5b8('0x23')](function(_0x34ad4e){return _0x34ad4e;});}return null;};}function removeEntity(_0x12db53,_0x2539cc){return function(_0xe37fef){if(_0xe37fef){return _0xe37fef[_0xf5b8('0x24')]()['then'](function(){var _0x174276=_0xe37fef[_0xf5b8('0x25')]({'plain':!![]});var _0x159b3d='CustomReports';return db['UserProfileResource'][_0xf5b8('0x24')]({'where':{'type':_0x159b3d,'resourceId':_0x174276['id']}})['then'](function(){return _0xe37fef;});})[_0xf5b8('0x23')](function(){_0x12db53['status'](0xcc)[_0xf5b8('0x1a')]();});}};}function handleEntityNotFound(_0x351a54,_0x13c607){return function(_0x1c8c26){if(!_0x1c8c26){_0x351a54[_0xf5b8('0x18')](0x194);}return _0x1c8c26;};}function handleError(_0x503ce8,_0x562c00){_0x562c00=_0x562c00||0x1f4;return function(_0x3f42c3){logger['error'](_0x3f42c3[_0xf5b8('0x26')]);if(_0x3f42c3[_0xf5b8('0x27')]){delete _0x3f42c3[_0xf5b8('0x27')];}_0x503ce8['status'](_0x562c00)[_0xf5b8('0x28')](_0x3f42c3);};}exports['index']=function(_0x464c04,_0x1280f2){var _0x5d12e1={},_0x443e4f={},_0x4052de={'count':0x0,'rows':[]};var _0x1a012d=_[_0xf5b8('0x29')](db[_0xf5b8('0x2a')][_0xf5b8('0x2b')],function(_0x1132d8){return{'name':_0x1132d8[_0xf5b8('0x2c')],'type':_0x1132d8[_0xf5b8('0x2d')][_0xf5b8('0x2e')]};});_0x443e4f[_0xf5b8('0x2f')]=_[_0xf5b8('0x29')](_0x1a012d,_0xf5b8('0x27'));_0x443e4f[_0xf5b8('0x30')]=_[_0xf5b8('0x31')](_0x464c04[_0xf5b8('0x30')]);_0x443e4f[_0xf5b8('0x32')]=_['intersection'](_0x443e4f[_0xf5b8('0x2f')],_0x443e4f[_0xf5b8('0x30')]);_0x5d12e1[_0xf5b8('0x33')]=_[_0xf5b8('0x34')](_0x443e4f[_0xf5b8('0x2f')],qs[_0xf5b8('0x35')](_0x464c04[_0xf5b8('0x30')]['fields']));_0x5d12e1[_0xf5b8('0x33')]=_0x5d12e1[_0xf5b8('0x33')][_0xf5b8('0x36')]?_0x5d12e1[_0xf5b8('0x33')]:_0x443e4f[_0xf5b8('0x2f')];if(!_0x464c04[_0xf5b8('0x30')][_0xf5b8('0x37')]('nolimit')){_0x5d12e1[_0xf5b8('0x1d')]=qs[_0xf5b8('0x1d')](_0x464c04[_0xf5b8('0x30')]['limit']);_0x5d12e1['offset']=qs['offset'](_0x464c04[_0xf5b8('0x30')]['offset']);}_0x5d12e1['order']=qs['sort'](_0x464c04[_0xf5b8('0x30')]['sort']);_0x5d12e1['where']=qs['filters'](_[_0xf5b8('0x38')](_0x464c04[_0xf5b8('0x30')],_0x443e4f[_0xf5b8('0x32')]),_0x1a012d);if(_0x464c04[_0xf5b8('0x30')][_0xf5b8('0x39')]){_0x5d12e1[_0xf5b8('0x3a')]=_[_0xf5b8('0x3b')](_0x5d12e1[_0xf5b8('0x3a')],{'$or':_[_0xf5b8('0x29')](_0x1a012d,function(_0x353c3c){if(_0x353c3c[_0xf5b8('0x2d')]!=='VIRTUAL'){var _0x287fa5={};_0x287fa5[_0x353c3c[_0xf5b8('0x27')]]={'$like':'%'+_0x464c04[_0xf5b8('0x30')][_0xf5b8('0x39')]+'%'};return _0x287fa5;}})});}_0x5d12e1=_[_0xf5b8('0x3b')]({},_0x5d12e1,_0x464c04[_0xf5b8('0x3c')]);var _0x4d43e1={'where':_0x5d12e1[_0xf5b8('0x3a')]};return db[_0xf5b8('0x2a')]['count'](_0x4d43e1)['then'](function(_0x554036){_0x4052de[_0xf5b8('0x1e')]=_0x554036;if(_0x464c04['query']['includeAll']){_0x5d12e1[_0xf5b8('0x3d')]=[{'all':!![]}];}return db[_0xf5b8('0x2a')][_0xf5b8('0x3e')](_0x5d12e1);})[_0xf5b8('0x23')](function(_0x5028c5){_0x4052de[_0xf5b8('0x3f')]=_0x5028c5;return _0x4052de;})[_0xf5b8('0x23')](respondWithFilteredResult(_0x1280f2,_0x5d12e1))[_0xf5b8('0x40')](handleError(_0x1280f2,null));};exports[_0xf5b8('0x41')]=function(_0x2ebf40,_0x5c58d0){var _0x1e20cb={'raw':![],'where':{'id':_0x2ebf40[_0xf5b8('0x42')]['id']}},_0x14de05={};_0x14de05['model']=_[_0xf5b8('0x31')](db[_0xf5b8('0x2a')][_0xf5b8('0x2b')]);_0x14de05[_0xf5b8('0x30')]=_[_0xf5b8('0x31')](_0x2ebf40[_0xf5b8('0x30')]);_0x14de05[_0xf5b8('0x32')]=_[_0xf5b8('0x34')](_0x14de05['model'],_0x14de05[_0xf5b8('0x30')]);_0x1e20cb[_0xf5b8('0x33')]=_[_0xf5b8('0x34')](_0x14de05[_0xf5b8('0x2f')],qs[_0xf5b8('0x35')](_0x2ebf40['query'][_0xf5b8('0x35')]));_0x1e20cb[_0xf5b8('0x33')]=_0x1e20cb['attributes'][_0xf5b8('0x36')]?_0x1e20cb['attributes']:_0x14de05[_0xf5b8('0x2f')];if(_0x2ebf40[_0xf5b8('0x30')][_0xf5b8('0x43')]){_0x1e20cb[_0xf5b8('0x3d')]=[{'all':!![]}];}_0x1e20cb=_[_0xf5b8('0x3b')]({},_0x1e20cb,_0x2ebf40[_0xf5b8('0x3c')]);return db[_0xf5b8('0x2a')][_0xf5b8('0x44')](_0x1e20cb)[_0xf5b8('0x23')](handleEntityNotFound(_0x5c58d0,null))[_0xf5b8('0x23')](respondWithResult(_0x5c58d0,null))[_0xf5b8('0x40')](handleError(_0x5c58d0,null));};exports[_0xf5b8('0x45')]=function(_0xee183c,_0x579eed){return db[_0xf5b8('0x2a')][_0xf5b8('0x45')](_0xee183c[_0xf5b8('0x46')],{})['then'](function(_0x4c80ee){var _0x3d1df3=_0xee183c[_0xf5b8('0x47')][_0xf5b8('0x25')]({'plain':!![]});if(!_0x3d1df3)throw new Error(_0xf5b8('0x48'));if(_0x3d1df3[_0xf5b8('0x49')]===_0xf5b8('0x47')){var _0x523895=_0x4c80ee[_0xf5b8('0x25')]({'plain':!![]});var _0x48b478='Reports';return db[_0xf5b8('0x4a')]['find']({'where':{'name':_0x48b478,'userProfileId':_0x3d1df3['userProfileId']},'raw':!![]})[_0xf5b8('0x23')](function(_0xb41a48){if(_0xb41a48&&_0xb41a48[_0xf5b8('0x4b')]===0x0){return db[_0xf5b8('0x4c')][_0xf5b8('0x45')]({'name':_0x523895[_0xf5b8('0x27')],'resourceId':_0x523895['id'],'type':_0xf5b8('0x4d'),'sectionId':_0xb41a48['id']},{})[_0xf5b8('0x23')](function(){return _0x4c80ee;});}else{return _0x4c80ee;}})[_0xf5b8('0x40')](function(_0x42e63c){logger['error'](_0xf5b8('0x4e'),_0x42e63c);throw _0x42e63c;});}return _0x4c80ee;})[_0xf5b8('0x23')](respondWithResult(_0x579eed,0xc9))[_0xf5b8('0x40')](handleError(_0x579eed,null));};exports[_0xf5b8('0x22')]=function(_0x130e13,_0x4f58c6){if(_0x130e13[_0xf5b8('0x46')]['id']){delete _0x130e13['body']['id'];}return db[_0xf5b8('0x2a')][_0xf5b8('0x44')]({'where':{'id':_0x130e13['params']['id']}})['then'](handleEntityNotFound(_0x4f58c6,null))['then'](saveUpdates(_0x130e13[_0xf5b8('0x46')],null))[_0xf5b8('0x23')](respondWithResult(_0x4f58c6,null))[_0xf5b8('0x40')](handleError(_0x4f58c6,null));};exports['destroy']=function(_0x158093,_0x1d4fbd){return db[_0xf5b8('0x2a')][_0xf5b8('0x44')]({'where':{'id':_0x158093[_0xf5b8('0x42')]['id']}})[_0xf5b8('0x23')](handleEntityNotFound(_0x1d4fbd,null))[_0xf5b8('0x23')](removeEntity(_0x1d4fbd,null))[_0xf5b8('0x40')](handleError(_0x1d4fbd,null));};exports[_0xf5b8('0x4f')]=function(_0x1bc1ba,_0x110bac){var _0x2efe69=0xa;var _0x27fe4f=[_0xf5b8('0x50'),_0xf5b8('0x51'),_0xf5b8('0x52'),_0xf5b8('0x53')];var _0x22fc3e={'SUM':'SUM(%s)','COUNT':_0xf5b8('0x54'),'COUNT DISTINCT':_0xf5b8('0x55'),'MAX':_0xf5b8('0x56'),'MIN':_0xf5b8('0x57'),'AVG':_0xf5b8('0x58'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xf5b8('0x59'),'GROUP_CONCAT DESC':_0xf5b8('0x5a')};var _0x1274f5={'SEC_TO_TIME':_0xf5b8('0x5b'),'DATE':_0xf5b8('0x5c'),'HOUR':_0xf5b8('0x5d'),'ROUND':_0xf5b8('0x5e'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x2f140d=function(_0x1a5852){return!_[_0xf5b8('0x5f')]([_0xf5b8('0x60'),_0xf5b8('0x61'),_0xf5b8('0x62'),'IS\x20NOT\x20EMPTY'],_0x1a5852);};var _0x4a3a67=function(_0x41fbe0){if(!_0x41fbe0||!_0x41fbe0[_0xf5b8('0x63')]['length']){return'';}for(var _0x432253='(',_0x37523c=0x0;_0x37523c<_0x41fbe0[_0xf5b8('0x63')]['length'];_0x37523c+=0x1){_0x37523c>0x0&&(_0x432253+='\x20'+_0x41fbe0['operator']+'\x20');_0x432253+=_0x41fbe0[_0xf5b8('0x63')][_0x37523c]['group']?_0x4a3a67(_0x41fbe0[_0xf5b8('0x63')][_0x37523c][_0xf5b8('0x64')]):_0x41fbe0[_0xf5b8('0x63')][_0x37523c][_0xf5b8('0x65')]+'\x20'+_0x41fbe0['rules'][_0x37523c][_0xf5b8('0x66')]+(_0x2f140d(_0x41fbe0[_0xf5b8('0x63')][_0x37523c][_0xf5b8('0x66')])?'\x20'+_0x41fbe0[_0xf5b8('0x63')][_0x37523c][_0xf5b8('0x67')]:'');}return _0x432253+')';};var _0x2ab3c4={'where':{'id':_0x1bc1ba[_0xf5b8('0x42')]['id']}},_0x41af47,_0x28615d,_0x58cb95,_0x5803ab,_0x58b6ad;_0x2ab3c4=_[_0xf5b8('0x3b')]({},_0x2ab3c4,_0x1bc1ba[_0xf5b8('0x3c')]);return db[_0xf5b8('0x2a')]['find'](_0x2ab3c4)[_0xf5b8('0x23')](function(_0x55c871){if(_0x55c871){_0x41af47=_0x55c871;return _0x55c871[_0xf5b8('0x68')]();}return null;})[_0xf5b8('0x23')](function(_0x3d53f0){if(_0x3d53f0){if(!_0x3d53f0['length']){throw new db['Sequelize'][(_0xf5b8('0x69'))](_0xf5b8('0x6a'),0x193);}_0x28615d=_0x3d53f0;return db[_0xf5b8('0x6b')][_0xf5b8('0x3e')]({'raw':!![]});}return null;})[_0xf5b8('0x23')](function(_0x10563f){if(_0x10563f){_0x58cb95=_['keyBy'](_0x10563f,'id');var _0x472892;var _0x232d4d=squel[_0xf5b8('0x6c')]();_0x232d4d['from'](_0x41af47[_0xf5b8('0x6d')]);for(var _0x424e90=0x0;_0x424e90<_0x28615d[_0xf5b8('0x36')];_0x424e90+=0x1){_0x472892=_0x28615d[_0x424e90][_0xf5b8('0x6e')]?_0x58cb95[_0x28615d[_0x424e90][_0xf5b8('0x6e')]][_0xf5b8('0x6f')]:_0x28615d[_0x424e90][_0xf5b8('0x65')];_0x472892=_0x28615d[_0x424e90][_0xf5b8('0x70')]?_[_0xf5b8('0x71')](_0x22fc3e[_0x28615d[_0x424e90][_0xf5b8('0x70')]],'%s',_0x472892):_0x472892;_0x472892=_0x28615d[_0x424e90][_0xf5b8('0x72')]?_[_0xf5b8('0x71')](_0x1274f5[_0x28615d[_0x424e90][_0xf5b8('0x72')]],'%s',_0x472892):_0x472892;if(_0x28615d[_0x424e90][_0xf5b8('0x73')]){_0x232d4d[_0xf5b8('0x64')](_0x472892);}_0x28615d[_0x424e90]['orderBy']&&_0x232d4d[_0xf5b8('0x74')](_0x472892,_0x28615d[_0x424e90][_0xf5b8('0x75')]===_0xf5b8('0x76')?![]:!![]);_0x232d4d[_0xf5b8('0x65')](_0x472892,_0x28615d[_0x424e90][_0xf5b8('0x77')]||_0x472892);}if(_0x41af47[_0xf5b8('0x78')]){_0x41af47['joins']=JSON[_0xf5b8('0x79')](_0x41af47[_0xf5b8('0x78')]);for(var _0xa53da2=0x0;_0xa53da2<_0x41af47[_0xf5b8('0x78')][_0xf5b8('0x36')];_0xa53da2+=0x1){if(_0x41af47[_0xf5b8('0x78')][_0xa53da2][_0xf5b8('0x2d')]&&_[_0xf5b8('0x5f')](_0x27fe4f,_0x41af47[_0xf5b8('0x78')][_0xa53da2][_0xf5b8('0x2d')])&&_0x41af47[_0xf5b8('0x78')][_0xa53da2][_0xf5b8('0x7a')]&&_0x41af47['joins'][_0xa53da2][_0xf5b8('0x7b')]&&_0x41af47[_0xf5b8('0x78')][_0xa53da2][_0xf5b8('0x7c')]){_0x232d4d[_0x41af47['joins'][_0xa53da2][_0xf5b8('0x2d')]](_0x41af47['joins'][_0xa53da2][_0xf5b8('0x7b')],null,util[_0xf5b8('0x72')]('%s.%s\x20=\x20%s.%s',_0x41af47[_0xf5b8('0x6d')],_0x41af47[_0xf5b8('0x78')][_0xa53da2]['parentKey'],_0x41af47[_0xf5b8('0x78')][_0xa53da2]['foreignTable'],_0x41af47[_0xf5b8('0x78')][_0xa53da2][_0xf5b8('0x7c')]));}}}if(_0x41af47[_0xf5b8('0x7d')]){_0x41af47[_0xf5b8('0x7d')]=JSON[_0xf5b8('0x79')](_0x41af47[_0xf5b8('0x7d')]);_0x232d4d[_0xf5b8('0x3a')](_0x4a3a67(_0x41af47[_0xf5b8('0x7d')][_0xf5b8('0x64')]));}_0x58b6ad=_0x232d4d['clone']();_0x232d4d[_0xf5b8('0x1d')](_0x2efe69);_0x232d4d[_0xf5b8('0x1b')](0x0);logger[_0xf5b8('0x7e')]('Limited\x20Query:',_0x232d4d[_0xf5b8('0x7f')]());return dbH[_0xf5b8('0x80')][_0xf5b8('0x30')](_0x232d4d['toString'](),{'type':dbH[_0xf5b8('0x80')][_0xf5b8('0x81')][_0xf5b8('0x82')]});}})['then'](respondWithResult(_0x110bac,null))['catch'](handleError(_0x110bac,null));};function runReport(_0x1d21b4,_0xb685fe,_0x148940){var _0x12d5a7=_0xb685fe[_0xf5b8('0x27')];var _0x2ae556=0xa;var _0x24f46a=[_0xf5b8('0x50'),_0xf5b8('0x51'),_0xf5b8('0x52'),_0xf5b8('0x53')];var _0x303974={'SUM':'SUM(%s)','COUNT':_0xf5b8('0x54'),'COUNT DISTINCT':_0xf5b8('0x55'),'MAX':_0xf5b8('0x56'),'MIN':_0xf5b8('0x57'),'AVG':_0xf5b8('0x58'),'GROUP_CONCAT':_0xf5b8('0x83'),'GROUP_CONCAT ASC':_0xf5b8('0x59'),'GROUP_CONCAT DESC':_0xf5b8('0x5a')};var _0x131106={'SEC_TO_TIME':_0xf5b8('0x5b'),'DATE':_0xf5b8('0x5c'),'HOUR':_0xf5b8('0x5d'),'ROUND':_0xf5b8('0x5e'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x28113f=function(_0x115110){return!_['includes']([_0xf5b8('0x60'),_0xf5b8('0x61'),_0xf5b8('0x62'),_0xf5b8('0x84')],_0x115110);};var _0x21f58f=function(_0x1a8197){if(!_0x1a8197||!_0x1a8197[_0xf5b8('0x63')][_0xf5b8('0x36')]){return'';}for(var _0x3b83ca='(',_0x27848a=0x0;_0x27848a<_0x1a8197['rules']['length'];_0x27848a+=0x1){_0x27848a>0x0&&(_0x3b83ca+='\x20'+_0x1a8197[_0xf5b8('0x85')]+'\x20');_0x3b83ca+=_0x1a8197['rules'][_0x27848a][_0xf5b8('0x64')]?_0x21f58f(_0x1a8197[_0xf5b8('0x63')][_0x27848a][_0xf5b8('0x64')]):_0x1a8197[_0xf5b8('0x63')][_0x27848a][_0xf5b8('0x65')]+'\x20'+_0x1a8197[_0xf5b8('0x63')][_0x27848a][_0xf5b8('0x66')]+(_0x28113f(_0x1a8197[_0xf5b8('0x63')][_0x27848a][_0xf5b8('0x66')])?'\x20'+_0x1a8197[_0xf5b8('0x63')][_0x27848a]['value']:'');}return _0x3b83ca+')';};var _0x11f4ad={'where':{'id':_0x1d21b4['id']}},_0x26055d,_0x57cdfa,_0x274369,_0x17cccf,_0x4f6ea9;_0x11f4ad=_[_0xf5b8('0x3b')]({},_0x11f4ad,_0x148940);return db[_0xf5b8('0x2a')][_0xf5b8('0x44')](_0x11f4ad)[_0xf5b8('0x23')](function(_0xd870e7){if(_0xd870e7){_0x26055d=_0xd870e7;return _0xd870e7[_0xf5b8('0x68')]();}return null;})['then'](function(_0x41ba49){if(_0x41ba49){if(!_0x41ba49[_0xf5b8('0x36')]){throw new db[(_0xf5b8('0x86'))][(_0xf5b8('0x69'))](_0xf5b8('0x6a'),0x193);}_0x57cdfa=_0x41ba49;return db[_0xf5b8('0x6b')][_0xf5b8('0x3e')]({'raw':!![]});}return null;})['then'](function(_0x566b25){if(_0x566b25){_0x274369=_['keyBy'](_0x566b25,'id');var _0x31c273;var _0x3ee53c=squel['select']();_0x3ee53c['from'](_0x26055d[_0xf5b8('0x6d')]);for(var _0x12ffe8=0x0;_0x12ffe8<_0x57cdfa[_0xf5b8('0x36')];_0x12ffe8+=0x1){_0x31c273=_0x57cdfa[_0x12ffe8][_0xf5b8('0x6e')]?_0x274369[_0x57cdfa[_0x12ffe8]['MetricId']][_0xf5b8('0x6f')]:_0x57cdfa[_0x12ffe8][_0xf5b8('0x65')];_0x31c273=_0x57cdfa[_0x12ffe8]['function']?_[_0xf5b8('0x71')](_0x303974[_0x57cdfa[_0x12ffe8]['function']],'%s',_0x31c273):_0x31c273;_0x31c273=_0x57cdfa[_0x12ffe8][_0xf5b8('0x72')]?_['replace'](_0x131106[_0x57cdfa[_0x12ffe8][_0xf5b8('0x72')]],'%s',_0x31c273):_0x31c273;if(_0x57cdfa[_0x12ffe8][_0xf5b8('0x73')]){_0x3ee53c[_0xf5b8('0x64')](_0x31c273);}_0x57cdfa[_0x12ffe8][_0xf5b8('0x75')]&&_0x3ee53c['order'](_0x31c273,_0x57cdfa[_0x12ffe8]['orderBy']===_0xf5b8('0x76')?![]:!![]);_0x3ee53c['field'](_0x31c273,_0x57cdfa[_0x12ffe8][_0xf5b8('0x77')]||_0x31c273);}if(_0x26055d[_0xf5b8('0x78')]){_0x26055d[_0xf5b8('0x78')]=JSON[_0xf5b8('0x79')](_0x26055d['joins']);for(var _0x30e09c=0x0;_0x30e09c<_0x26055d[_0xf5b8('0x78')]['length'];_0x30e09c+=0x1){if(_0x26055d[_0xf5b8('0x78')][_0x30e09c][_0xf5b8('0x2d')]&&_[_0xf5b8('0x5f')](_0x24f46a,_0x26055d['joins'][_0x30e09c][_0xf5b8('0x2d')])&&_0x26055d[_0xf5b8('0x78')][_0x30e09c][_0xf5b8('0x7a')]&&_0x26055d[_0xf5b8('0x78')][_0x30e09c][_0xf5b8('0x7b')]&&_0x26055d[_0xf5b8('0x78')][_0x30e09c]['foreignKey']){_0x3ee53c[_0x26055d[_0xf5b8('0x78')][_0x30e09c][_0xf5b8('0x2d')]](_0x26055d[_0xf5b8('0x78')][_0x30e09c][_0xf5b8('0x7b')],null,util[_0xf5b8('0x72')](_0xf5b8('0x87'),_0x26055d['table'],_0x26055d[_0xf5b8('0x78')][_0x30e09c][_0xf5b8('0x7a')],_0x26055d[_0xf5b8('0x78')][_0x30e09c][_0xf5b8('0x7b')],_0x26055d['joins'][_0x30e09c][_0xf5b8('0x7c')]));}}}if(_0x26055d[_0xf5b8('0x7d')]){_0x26055d[_0xf5b8('0x7d')]=JSON['parse'](_0x26055d[_0xf5b8('0x7d')]);_0x3ee53c[_0xf5b8('0x3a')](_0x21f58f(_0x26055d[_0xf5b8('0x7d')][_0xf5b8('0x64')]));}_0x4f6ea9=_0x3ee53c['clone']();_0x3ee53c[_0xf5b8('0x1d')](_0x2ae556);_0x3ee53c[_0xf5b8('0x1b')](0x0);return;}})[_0xf5b8('0x23')](function(){if(_0xb685fe[_0xf5b8('0x88')]===_0xf5b8('0x89')){return null;}var _0x113f67=_['merge'](_0xb685fe,{'name':_0xb685fe[_0xf5b8('0x8a')]||_0xb685fe[_0xf5b8('0x27')]||_0x26055d[_0xf5b8('0x27')],'basename':_0x12d5a7,'savename':util['format'](_0xf5b8('0x8b'),_0xb685fe[_0xf5b8('0x27')]||_0x26055d[_0xf5b8('0x27')],require('randomstring')[_0xf5b8('0x8c')](0x4),_0xb685fe[_0xf5b8('0x88')]||'csv'),'reportId':_0x26055d['id'],'reportType':_0xf5b8('0x8d')});return db[_0xf5b8('0x8e')][_0xf5b8('0x45')](_0x113f67,{'raw':!![]});})['then'](function(_0x5ad0eb){if(_0x26055d[_0xf5b8('0x6d')]===_0xf5b8('0x8f')){_0x4f6ea9[_0xf5b8('0x3a')](_0x26055d['table']+_0xf5b8('0x90'),_0xb685fe[_0xf5b8('0x91')],_0xb685fe['endDate']);}else{_0x4f6ea9['where'](_0x26055d['table']+_0xf5b8('0x92'),_0xb685fe['startDate'],_0xb685fe[_0xf5b8('0x93')]);}if(_0x5ad0eb){logger[_0xf5b8('0x94')](_0xf5b8('0x95'),_0x4f6ea9[_0xf5b8('0x7f')]());require(_0xf5b8('0x96'))[_0xf5b8('0x97')](path[_0xf5b8('0x50')](__dirname,'../../components/export/',_0x5ad0eb['output']),[_0x5ad0eb['id'],_0x4f6ea9[_0xf5b8('0x7f')](),path[_0xf5b8('0x50')](__dirname,_0xf5b8('0x98'),_0x5ad0eb[_0xf5b8('0x99')]),_0x12d5a7]);return _0x5ad0eb;}else{var _0x55df0a=squel['select']();_0x55df0a[_0xf5b8('0x9a')]('('+_0x4f6ea9[_0xf5b8('0x7f')]()+')',_0xf5b8('0x9b'));_0x55df0a[_0xf5b8('0x65')](_0xf5b8('0x9c'),'count');_0x4f6ea9['limit'](_0xb685fe[_0xf5b8('0x1d')]||_0x2ae556);_0x4f6ea9[_0xf5b8('0x1b')](_0xb685fe['offset']||0x0);return dbH[_0xf5b8('0x80')]['query'](_0x55df0a[_0xf5b8('0x7f')](),{'type':dbH['sequelize'][_0xf5b8('0x81')]['SELECT']})[_0xf5b8('0x23')](function(_0x42932b){if(!_0x42932b['length']){_0x17cccf=0x0;}else{_0x17cccf=_0x42932b[0x0]['count']||0x0;}return dbH[_0xf5b8('0x80')][_0xf5b8('0x30')](_0x4f6ea9[_0xf5b8('0x7f')](),{'type':dbH[_0xf5b8('0x80')][_0xf5b8('0x81')][_0xf5b8('0x82')]});})['then'](function(_0x358407){return{'rows':_0x358407||[],'count':_0x17cccf};});}});}exports[_0xf5b8('0x9d')]=function(_0x4a70e6,_0x31354f){return runReport(_0x4a70e6[_0xf5b8('0x42')],_0x4a70e6[_0xf5b8('0x30')],_0x4a70e6[_0xf5b8('0x3c')])['then'](respondWithResult(_0x31354f,null))[_0xf5b8('0x40')](handleError(_0x31354f,null));};exports[_0xf5b8('0x9e')]=runReport;exports[_0xf5b8('0x30')]=function(_0x334535,_0x10c114){var _0x1b5dc8=0xa;var _0xd1d6aa=['join','left_join',_0xf5b8('0x52'),_0xf5b8('0x53')];var _0x2e4e8a={'SUM':'SUM(%s)','COUNT':_0xf5b8('0x54'),'COUNT DISTINCT':_0xf5b8('0x55'),'MAX':'MAX(%s)','MIN':_0xf5b8('0x57'),'AVG':_0xf5b8('0x58'),'GROUP_CONCAT':_0xf5b8('0x83'),'GROUP_CONCAT ASC':_0xf5b8('0x59'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x563024={'SEC_TO_TIME':_0xf5b8('0x5b'),'DATE':_0xf5b8('0x5c'),'HOUR':_0xf5b8('0x5d'),'ROUND':_0xf5b8('0x5e'),'UNIX_TIMESTAMP':_0xf5b8('0x9f')};var _0x493f4a=function(_0xe043e3){return!_[_0xf5b8('0x5f')]([_0xf5b8('0x60'),'IS\x20NOT\x20NULL',_0xf5b8('0x62'),_0xf5b8('0x84')],_0xe043e3);};var _0xfd62b8=function(_0x20099a){if(!_0x20099a||!_0x20099a[_0xf5b8('0x63')]['length']){return'';}for(var _0x2828b7='(',_0x4b9113=0x0;_0x4b9113<_0x20099a[_0xf5b8('0x63')][_0xf5b8('0x36')];_0x4b9113+=0x1){_0x4b9113>0x0&&(_0x2828b7+='\x20'+_0x20099a['operator']+'\x20');_0x2828b7+=_0x20099a[_0xf5b8('0x63')][_0x4b9113][_0xf5b8('0x64')]?_0xfd62b8(_0x20099a['rules'][_0x4b9113][_0xf5b8('0x64')]):_0x20099a[_0xf5b8('0x63')][_0x4b9113][_0xf5b8('0x65')]+'\x20'+_0x20099a[_0xf5b8('0x63')][_0x4b9113]['condition']+(_0x493f4a(_0x20099a['rules'][_0x4b9113][_0xf5b8('0x66')])?'\x20'+_0x20099a[_0xf5b8('0x63')][_0x4b9113][_0xf5b8('0x67')]:'');}return _0x2828b7+')';};var _0x49ebc4={'where':{'id':_0x334535['params']['id']}},_0x140421,_0x56bafc,_0x2c3d2a,_0x39288b,_0x16a471;_0x49ebc4=_['merge']({},_0x49ebc4,_0x334535[_0xf5b8('0x3c')]);return db[_0xf5b8('0x2a')][_0xf5b8('0x44')](_0x49ebc4)['then'](function(_0x54aaa2){if(_0x54aaa2){_0x140421=_0x54aaa2;return _0x54aaa2[_0xf5b8('0x68')]();}return null;})['then'](function(_0x54a0cc){if(_0x54a0cc){if(!_0x54a0cc[_0xf5b8('0x36')]){throw new db[(_0xf5b8('0x86'))][(_0xf5b8('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x56bafc=_0x54a0cc;return db[_0xf5b8('0x6b')][_0xf5b8('0x3e')]({'raw':!![]});}return null;})[_0xf5b8('0x23')](function(_0xd24ef4){if(_0xd24ef4){_0x2c3d2a=_[_0xf5b8('0xa0')](_0xd24ef4,'id');var _0x4fdae7;var _0x32c1ee=squel[_0xf5b8('0x6c')]();_0x32c1ee[_0xf5b8('0x9a')](_0x140421[_0xf5b8('0x6d')]);for(var _0x3e61c4=0x0;_0x3e61c4<_0x56bafc[_0xf5b8('0x36')];_0x3e61c4+=0x1){_0x4fdae7=_0x56bafc[_0x3e61c4][_0xf5b8('0x6e')]?_0x2c3d2a[_0x56bafc[_0x3e61c4][_0xf5b8('0x6e')]][_0xf5b8('0x6f')]:_0x56bafc[_0x3e61c4][_0xf5b8('0x65')];_0x4fdae7=_0x56bafc[_0x3e61c4][_0xf5b8('0x70')]?_[_0xf5b8('0x71')](_0x2e4e8a[_0x56bafc[_0x3e61c4][_0xf5b8('0x70')]],'%s',_0x4fdae7):_0x4fdae7;_0x4fdae7=_0x56bafc[_0x3e61c4][_0xf5b8('0x72')]?_[_0xf5b8('0x71')](_0x563024[_0x56bafc[_0x3e61c4][_0xf5b8('0x72')]],'%s',_0x4fdae7):_0x4fdae7;if(_0x56bafc[_0x3e61c4][_0xf5b8('0x73')]){_0x32c1ee[_0xf5b8('0x64')](_0x4fdae7);}_0x56bafc[_0x3e61c4][_0xf5b8('0x75')]&&_0x32c1ee[_0xf5b8('0x74')](_0x4fdae7,_0x56bafc[_0x3e61c4][_0xf5b8('0x75')]==='DESC'?![]:!![]);_0x32c1ee[_0xf5b8('0x65')](_0x4fdae7,_0x56bafc[_0x3e61c4]['alias']||_0x4fdae7);}if(_0x140421[_0xf5b8('0x78')]){_0x140421[_0xf5b8('0x78')]=JSON[_0xf5b8('0x79')](_0x140421[_0xf5b8('0x78')]);for(var _0x45a49d=0x0;_0x45a49d<_0x140421[_0xf5b8('0x78')]['length'];_0x45a49d+=0x1){if(_0x140421[_0xf5b8('0x78')][_0x45a49d][_0xf5b8('0x2d')]&&_[_0xf5b8('0x5f')](_0xd1d6aa,_0x140421[_0xf5b8('0x78')][_0x45a49d][_0xf5b8('0x2d')])&&_0x140421[_0xf5b8('0x78')][_0x45a49d][_0xf5b8('0x7a')]&&_0x140421['joins'][_0x45a49d][_0xf5b8('0x7b')]&&_0x140421[_0xf5b8('0x78')][_0x45a49d][_0xf5b8('0x7c')]){_0x32c1ee[_0x140421[_0xf5b8('0x78')][_0x45a49d]['type']](_0x140421[_0xf5b8('0x78')][_0x45a49d][_0xf5b8('0x7b')],null,util[_0xf5b8('0x72')]('%s.%s\x20=\x20%s.%s',_0x140421[_0xf5b8('0x6d')],_0x140421[_0xf5b8('0x78')][_0x45a49d][_0xf5b8('0x7a')],_0x140421[_0xf5b8('0x78')][_0x45a49d][_0xf5b8('0x7b')],_0x140421[_0xf5b8('0x78')][_0x45a49d][_0xf5b8('0x7c')]));}}}if(_0x140421[_0xf5b8('0x7d')]){_0x140421[_0xf5b8('0x7d')]=JSON[_0xf5b8('0x79')](_0x140421[_0xf5b8('0x7d')]);_0x32c1ee['where'](_0xfd62b8(_0x140421[_0xf5b8('0x7d')][_0xf5b8('0x64')]));}_0x16a471=_0x32c1ee[_0xf5b8('0xa1')]();_0x32c1ee[_0xf5b8('0x1d')](_0x1b5dc8);_0x32c1ee[_0xf5b8('0x1b')](0x0);logger['debug']('Limited\x20Query:',_0x32c1ee[_0xf5b8('0x7f')]());return dbH[_0xf5b8('0x80')][_0xf5b8('0x30')](_0x32c1ee[_0xf5b8('0x7f')](),{'type':dbH[_0xf5b8('0x80')]['QueryTypes'][_0xf5b8('0x82')]});}})['then'](function(){return{'sql':_0x16a471[_0xf5b8('0x7f')]()};})['then'](respondWithResult(_0x10c114,null))['catch'](handleError(_0x10c114,null));};