fb77a032670fdf4736197ef13f52b7d852eda0ed
[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 _0xd4dc=['userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20EMPTY','length','rules','group','condition','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','select','table','function','format','groupBy','orderBy','field','joins','parse','includes','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','debug','Limited\x20Query:','toString','sequelize','SELECT','cross_join','SUM(%s)','DATE(%s)','IS\x20NOT\x20NULL','IS\x20EMPTY','operator','value','ValidationErrorItem','keyBy','MetricId','metric','replace','DESC','alias','clone','web','fullPath','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','info','fork','output','../../files/reports','savename','from','countTable','COUNT(*)','QueryTypes','runReport','order','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','fs-extra','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','dbH','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','destroy','sendStatus','error','stack','name','index','AnalyticCustomReport','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','show','params','merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xd4dc,0xff));var _0xcd4d=function(_0x3e44fa,_0x75ed2a){_0x3e44fa=_0x3e44fa-0x0;var _0x2a0aba=_0xd4dc[_0x3e44fa];return _0x2a0aba;};'use strict';var emlformat=require(_0xcd4d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xcd4d('0x1'));var jsonpatch=require(_0xcd4d('0x2'));var rp=require(_0xcd4d('0x3'));var moment=require(_0xcd4d('0x4'));var BPromise=require(_0xcd4d('0x5'));var Mustache=require(_0xcd4d('0x6'));var util=require(_0xcd4d('0x7'));var path=require('path');var sox=require(_0xcd4d('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xcd4d('0x9'));var _=require('lodash');var squel=require(_0xcd4d('0xa'));var crypto=require(_0xcd4d('0xb'));var jsforce=require(_0xcd4d('0xc'));var deskjs=require(_0xcd4d('0xd'));var toCsv=require(_0xcd4d('0xe'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xcd4d('0xf'));var authService=require(_0xcd4d('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xcd4d('0x11'));var hardwareService=require(_0xcd4d('0x12'));var logger=require(_0xcd4d('0x13'))('api');var utils=require(_0xcd4d('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xcd4d('0x15'));var db=require(_0xcd4d('0x16'))['db'];var dbH=require(_0xcd4d('0x16'))[_0xcd4d('0x17')];function respondWithStatusCode(_0x10fb9e,_0x5c3c00){_0x5c3c00=_0x5c3c00||0xcc;return function(_0x47db1a){if(_0x47db1a){return _0x10fb9e['sendStatus'](_0x5c3c00);}return _0x10fb9e[_0xcd4d('0x18')](_0x5c3c00)[_0xcd4d('0x19')]();};}function respondWithResult(_0x36afd0,_0x3f9724){_0x3f9724=_0x3f9724||0xc8;return function(_0x1fc419){if(_0x1fc419){return _0x36afd0[_0xcd4d('0x18')](_0x3f9724)[_0xcd4d('0x1a')](_0x1fc419);}};}function respondWithFilteredResult(_0x3cf713,_0x27bf0c){return function(_0xbddbe){if(_0xbddbe){var _0x5e7ae1=typeof _0x27bf0c[_0xcd4d('0x1b')]===_0xcd4d('0x1c')&&typeof _0x27bf0c[_0xcd4d('0x1d')]===_0xcd4d('0x1c');var _0x470e42=_0xbddbe[_0xcd4d('0x1e')];var _0x32ac99=_0x5e7ae1?0x0:_0x27bf0c[_0xcd4d('0x1b')];var _0x138d00=_0x5e7ae1?_0xbddbe[_0xcd4d('0x1e')]:_0x27bf0c[_0xcd4d('0x1b')]+_0x27bf0c[_0xcd4d('0x1d')];var _0x346bd3;if(_0x138d00>=_0x470e42){_0x138d00=_0x470e42;_0x346bd3=0xc8;}else{_0x346bd3=0xce;}_0x3cf713['status'](_0x346bd3);return _0x3cf713[_0xcd4d('0x1f')](_0xcd4d('0x20'),_0x32ac99+'-'+_0x138d00+'/'+_0x470e42)[_0xcd4d('0x1a')](_0xbddbe);}return null;};}function patchUpdates(_0x1b149e){return function(_0x2a4ee3){try{jsonpatch[_0xcd4d('0x21')](_0x2a4ee3,_0x1b149e,!![]);}catch(_0x2a143e){return BPromise[_0xcd4d('0x22')](_0x2a143e);}return _0x2a4ee3[_0xcd4d('0x23')]();};}function saveUpdates(_0x1f3e88,_0x6998){return function(_0x502fd5){if(_0x502fd5){return _0x502fd5[_0xcd4d('0x24')](_0x1f3e88)['then'](function(_0x1f7026){return _0x1f7026;});}return null;};}function removeEntity(_0x770ec6,_0x58cade){return function(_0x367aa1){if(_0x367aa1){return _0x367aa1['destroy']()[_0xcd4d('0x25')](function(){var _0xdc7660=_0x367aa1[_0xcd4d('0x26')]({'plain':!![]});var _0x512774='CustomReports';return db['UserProfileResource'][_0xcd4d('0x27')]({'where':{'type':_0x512774,'resourceId':_0xdc7660['id']}})[_0xcd4d('0x25')](function(){return _0x367aa1;});})[_0xcd4d('0x25')](function(){_0x770ec6[_0xcd4d('0x18')](0xcc)[_0xcd4d('0x19')]();});}};}function handleEntityNotFound(_0x4d5c84,_0x50f031){return function(_0x28da5c){if(!_0x28da5c){_0x4d5c84[_0xcd4d('0x28')](0x194);}return _0x28da5c;};}function handleError(_0x4adcb5,_0x1ab2ed){_0x1ab2ed=_0x1ab2ed||0x1f4;return function(_0x893333){logger[_0xcd4d('0x29')](_0x893333[_0xcd4d('0x2a')]);if(_0x893333[_0xcd4d('0x2b')]){delete _0x893333[_0xcd4d('0x2b')];}_0x4adcb5[_0xcd4d('0x18')](_0x1ab2ed)['send'](_0x893333);};}exports[_0xcd4d('0x2c')]=function(_0x10bdfa,_0x4a2cf4){var _0xe150ec={},_0x490012={},_0x4e45b7={'count':0x0,'rows':[]};var _0x449e3a=_['map'](db[_0xcd4d('0x2d')][_0xcd4d('0x2e')],function(_0x9eae4b){return{'name':_0x9eae4b[_0xcd4d('0x2f')],'type':_0x9eae4b[_0xcd4d('0x30')][_0xcd4d('0x31')]};});_0x490012[_0xcd4d('0x32')]=_[_0xcd4d('0x33')](_0x449e3a,_0xcd4d('0x2b'));_0x490012[_0xcd4d('0x34')]=_[_0xcd4d('0x35')](_0x10bdfa[_0xcd4d('0x34')]);_0x490012[_0xcd4d('0x36')]=_[_0xcd4d('0x37')](_0x490012[_0xcd4d('0x32')],_0x490012[_0xcd4d('0x34')]);_0xe150ec[_0xcd4d('0x38')]=_[_0xcd4d('0x37')](_0x490012['model'],qs[_0xcd4d('0x39')](_0x10bdfa['query'][_0xcd4d('0x39')]));_0xe150ec[_0xcd4d('0x38')]=_0xe150ec[_0xcd4d('0x38')]['length']?_0xe150ec['attributes']:_0x490012[_0xcd4d('0x32')];if(!_0x10bdfa['query'][_0xcd4d('0x3a')](_0xcd4d('0x3b'))){_0xe150ec[_0xcd4d('0x1d')]=qs[_0xcd4d('0x1d')](_0x10bdfa[_0xcd4d('0x34')][_0xcd4d('0x1d')]);_0xe150ec['offset']=qs[_0xcd4d('0x1b')](_0x10bdfa[_0xcd4d('0x34')][_0xcd4d('0x1b')]);}_0xe150ec['order']=qs[_0xcd4d('0x3c')](_0x10bdfa[_0xcd4d('0x34')][_0xcd4d('0x3c')]);_0xe150ec[_0xcd4d('0x3d')]=qs['filters'](_[_0xcd4d('0x3e')](_0x10bdfa[_0xcd4d('0x34')],_0x490012['filters']),_0x449e3a);if(_0x10bdfa[_0xcd4d('0x34')][_0xcd4d('0x3f')]){_0xe150ec['where']=_['merge'](_0xe150ec[_0xcd4d('0x3d')],{'$or':_[_0xcd4d('0x33')](_0x449e3a,function(_0x2928fb){if(_0x2928fb[_0xcd4d('0x30')]!==_0xcd4d('0x40')){var _0x123413={};_0x123413[_0x2928fb[_0xcd4d('0x2b')]]={'$like':'%'+_0x10bdfa[_0xcd4d('0x34')]['filter']+'%'};return _0x123413;}})});}_0xe150ec=_['merge']({},_0xe150ec,_0x10bdfa[_0xcd4d('0x41')]);var _0x5587c7={'where':_0xe150ec[_0xcd4d('0x3d')]};return db[_0xcd4d('0x2d')][_0xcd4d('0x1e')](_0x5587c7)[_0xcd4d('0x25')](function(_0x2d4075){_0x4e45b7[_0xcd4d('0x1e')]=_0x2d4075;if(_0x10bdfa['query'][_0xcd4d('0x42')]){_0xe150ec[_0xcd4d('0x43')]=[{'all':!![]}];}return db[_0xcd4d('0x2d')][_0xcd4d('0x44')](_0xe150ec);})[_0xcd4d('0x25')](function(_0x36c18a){_0x4e45b7[_0xcd4d('0x45')]=_0x36c18a;return _0x4e45b7;})[_0xcd4d('0x25')](respondWithFilteredResult(_0x4a2cf4,_0xe150ec))['catch'](handleError(_0x4a2cf4,null));};exports[_0xcd4d('0x46')]=function(_0x2e1f9a,_0x25ee24){var _0x587ba1={'raw':![],'where':{'id':_0x2e1f9a[_0xcd4d('0x47')]['id']}},_0x2946ad={};_0x2946ad[_0xcd4d('0x32')]=_[_0xcd4d('0x35')](db['AnalyticCustomReport'][_0xcd4d('0x2e')]);_0x2946ad[_0xcd4d('0x34')]=_[_0xcd4d('0x35')](_0x2e1f9a['query']);_0x2946ad[_0xcd4d('0x36')]=_['intersection'](_0x2946ad['model'],_0x2946ad[_0xcd4d('0x34')]);_0x587ba1[_0xcd4d('0x38')]=_[_0xcd4d('0x37')](_0x2946ad[_0xcd4d('0x32')],qs[_0xcd4d('0x39')](_0x2e1f9a['query'][_0xcd4d('0x39')]));_0x587ba1[_0xcd4d('0x38')]=_0x587ba1[_0xcd4d('0x38')]['length']?_0x587ba1['attributes']:_0x2946ad['model'];if(_0x2e1f9a['query'][_0xcd4d('0x42')]){_0x587ba1[_0xcd4d('0x43')]=[{'all':!![]}];}_0x587ba1=_[_0xcd4d('0x48')]({},_0x587ba1,_0x2e1f9a[_0xcd4d('0x41')]);return db[_0xcd4d('0x2d')][_0xcd4d('0x49')](_0x587ba1)[_0xcd4d('0x25')](handleEntityNotFound(_0x25ee24,null))[_0xcd4d('0x25')](respondWithResult(_0x25ee24,null))['catch'](handleError(_0x25ee24,null));};exports['create']=function(_0x1cdf8d,_0x275b3e){return db[_0xcd4d('0x2d')][_0xcd4d('0x4a')](_0x1cdf8d[_0xcd4d('0x4b')],{})['then'](function(_0x140aee){var _0x357d3f=_0x1cdf8d[_0xcd4d('0x4c')]['get']({'plain':!![]});if(!_0x357d3f)throw new Error(_0xcd4d('0x4d'));if(_0x357d3f[_0xcd4d('0x4e')]===_0xcd4d('0x4c')){var _0x10c9a4=_0x140aee[_0xcd4d('0x26')]({'plain':!![]});var _0x32c3a8=_0xcd4d('0x4f');return db[_0xcd4d('0x50')][_0xcd4d('0x49')]({'where':{'name':_0x32c3a8,'userProfileId':_0x357d3f[_0xcd4d('0x51')]},'raw':!![]})[_0xcd4d('0x25')](function(_0x6f1297){if(_0x6f1297&&_0x6f1297[_0xcd4d('0x52')]===0x0){return db['UserProfileResource'][_0xcd4d('0x4a')]({'name':_0x10c9a4['name'],'resourceId':_0x10c9a4['id'],'type':'CustomReports','sectionId':_0x6f1297['id']},{})[_0xcd4d('0x25')](function(){return _0x140aee;});}else{return _0x140aee;}})[_0xcd4d('0x53')](function(_0x2e284b){logger[_0xcd4d('0x29')](_0xcd4d('0x54'),_0x2e284b);throw _0x2e284b;});}return _0x140aee;})[_0xcd4d('0x25')](respondWithResult(_0x275b3e,0xc9))['catch'](handleError(_0x275b3e,null));};exports[_0xcd4d('0x24')]=function(_0x48a17a,_0x1546e0){if(_0x48a17a[_0xcd4d('0x4b')]['id']){delete _0x48a17a[_0xcd4d('0x4b')]['id'];}return db['AnalyticCustomReport'][_0xcd4d('0x49')]({'where':{'id':_0x48a17a[_0xcd4d('0x47')]['id']}})[_0xcd4d('0x25')](handleEntityNotFound(_0x1546e0,null))['then'](saveUpdates(_0x48a17a['body'],null))[_0xcd4d('0x25')](respondWithResult(_0x1546e0,null))[_0xcd4d('0x53')](handleError(_0x1546e0,null));};exports['destroy']=function(_0x260ae8,_0x209d84){return db[_0xcd4d('0x2d')][_0xcd4d('0x49')]({'where':{'id':_0x260ae8[_0xcd4d('0x47')]['id']}})[_0xcd4d('0x25')](handleEntityNotFound(_0x209d84,null))[_0xcd4d('0x25')](removeEntity(_0x209d84,null))[_0xcd4d('0x53')](handleError(_0x209d84,null));};exports[_0xcd4d('0x55')]=function(_0x533312,_0x161170){var _0x1a3b44=0xa;var _0x3e7ab0=[_0xcd4d('0x56'),_0xcd4d('0x57'),_0xcd4d('0x58'),'cross_join'];var _0x5264d2={'SUM':'SUM(%s)','COUNT':_0xcd4d('0x59'),'COUNT DISTINCT':_0xcd4d('0x5a'),'MAX':_0xcd4d('0x5b'),'MIN':_0xcd4d('0x5c'),'AVG':_0xcd4d('0x5d'),'GROUP_CONCAT':_0xcd4d('0x5e'),'GROUP_CONCAT ASC':_0xcd4d('0x5f'),'GROUP_CONCAT DESC':_0xcd4d('0x60')};var _0x25907b={'SEC_TO_TIME':_0xcd4d('0x61'),'DATE':'DATE(%s)','HOUR':_0xcd4d('0x62'),'ROUND':_0xcd4d('0x63'),'UNIX_TIMESTAMP':_0xcd4d('0x64')};var _0x8b8ab8=function(_0x4a6e06){return!_['includes']([_0xcd4d('0x65'),'IS\x20NOT\x20NULL','IS\x20EMPTY',_0xcd4d('0x66')],_0x4a6e06);};var _0x2c1254=function(_0x3074d7){if(!_0x3074d7||!_0x3074d7['rules'][_0xcd4d('0x67')]){return'';}for(var _0x4ac793='(',_0x13e223=0x0;_0x13e223<_0x3074d7[_0xcd4d('0x68')][_0xcd4d('0x67')];_0x13e223+=0x1){_0x13e223>0x0&&(_0x4ac793+='\x20'+_0x3074d7['operator']+'\x20');_0x4ac793+=_0x3074d7['rules'][_0x13e223][_0xcd4d('0x69')]?_0x2c1254(_0x3074d7[_0xcd4d('0x68')][_0x13e223]['group']):_0x3074d7[_0xcd4d('0x68')][_0x13e223]['field']+'\x20'+_0x3074d7[_0xcd4d('0x68')][_0x13e223]['condition']+(_0x8b8ab8(_0x3074d7[_0xcd4d('0x68')][_0x13e223][_0xcd4d('0x6a')])?'\x20'+_0x3074d7[_0xcd4d('0x68')][_0x13e223]['value']:'');}return _0x4ac793+')';};var _0xfff2fb={'where':{'id':_0x533312['params']['id']}},_0x2adf9c,_0x52989f,_0x345484,_0x11fa3c,_0x180399;_0xfff2fb=_[_0xcd4d('0x48')]({},_0xfff2fb,_0x533312[_0xcd4d('0x41')]);return db[_0xcd4d('0x2d')][_0xcd4d('0x49')](_0xfff2fb)['then'](function(_0x575e2a){if(_0x575e2a){_0x2adf9c=_0x575e2a;return _0x575e2a[_0xcd4d('0x6b')]();}return null;})[_0xcd4d('0x25')](function(_0x4fda50){if(_0x4fda50){if(!_0x4fda50['length']){throw new db[(_0xcd4d('0x6c'))]['ValidationErrorItem'](_0xcd4d('0x6d'),0x193);}_0x52989f=_0x4fda50;return db[_0xcd4d('0x6e')]['findAll']({'raw':!![]});}return null;})[_0xcd4d('0x25')](function(_0x1cb0a9){if(_0x1cb0a9){_0x345484=_['keyBy'](_0x1cb0a9,'id');var _0x25cd0c;var _0x1a2169=squel[_0xcd4d('0x6f')]();_0x1a2169['from'](_0x2adf9c[_0xcd4d('0x70')]);for(var _0x3ec9e1=0x0;_0x3ec9e1<_0x52989f['length'];_0x3ec9e1+=0x1){_0x25cd0c=_0x52989f[_0x3ec9e1]['MetricId']?_0x345484[_0x52989f[_0x3ec9e1]['MetricId']]['metric']:_0x52989f[_0x3ec9e1]['field'];_0x25cd0c=_0x52989f[_0x3ec9e1]['function']?_['replace'](_0x5264d2[_0x52989f[_0x3ec9e1][_0xcd4d('0x71')]],'%s',_0x25cd0c):_0x25cd0c;_0x25cd0c=_0x52989f[_0x3ec9e1][_0xcd4d('0x72')]?_['replace'](_0x25907b[_0x52989f[_0x3ec9e1]['format']],'%s',_0x25cd0c):_0x25cd0c;if(_0x52989f[_0x3ec9e1][_0xcd4d('0x73')]){_0x1a2169[_0xcd4d('0x69')](_0x25cd0c);}_0x52989f[_0x3ec9e1][_0xcd4d('0x74')]&&_0x1a2169['order'](_0x25cd0c,_0x52989f[_0x3ec9e1][_0xcd4d('0x74')]==='DESC'?![]:!![]);_0x1a2169[_0xcd4d('0x75')](_0x25cd0c,_0x52989f[_0x3ec9e1]['alias']||_0x25cd0c);}if(_0x2adf9c[_0xcd4d('0x76')]){_0x2adf9c[_0xcd4d('0x76')]=JSON[_0xcd4d('0x77')](_0x2adf9c[_0xcd4d('0x76')]);for(var _0x32b4a9=0x0;_0x32b4a9<_0x2adf9c[_0xcd4d('0x76')][_0xcd4d('0x67')];_0x32b4a9+=0x1){if(_0x2adf9c['joins'][_0x32b4a9][_0xcd4d('0x30')]&&_[_0xcd4d('0x78')](_0x3e7ab0,_0x2adf9c[_0xcd4d('0x76')][_0x32b4a9]['type'])&&_0x2adf9c[_0xcd4d('0x76')][_0x32b4a9][_0xcd4d('0x79')]&&_0x2adf9c[_0xcd4d('0x76')][_0x32b4a9][_0xcd4d('0x7a')]&&_0x2adf9c['joins'][_0x32b4a9][_0xcd4d('0x7b')]){_0x1a2169[_0x2adf9c[_0xcd4d('0x76')][_0x32b4a9][_0xcd4d('0x30')]](_0x2adf9c['joins'][_0x32b4a9][_0xcd4d('0x7a')],null,util[_0xcd4d('0x72')](_0xcd4d('0x7c'),_0x2adf9c['table'],_0x2adf9c[_0xcd4d('0x76')][_0x32b4a9]['parentKey'],_0x2adf9c[_0xcd4d('0x76')][_0x32b4a9][_0xcd4d('0x7a')],_0x2adf9c['joins'][_0x32b4a9][_0xcd4d('0x7b')]));}}}if(_0x2adf9c['conditions']){_0x2adf9c[_0xcd4d('0x7d')]=JSON['parse'](_0x2adf9c[_0xcd4d('0x7d')]);_0x1a2169[_0xcd4d('0x3d')](_0x2c1254(_0x2adf9c[_0xcd4d('0x7d')][_0xcd4d('0x69')]));}_0x180399=_0x1a2169['clone']();_0x1a2169[_0xcd4d('0x1d')](_0x1a3b44);_0x1a2169[_0xcd4d('0x1b')](0x0);logger[_0xcd4d('0x7e')](_0xcd4d('0x7f'),_0x1a2169[_0xcd4d('0x80')]());return dbH[_0xcd4d('0x81')][_0xcd4d('0x34')](_0x1a2169[_0xcd4d('0x80')](),{'type':dbH[_0xcd4d('0x81')]['QueryTypes'][_0xcd4d('0x82')]});}})[_0xcd4d('0x25')](respondWithResult(_0x161170,null))[_0xcd4d('0x53')](handleError(_0x161170,null));};function runReport(_0xd894d3,_0x1d9e82,_0x251fbf){var _0x4fc71d=_0x1d9e82[_0xcd4d('0x2b')];var _0x1a84bd=0xa;var _0x4574b5=['join',_0xcd4d('0x57'),'right_join',_0xcd4d('0x83')];var _0x4df240={'SUM':_0xcd4d('0x84'),'COUNT':_0xcd4d('0x59'),'COUNT DISTINCT':_0xcd4d('0x5a'),'MAX':_0xcd4d('0x5b'),'MIN':_0xcd4d('0x5c'),'AVG':_0xcd4d('0x5d'),'GROUP_CONCAT':_0xcd4d('0x5e'),'GROUP_CONCAT ASC':_0xcd4d('0x5f'),'GROUP_CONCAT DESC':_0xcd4d('0x60')};var _0x982a4e={'SEC_TO_TIME':_0xcd4d('0x61'),'DATE':_0xcd4d('0x85'),'HOUR':_0xcd4d('0x62'),'ROUND':_0xcd4d('0x63'),'UNIX_TIMESTAMP':_0xcd4d('0x64')};var _0x151fa6=function(_0x2daaee){return!_[_0xcd4d('0x78')](['IS\x20NULL',_0xcd4d('0x86'),_0xcd4d('0x87'),_0xcd4d('0x66')],_0x2daaee);};var _0x1d3c94=function(_0x2868be){if(!_0x2868be||!_0x2868be[_0xcd4d('0x68')]['length']){return'';}for(var _0x413735='(',_0x37f5ad=0x0;_0x37f5ad<_0x2868be[_0xcd4d('0x68')]['length'];_0x37f5ad+=0x1){_0x37f5ad>0x0&&(_0x413735+='\x20'+_0x2868be[_0xcd4d('0x88')]+'\x20');_0x413735+=_0x2868be[_0xcd4d('0x68')][_0x37f5ad][_0xcd4d('0x69')]?_0x1d3c94(_0x2868be['rules'][_0x37f5ad][_0xcd4d('0x69')]):_0x2868be[_0xcd4d('0x68')][_0x37f5ad][_0xcd4d('0x75')]+'\x20'+_0x2868be[_0xcd4d('0x68')][_0x37f5ad][_0xcd4d('0x6a')]+(_0x151fa6(_0x2868be[_0xcd4d('0x68')][_0x37f5ad][_0xcd4d('0x6a')])?'\x20'+_0x2868be[_0xcd4d('0x68')][_0x37f5ad][_0xcd4d('0x89')]:'');}return _0x413735+')';};var _0x23d707={'where':{'id':_0xd894d3['id']}},_0x5e90bb,_0x359dd7,_0x845661,_0x5f20a4,_0x2ec203;_0x23d707=_[_0xcd4d('0x48')]({},_0x23d707,_0x251fbf);return db['AnalyticCustomReport'][_0xcd4d('0x49')](_0x23d707)['then'](function(_0x4c7a79){if(_0x4c7a79){_0x5e90bb=_0x4c7a79;return _0x4c7a79['getFields']();}return null;})['then'](function(_0x2d5fe1){if(_0x2d5fe1){if(!_0x2d5fe1[_0xcd4d('0x67')]){throw new db[(_0xcd4d('0x6c'))][(_0xcd4d('0x8a'))](_0xcd4d('0x6d'),0x193);}_0x359dd7=_0x2d5fe1;return db['AnalyticMetric'][_0xcd4d('0x44')]({'raw':!![]});}return null;})['then'](function(_0xdcaa6){if(_0xdcaa6){_0x845661=_[_0xcd4d('0x8b')](_0xdcaa6,'id');var _0x4e88a2;var _0x2bc608=squel[_0xcd4d('0x6f')]();_0x2bc608['from'](_0x5e90bb['table']);for(var _0x525302=0x0;_0x525302<_0x359dd7[_0xcd4d('0x67')];_0x525302+=0x1){_0x4e88a2=_0x359dd7[_0x525302][_0xcd4d('0x8c')]?_0x845661[_0x359dd7[_0x525302]['MetricId']][_0xcd4d('0x8d')]:_0x359dd7[_0x525302][_0xcd4d('0x75')];_0x4e88a2=_0x359dd7[_0x525302][_0xcd4d('0x71')]?_[_0xcd4d('0x8e')](_0x4df240[_0x359dd7[_0x525302]['function']],'%s',_0x4e88a2):_0x4e88a2;_0x4e88a2=_0x359dd7[_0x525302][_0xcd4d('0x72')]?_[_0xcd4d('0x8e')](_0x982a4e[_0x359dd7[_0x525302][_0xcd4d('0x72')]],'%s',_0x4e88a2):_0x4e88a2;if(_0x359dd7[_0x525302][_0xcd4d('0x73')]){_0x2bc608[_0xcd4d('0x69')](_0x4e88a2);}_0x359dd7[_0x525302][_0xcd4d('0x74')]&&_0x2bc608['order'](_0x4e88a2,_0x359dd7[_0x525302][_0xcd4d('0x74')]===_0xcd4d('0x8f')?![]:!![]);_0x2bc608['field'](_0x4e88a2,_0x359dd7[_0x525302][_0xcd4d('0x90')]||_0x4e88a2);}if(_0x5e90bb[_0xcd4d('0x76')]){_0x5e90bb[_0xcd4d('0x76')]=JSON['parse'](_0x5e90bb[_0xcd4d('0x76')]);for(var _0x575384=0x0;_0x575384<_0x5e90bb[_0xcd4d('0x76')][_0xcd4d('0x67')];_0x575384+=0x1){if(_0x5e90bb[_0xcd4d('0x76')][_0x575384][_0xcd4d('0x30')]&&_['includes'](_0x4574b5,_0x5e90bb[_0xcd4d('0x76')][_0x575384][_0xcd4d('0x30')])&&_0x5e90bb[_0xcd4d('0x76')][_0x575384]['parentKey']&&_0x5e90bb[_0xcd4d('0x76')][_0x575384][_0xcd4d('0x7a')]&&_0x5e90bb[_0xcd4d('0x76')][_0x575384][_0xcd4d('0x7b')]){_0x2bc608[_0x5e90bb[_0xcd4d('0x76')][_0x575384][_0xcd4d('0x30')]](_0x5e90bb[_0xcd4d('0x76')][_0x575384]['foreignTable'],null,util[_0xcd4d('0x72')](_0xcd4d('0x7c'),_0x5e90bb['table'],_0x5e90bb[_0xcd4d('0x76')][_0x575384][_0xcd4d('0x79')],_0x5e90bb['joins'][_0x575384][_0xcd4d('0x7a')],_0x5e90bb[_0xcd4d('0x76')][_0x575384]['foreignKey']));}}}if(_0x5e90bb[_0xcd4d('0x7d')]){_0x5e90bb[_0xcd4d('0x7d')]=JSON[_0xcd4d('0x77')](_0x5e90bb['conditions']);_0x2bc608[_0xcd4d('0x3d')](_0x1d3c94(_0x5e90bb[_0xcd4d('0x7d')][_0xcd4d('0x69')]));}_0x2ec203=_0x2bc608[_0xcd4d('0x91')]();_0x2bc608[_0xcd4d('0x1d')](_0x1a84bd);_0x2bc608['offset'](0x0);return;}})[_0xcd4d('0x25')](function(){if(_0x1d9e82['output']===_0xcd4d('0x92')){return null;}var _0x30aa7d=_[_0xcd4d('0x48')](_0x1d9e82,{'name':_0x1d9e82[_0xcd4d('0x93')]||_0x1d9e82[_0xcd4d('0x2b')]||_0x5e90bb['name'],'basename':_0x4fc71d,'savename':util['format']('%s-%s.%s',_0x1d9e82[_0xcd4d('0x2b')]||_0x5e90bb['name'],require('randomstring')[_0xcd4d('0x94')](0x4),_0x1d9e82['output']||_0xcd4d('0x95')),'reportId':_0x5e90bb['id'],'reportType':_0xcd4d('0x96')});return db[_0xcd4d('0x97')][_0xcd4d('0x4a')](_0x30aa7d,{'raw':!![]});})[_0xcd4d('0x25')](function(_0x409393){if(_0x5e90bb[_0xcd4d('0x70')]===_0xcd4d('0x98')){_0x2ec203[_0xcd4d('0x3d')](_0x5e90bb[_0xcd4d('0x70')]+_0xcd4d('0x99'),_0x1d9e82['startDate'],_0x1d9e82[_0xcd4d('0x9a')]);}else{_0x2ec203['where'](_0x5e90bb[_0xcd4d('0x70')]+_0xcd4d('0x9b'),_0x1d9e82[_0xcd4d('0x9c')],_0x1d9e82[_0xcd4d('0x9a')]);}if(_0x409393){logger[_0xcd4d('0x9d')]('Run\x20Query:',_0x2ec203[_0xcd4d('0x80')]());require('child_process')[_0xcd4d('0x9e')](path[_0xcd4d('0x56')](__dirname,'../../components/export/',_0x409393[_0xcd4d('0x9f')]),[_0x409393['id'],_0x2ec203[_0xcd4d('0x80')](),path[_0xcd4d('0x56')](__dirname,_0xcd4d('0xa0'),_0x409393[_0xcd4d('0xa1')]),_0x4fc71d]);return _0x409393;}else{var _0x11591b=squel[_0xcd4d('0x6f')]();_0x11591b[_0xcd4d('0xa2')]('('+_0x2ec203[_0xcd4d('0x80')]()+')',_0xcd4d('0xa3'));_0x11591b[_0xcd4d('0x75')](_0xcd4d('0xa4'),_0xcd4d('0x1e'));_0x2ec203['limit'](_0x1d9e82[_0xcd4d('0x1d')]||_0x1a84bd);_0x2ec203[_0xcd4d('0x1b')](_0x1d9e82[_0xcd4d('0x1b')]||0x0);return dbH['sequelize'][_0xcd4d('0x34')](_0x11591b[_0xcd4d('0x80')](),{'type':dbH['sequelize'][_0xcd4d('0xa5')][_0xcd4d('0x82')]})[_0xcd4d('0x25')](function(_0x35bb7e){if(!_0x35bb7e['length']){_0x5f20a4=0x0;}else{_0x5f20a4=_0x35bb7e[0x0][_0xcd4d('0x1e')]||0x0;}return dbH[_0xcd4d('0x81')]['query'](_0x2ec203[_0xcd4d('0x80')](),{'type':dbH[_0xcd4d('0x81')][_0xcd4d('0xa5')][_0xcd4d('0x82')]});})[_0xcd4d('0x25')](function(_0x199493){return{'rows':_0x199493||[],'count':_0x5f20a4};});}});}exports['run']=function(_0x3bae29,_0x13bcf9){return runReport(_0x3bae29[_0xcd4d('0x47')],_0x3bae29[_0xcd4d('0x34')],_0x3bae29['options'])[_0xcd4d('0x25')](respondWithResult(_0x13bcf9,null))[_0xcd4d('0x53')](handleError(_0x13bcf9,null));};exports[_0xcd4d('0xa6')]=runReport;exports[_0xcd4d('0x34')]=function(_0x1d272a,_0xfbb448){var _0x214a48=0xa;var _0x5ef37f=[_0xcd4d('0x56'),_0xcd4d('0x57'),_0xcd4d('0x58'),_0xcd4d('0x83')];var _0x2c96cd={'SUM':_0xcd4d('0x84'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0xcd4d('0x5a'),'MAX':'MAX(%s)','MIN':_0xcd4d('0x5c'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xcd4d('0x5f'),'GROUP_CONCAT DESC':_0xcd4d('0x60')};var _0x97e00e={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xcd4d('0x85'),'HOUR':_0xcd4d('0x62'),'ROUND':_0xcd4d('0x63'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x560379=function(_0x48ce97){return!_['includes']([_0xcd4d('0x65'),_0xcd4d('0x86'),_0xcd4d('0x87'),_0xcd4d('0x66')],_0x48ce97);};var _0x291c92=function(_0x256bed){if(!_0x256bed||!_0x256bed[_0xcd4d('0x68')][_0xcd4d('0x67')]){return'';}for(var _0x5144c3='(',_0x40ea5b=0x0;_0x40ea5b<_0x256bed[_0xcd4d('0x68')][_0xcd4d('0x67')];_0x40ea5b+=0x1){_0x40ea5b>0x0&&(_0x5144c3+='\x20'+_0x256bed[_0xcd4d('0x88')]+'\x20');_0x5144c3+=_0x256bed[_0xcd4d('0x68')][_0x40ea5b]['group']?_0x291c92(_0x256bed[_0xcd4d('0x68')][_0x40ea5b][_0xcd4d('0x69')]):_0x256bed[_0xcd4d('0x68')][_0x40ea5b]['field']+'\x20'+_0x256bed['rules'][_0x40ea5b][_0xcd4d('0x6a')]+(_0x560379(_0x256bed[_0xcd4d('0x68')][_0x40ea5b][_0xcd4d('0x6a')])?'\x20'+_0x256bed['rules'][_0x40ea5b][_0xcd4d('0x89')]:'');}return _0x5144c3+')';};var _0x74e453={'where':{'id':_0x1d272a['params']['id']}},_0x37e13b,_0x191a56,_0x5436e2,_0x3d8d15,_0x535996;_0x74e453=_[_0xcd4d('0x48')]({},_0x74e453,_0x1d272a[_0xcd4d('0x41')]);return db[_0xcd4d('0x2d')][_0xcd4d('0x49')](_0x74e453)[_0xcd4d('0x25')](function(_0x359f09){if(_0x359f09){_0x37e13b=_0x359f09;return _0x359f09[_0xcd4d('0x6b')]();}return null;})['then'](function(_0x362c18){if(_0x362c18){if(!_0x362c18[_0xcd4d('0x67')]){throw new db['Sequelize'][(_0xcd4d('0x8a'))](_0xcd4d('0x6d'),0x193);}_0x191a56=_0x362c18;return db[_0xcd4d('0x6e')][_0xcd4d('0x44')]({'raw':!![]});}return null;})[_0xcd4d('0x25')](function(_0x450db5){if(_0x450db5){_0x5436e2=_[_0xcd4d('0x8b')](_0x450db5,'id');var _0xfbcf0b;var _0x161b92=squel[_0xcd4d('0x6f')]();_0x161b92['from'](_0x37e13b[_0xcd4d('0x70')]);for(var _0x44e0f3=0x0;_0x44e0f3<_0x191a56[_0xcd4d('0x67')];_0x44e0f3+=0x1){_0xfbcf0b=_0x191a56[_0x44e0f3][_0xcd4d('0x8c')]?_0x5436e2[_0x191a56[_0x44e0f3]['MetricId']][_0xcd4d('0x8d')]:_0x191a56[_0x44e0f3][_0xcd4d('0x75')];_0xfbcf0b=_0x191a56[_0x44e0f3]['function']?_[_0xcd4d('0x8e')](_0x2c96cd[_0x191a56[_0x44e0f3][_0xcd4d('0x71')]],'%s',_0xfbcf0b):_0xfbcf0b;_0xfbcf0b=_0x191a56[_0x44e0f3][_0xcd4d('0x72')]?_[_0xcd4d('0x8e')](_0x97e00e[_0x191a56[_0x44e0f3][_0xcd4d('0x72')]],'%s',_0xfbcf0b):_0xfbcf0b;if(_0x191a56[_0x44e0f3][_0xcd4d('0x73')]){_0x161b92[_0xcd4d('0x69')](_0xfbcf0b);}_0x191a56[_0x44e0f3][_0xcd4d('0x74')]&&_0x161b92[_0xcd4d('0xa7')](_0xfbcf0b,_0x191a56[_0x44e0f3][_0xcd4d('0x74')]===_0xcd4d('0x8f')?![]:!![]);_0x161b92[_0xcd4d('0x75')](_0xfbcf0b,_0x191a56[_0x44e0f3][_0xcd4d('0x90')]||_0xfbcf0b);}if(_0x37e13b[_0xcd4d('0x76')]){_0x37e13b['joins']=JSON[_0xcd4d('0x77')](_0x37e13b[_0xcd4d('0x76')]);for(var _0x2a2089=0x0;_0x2a2089<_0x37e13b['joins'][_0xcd4d('0x67')];_0x2a2089+=0x1){if(_0x37e13b[_0xcd4d('0x76')][_0x2a2089]['type']&&_[_0xcd4d('0x78')](_0x5ef37f,_0x37e13b[_0xcd4d('0x76')][_0x2a2089][_0xcd4d('0x30')])&&_0x37e13b['joins'][_0x2a2089][_0xcd4d('0x79')]&&_0x37e13b[_0xcd4d('0x76')][_0x2a2089]['foreignTable']&&_0x37e13b['joins'][_0x2a2089][_0xcd4d('0x7b')]){_0x161b92[_0x37e13b[_0xcd4d('0x76')][_0x2a2089]['type']](_0x37e13b[_0xcd4d('0x76')][_0x2a2089][_0xcd4d('0x7a')],null,util[_0xcd4d('0x72')](_0xcd4d('0x7c'),_0x37e13b[_0xcd4d('0x70')],_0x37e13b[_0xcd4d('0x76')][_0x2a2089][_0xcd4d('0x79')],_0x37e13b[_0xcd4d('0x76')][_0x2a2089][_0xcd4d('0x7a')],_0x37e13b['joins'][_0x2a2089][_0xcd4d('0x7b')]));}}}if(_0x37e13b['conditions']){_0x37e13b[_0xcd4d('0x7d')]=JSON[_0xcd4d('0x77')](_0x37e13b[_0xcd4d('0x7d')]);_0x161b92[_0xcd4d('0x3d')](_0x291c92(_0x37e13b['conditions'][_0xcd4d('0x69')]));}_0x535996=_0x161b92[_0xcd4d('0x91')]();_0x161b92[_0xcd4d('0x1d')](_0x214a48);_0x161b92['offset'](0x0);logger[_0xcd4d('0x7e')](_0xcd4d('0x7f'),_0x161b92[_0xcd4d('0x80')]());return dbH['sequelize'][_0xcd4d('0x34')](_0x161b92['toString'](),{'type':dbH['sequelize'][_0xcd4d('0xa5')][_0xcd4d('0x82')]});}})['then'](function(){return{'sql':_0x535996[_0xcd4d('0x80')]()};})[_0xcd4d('0x25')](respondWithResult(_0xfbb448,null))[_0xcd4d('0x53')](handleError(_0xfbb448,null));};