Built motion from commit (unavailable).|2.5.4
[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 _0xea70=['GROUP_CONCAT(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','condition','ValidationErrorItem','foreignKey','parentKey','No\x20available\x20data','output','web','fullPath','%s-%s.%s','randomstring','generate','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','info','Run\x20Query:','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','right_join','IS\x20NULL','html-pdf','eml-format','rimraf','fast-json-patch','moment','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','dbH','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','map','AnalyticCustomReport','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','rows','catch','show','params','rawAttributes','length','options','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','join','cross_join','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)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','value','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','replace','function','format','groupBy','orderBy','DESC','alias','joins','parse','foreignTable','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','SUM(%s)','COUNT(%s)'];(function(_0x173eff,_0x55a7d0){var _0x119fbd=function(_0x31a223){while(--_0x31a223){_0x173eff['push'](_0x173eff['shift']());}};_0x119fbd(++_0x55a7d0);}(_0xea70,0x175));var _0x0ea7=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xea70[_0x20a584];return _0x4b41a8;};'use strict';var pdf=require(_0x0ea7('0x0'));var emlformat=require(_0x0ea7('0x1'));var rimraf=require(_0x0ea7('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0ea7('0x3'));var rp=require('request-promise');var moment=require(_0x0ea7('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x0ea7('0x5'));var util=require(_0x0ea7('0x6'));var path=require(_0x0ea7('0x7'));var sox=require(_0x0ea7('0x8'));var csv=require(_0x0ea7('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x0ea7('0xa'));var squel=require(_0x0ea7('0xb'));var crypto=require('crypto');var jsforce=require(_0x0ea7('0xc'));var deskjs=require(_0x0ea7('0xd'));var toCsv=require('to-csv');var querystring=require(_0x0ea7('0xe'));var Papa=require(_0x0ea7('0xf'));var Redis=require(_0x0ea7('0x10'));var authService=require(_0x0ea7('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x0ea7('0x12'));var hardwareService=require(_0x0ea7('0x13'));var logger=require(_0x0ea7('0x14'))(_0x0ea7('0x15'));var utils=require(_0x0ea7('0x16'));var config=require('../../config/environment');var db=require(_0x0ea7('0x17'))['db'];var dbH=require(_0x0ea7('0x17'))[_0x0ea7('0x18')];function respondWithStatusCode(_0x56d68f,_0x5addc6){_0x5addc6=_0x5addc6||0xcc;return function(_0x4f6c11){if(_0x4f6c11){return _0x56d68f[_0x0ea7('0x19')](_0x5addc6);}return _0x56d68f[_0x0ea7('0x1a')](_0x5addc6)[_0x0ea7('0x1b')]();};}function respondWithResult(_0x2cd543,_0x4e1cd9){_0x4e1cd9=_0x4e1cd9||0xc8;return function(_0x488067){if(_0x488067){return _0x2cd543['status'](_0x4e1cd9)[_0x0ea7('0x1c')](_0x488067);}};}function respondWithFilteredResult(_0x1e52e1,_0xa6b67f){return function(_0x548dad){if(_0x548dad){var _0x5da7aa=_0x548dad[_0x0ea7('0x1d')],_0x23609c=_0xa6b67f[_0x0ea7('0x1e')],_0x2aa4e9=_0xa6b67f[_0x0ea7('0x1e')]+_0xa6b67f[_0x0ea7('0x1f')],_0x2f1850;if(_0x2aa4e9>=_0x5da7aa){_0x2aa4e9=_0x5da7aa;_0x2f1850=0xc8;}else{_0x2f1850=0xce;}_0x1e52e1['status'](_0x2f1850);return _0x1e52e1['set'](_0x0ea7('0x20'),_0x23609c+'-'+_0x2aa4e9+'/'+_0x5da7aa)[_0x0ea7('0x1c')](_0x548dad);}return null;};}function patchUpdates(_0x4f526b){return function(_0x2d7f1a){try{jsonpatch[_0x0ea7('0x21')](_0x2d7f1a,_0x4f526b,!![]);}catch(_0x20f8fd){return BPromise[_0x0ea7('0x22')](_0x20f8fd);}return _0x2d7f1a[_0x0ea7('0x23')]();};}function saveUpdates(_0x38494d,_0x57cc9c){return function(_0x1f3bce){if(_0x1f3bce){return _0x1f3bce[_0x0ea7('0x24')](_0x38494d)[_0x0ea7('0x25')](function(_0x61c70e){return _0x61c70e;});}return null;};}function removeEntity(_0x411603,_0x82bb8){return function(_0x2007cd){if(_0x2007cd){return _0x2007cd[_0x0ea7('0x26')]()['then'](function(){var _0x25b6c9=_0x2007cd[_0x0ea7('0x27')]({'plain':!![]});var _0x76d6a9='CustomReports';return db[_0x0ea7('0x28')][_0x0ea7('0x26')]({'where':{'type':_0x76d6a9,'resourceId':_0x25b6c9['id']}})['then'](function(){return _0x2007cd;});})[_0x0ea7('0x25')](function(){_0x411603['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a6a6d,_0x32b956){return function(_0x36ff0a){if(!_0x36ff0a){_0x5a6a6d[_0x0ea7('0x19')](0x194);}return _0x36ff0a;};}function handleError(_0x47c4dc,_0x6d5ada){_0x6d5ada=_0x6d5ada||0x1f4;return function(_0x375c37){logger[_0x0ea7('0x29')](_0x375c37[_0x0ea7('0x2a')]);if(_0x375c37[_0x0ea7('0x2b')]){delete _0x375c37[_0x0ea7('0x2b')];}_0x47c4dc[_0x0ea7('0x1a')](_0x6d5ada)[_0x0ea7('0x2c')](_0x375c37);};}exports['index']=function(_0x27e9fd,_0x3d07c3){var _0x51f18a={},_0x2b5a2e={},_0x20799a={'count':0x0,'rows':[]};var _0x2fa27f=_[_0x0ea7('0x2d')](db[_0x0ea7('0x2e')]['rawAttributes'],function(_0x145caa){return{'name':_0x145caa[_0x0ea7('0x2f')],'type':_0x145caa[_0x0ea7('0x30')][_0x0ea7('0x31')]};});_0x2b5a2e[_0x0ea7('0x32')]=_[_0x0ea7('0x2d')](_0x2fa27f,'name');_0x2b5a2e['query']=_[_0x0ea7('0x33')](_0x27e9fd[_0x0ea7('0x34')]);_0x2b5a2e[_0x0ea7('0x35')]=_['intersection'](_0x2b5a2e['model'],_0x2b5a2e[_0x0ea7('0x34')]);_0x51f18a[_0x0ea7('0x36')]=_[_0x0ea7('0x37')](_0x2b5a2e['model'],qs['fields'](_0x27e9fd[_0x0ea7('0x34')][_0x0ea7('0x38')]));_0x51f18a[_0x0ea7('0x36')]=_0x51f18a[_0x0ea7('0x36')]['length']?_0x51f18a[_0x0ea7('0x36')]:_0x2b5a2e[_0x0ea7('0x32')];if(!_0x27e9fd['query'][_0x0ea7('0x39')](_0x0ea7('0x3a'))){_0x51f18a[_0x0ea7('0x1f')]=qs[_0x0ea7('0x1f')](_0x27e9fd['query'][_0x0ea7('0x1f')]);_0x51f18a[_0x0ea7('0x1e')]=qs['offset'](_0x27e9fd[_0x0ea7('0x34')][_0x0ea7('0x1e')]);}_0x51f18a[_0x0ea7('0x3b')]=qs[_0x0ea7('0x3c')](_0x27e9fd[_0x0ea7('0x34')]['sort']);_0x51f18a[_0x0ea7('0x3d')]=qs[_0x0ea7('0x35')](_[_0x0ea7('0x3e')](_0x27e9fd[_0x0ea7('0x34')],_0x2b5a2e['filters']),_0x2fa27f);if(_0x27e9fd['query'][_0x0ea7('0x3f')]){_0x51f18a[_0x0ea7('0x3d')]=_['merge'](_0x51f18a[_0x0ea7('0x3d')],{'$or':_[_0x0ea7('0x2d')](_0x2fa27f,function(_0x295708){if(_0x295708[_0x0ea7('0x30')]!==_0x0ea7('0x40')){var _0x1c18cb={};_0x1c18cb[_0x295708[_0x0ea7('0x2b')]]={'$like':'%'+_0x27e9fd[_0x0ea7('0x34')][_0x0ea7('0x3f')]+'%'};return _0x1c18cb;}})});}_0x51f18a=_[_0x0ea7('0x41')]({},_0x51f18a,_0x27e9fd['options']);var _0x327e23={'where':_0x51f18a[_0x0ea7('0x3d')]};return db['AnalyticCustomReport'][_0x0ea7('0x1d')](_0x327e23)[_0x0ea7('0x25')](function(_0x588037){_0x20799a[_0x0ea7('0x1d')]=_0x588037;if(_0x27e9fd['query'][_0x0ea7('0x42')]){_0x51f18a[_0x0ea7('0x43')]=[{'all':!![]}];}return db['AnalyticCustomReport']['findAll'](_0x51f18a);})[_0x0ea7('0x25')](function(_0x5cc85b){_0x20799a[_0x0ea7('0x44')]=_0x5cc85b;return _0x20799a;})[_0x0ea7('0x25')](respondWithFilteredResult(_0x3d07c3,_0x51f18a))[_0x0ea7('0x45')](handleError(_0x3d07c3,null));};exports[_0x0ea7('0x46')]=function(_0x251f26,_0xd79aa7){var _0x2a004e={'raw':![],'where':{'id':_0x251f26[_0x0ea7('0x47')]['id']}},_0x462caf={};_0x462caf[_0x0ea7('0x32')]=_['keys'](db[_0x0ea7('0x2e')][_0x0ea7('0x48')]);_0x462caf[_0x0ea7('0x34')]=_[_0x0ea7('0x33')](_0x251f26[_0x0ea7('0x34')]);_0x462caf[_0x0ea7('0x35')]=_[_0x0ea7('0x37')](_0x462caf[_0x0ea7('0x32')],_0x462caf['query']);_0x2a004e[_0x0ea7('0x36')]=_['intersection'](_0x462caf[_0x0ea7('0x32')],qs[_0x0ea7('0x38')](_0x251f26[_0x0ea7('0x34')]['fields']));_0x2a004e[_0x0ea7('0x36')]=_0x2a004e['attributes'][_0x0ea7('0x49')]?_0x2a004e['attributes']:_0x462caf[_0x0ea7('0x32')];if(_0x251f26[_0x0ea7('0x34')]['includeAll']){_0x2a004e[_0x0ea7('0x43')]=[{'all':!![]}];}_0x2a004e=_[_0x0ea7('0x41')]({},_0x2a004e,_0x251f26[_0x0ea7('0x4a')]);return db['AnalyticCustomReport'][_0x0ea7('0x4b')](_0x2a004e)[_0x0ea7('0x25')](handleEntityNotFound(_0xd79aa7,null))[_0x0ea7('0x25')](respondWithResult(_0xd79aa7,null))[_0x0ea7('0x45')](handleError(_0xd79aa7,null));};exports[_0x0ea7('0x4c')]=function(_0x3c09b8,_0x576a54){return db['AnalyticCustomReport'][_0x0ea7('0x4c')](_0x3c09b8[_0x0ea7('0x4d')],{})[_0x0ea7('0x25')](function(_0x34d84e){var _0x59a78f=_0x3c09b8[_0x0ea7('0x4e')][_0x0ea7('0x27')]({'plain':!![]});if(!_0x59a78f)throw new Error(_0x0ea7('0x4f'));if(_0x59a78f[_0x0ea7('0x50')]===_0x0ea7('0x4e')){var _0x355202=_0x34d84e[_0x0ea7('0x27')]({'plain':!![]});var _0x1f76bd='Reports';return db[_0x0ea7('0x51')][_0x0ea7('0x4b')]({'where':{'name':_0x1f76bd,'userProfileId':_0x59a78f[_0x0ea7('0x52')]},'raw':!![]})[_0x0ea7('0x25')](function(_0x2c01d0){if(_0x2c01d0&&_0x2c01d0[_0x0ea7('0x53')]===0x0){return db[_0x0ea7('0x28')][_0x0ea7('0x4c')]({'name':_0x355202[_0x0ea7('0x2b')],'resourceId':_0x355202['id'],'type':'CustomReports','sectionId':_0x2c01d0['id']},{})[_0x0ea7('0x25')](function(){return _0x34d84e;});}else{return _0x34d84e;}})['catch'](function(_0x2c2b64){logger[_0x0ea7('0x29')](_0x0ea7('0x54'),_0x2c2b64);throw _0x2c2b64;});}return _0x34d84e;})[_0x0ea7('0x25')](respondWithResult(_0x576a54,0xc9))[_0x0ea7('0x45')](handleError(_0x576a54,null));};exports[_0x0ea7('0x24')]=function(_0x52a140,_0x14412a){if(_0x52a140[_0x0ea7('0x4d')]['id']){delete _0x52a140[_0x0ea7('0x4d')]['id'];}return db[_0x0ea7('0x2e')][_0x0ea7('0x4b')]({'where':{'id':_0x52a140['params']['id']}})[_0x0ea7('0x25')](handleEntityNotFound(_0x14412a,null))['then'](saveUpdates(_0x52a140[_0x0ea7('0x4d')],null))[_0x0ea7('0x25')](respondWithResult(_0x14412a,null))['catch'](handleError(_0x14412a,null));};exports[_0x0ea7('0x26')]=function(_0x1abb3e,_0x47c026){return db['AnalyticCustomReport'][_0x0ea7('0x4b')]({'where':{'id':_0x1abb3e[_0x0ea7('0x47')]['id']}})[_0x0ea7('0x25')](handleEntityNotFound(_0x47c026,null))[_0x0ea7('0x25')](removeEntity(_0x47c026,null))[_0x0ea7('0x45')](handleError(_0x47c026,null));};exports['preview']=function(_0x2b9591,_0x2e797a){var _0x2e4363=0xa;var _0xf9c719=[_0x0ea7('0x55'),'left_join','right_join',_0x0ea7('0x56')];var _0x2e674c={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x0ea7('0x57'),'MAX':_0x0ea7('0x58'),'MIN':_0x0ea7('0x59'),'AVG':_0x0ea7('0x5a'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x0ea7('0x5b'),'GROUP_CONCAT DESC':_0x0ea7('0x5c')};var _0x33eb3f={'SEC_TO_TIME':_0x0ea7('0x5d'),'DATE':_0x0ea7('0x5e'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x5958b5=function(_0x4f0ff8){return!_[_0x0ea7('0x5f')](['IS\x20NULL',_0x0ea7('0x60'),_0x0ea7('0x61'),_0x0ea7('0x62')],_0x4f0ff8);};var _0x2fa1b0=function(_0x5b143b){if(!_0x5b143b||!_0x5b143b[_0x0ea7('0x63')]['length']){return'';}for(var _0x20af83='(',_0x45a5b9=0x0;_0x45a5b9<_0x5b143b[_0x0ea7('0x63')]['length'];_0x45a5b9+=0x1){_0x45a5b9>0x0&&(_0x20af83+='\x20'+_0x5b143b[_0x0ea7('0x64')]+'\x20');_0x20af83+=_0x5b143b['rules'][_0x45a5b9][_0x0ea7('0x65')]?_0x2fa1b0(_0x5b143b[_0x0ea7('0x63')][_0x45a5b9][_0x0ea7('0x65')]):_0x5b143b['rules'][_0x45a5b9][_0x0ea7('0x66')]+'\x20'+_0x5b143b[_0x0ea7('0x63')][_0x45a5b9]['condition']+(_0x5958b5(_0x5b143b[_0x0ea7('0x63')][_0x45a5b9]['condition'])?'\x20'+_0x5b143b[_0x0ea7('0x63')][_0x45a5b9][_0x0ea7('0x67')]:'');}return _0x20af83+')';};var _0x810412={'where':{'id':_0x2b9591[_0x0ea7('0x47')]['id']}},_0x55bca1,_0x1645c1,_0x187e54,_0x55e23c,_0x4d96a2;_0x810412=_[_0x0ea7('0x41')]({},_0x810412,_0x2b9591[_0x0ea7('0x4a')]);return db[_0x0ea7('0x2e')][_0x0ea7('0x4b')](_0x810412)[_0x0ea7('0x25')](function(_0x2d4958){if(_0x2d4958){_0x55bca1=_0x2d4958;return _0x2d4958[_0x0ea7('0x68')]();}return null;})[_0x0ea7('0x25')](function(_0x1d8946){if(_0x1d8946){if(!_0x1d8946[_0x0ea7('0x49')]){throw new db[(_0x0ea7('0x69'))]['ValidationErrorItem'](_0x0ea7('0x6a'),0x193);}_0x1645c1=_0x1d8946;return db[_0x0ea7('0x6b')][_0x0ea7('0x6c')]({'raw':!![]});}return null;})['then'](function(_0x5d6774){if(_0x5d6774){_0x187e54=_[_0x0ea7('0x6d')](_0x5d6774,'id');var _0x5eec11;var _0x18875c=squel[_0x0ea7('0x6e')]();_0x18875c[_0x0ea7('0x6f')](_0x55bca1[_0x0ea7('0x70')]);for(var _0xbd8df4=0x0;_0xbd8df4<_0x1645c1[_0x0ea7('0x49')];_0xbd8df4+=0x1){_0x5eec11=_0x1645c1[_0xbd8df4][_0x0ea7('0x71')]?_0x187e54[_0x1645c1[_0xbd8df4][_0x0ea7('0x71')]][_0x0ea7('0x72')]:_0x1645c1[_0xbd8df4][_0x0ea7('0x66')];_0x5eec11=_0x1645c1[_0xbd8df4]['function']?_[_0x0ea7('0x73')](_0x2e674c[_0x1645c1[_0xbd8df4][_0x0ea7('0x74')]],'%s',_0x5eec11):_0x5eec11;_0x5eec11=_0x1645c1[_0xbd8df4][_0x0ea7('0x75')]?_['replace'](_0x33eb3f[_0x1645c1[_0xbd8df4][_0x0ea7('0x75')]],'%s',_0x5eec11):_0x5eec11;if(_0x1645c1[_0xbd8df4][_0x0ea7('0x76')]){_0x18875c['group'](_0x5eec11);}_0x1645c1[_0xbd8df4]['orderBy']&&_0x18875c[_0x0ea7('0x3b')](_0x5eec11,_0x1645c1[_0xbd8df4][_0x0ea7('0x77')]===_0x0ea7('0x78')?![]:!![]);_0x18875c[_0x0ea7('0x66')](_0x5eec11,_0x1645c1[_0xbd8df4][_0x0ea7('0x79')]||_0x5eec11);}if(_0x55bca1['joins']){_0x55bca1[_0x0ea7('0x7a')]=JSON[_0x0ea7('0x7b')](_0x55bca1['joins']);for(var _0x5874ec=0x0;_0x5874ec<_0x55bca1[_0x0ea7('0x7a')][_0x0ea7('0x49')];_0x5874ec+=0x1){if(_0x55bca1[_0x0ea7('0x7a')][_0x5874ec]['type']&&_['includes'](_0xf9c719,_0x55bca1[_0x0ea7('0x7a')][_0x5874ec][_0x0ea7('0x30')])&&_0x55bca1[_0x0ea7('0x7a')][_0x5874ec]['parentKey']&&_0x55bca1['joins'][_0x5874ec]['foreignTable']&&_0x55bca1[_0x0ea7('0x7a')][_0x5874ec]['foreignKey']){_0x18875c[_0x55bca1[_0x0ea7('0x7a')][_0x5874ec]['type']](_0x55bca1[_0x0ea7('0x7a')][_0x5874ec][_0x0ea7('0x7c')],null,util[_0x0ea7('0x75')](_0x0ea7('0x7d'),_0x55bca1[_0x0ea7('0x70')],_0x55bca1[_0x0ea7('0x7a')][_0x5874ec]['parentKey'],_0x55bca1[_0x0ea7('0x7a')][_0x5874ec][_0x0ea7('0x7c')],_0x55bca1[_0x0ea7('0x7a')][_0x5874ec]['foreignKey']));}}}if(_0x55bca1[_0x0ea7('0x7e')]){_0x55bca1[_0x0ea7('0x7e')]=JSON['parse'](_0x55bca1[_0x0ea7('0x7e')]);_0x18875c[_0x0ea7('0x3d')](_0x2fa1b0(_0x55bca1[_0x0ea7('0x7e')][_0x0ea7('0x65')]));}_0x4d96a2=_0x18875c[_0x0ea7('0x7f')]();_0x18875c[_0x0ea7('0x1f')](_0x2e4363);_0x18875c['offset'](0x0);logger[_0x0ea7('0x80')](_0x0ea7('0x81'),_0x18875c[_0x0ea7('0x82')]());return db[_0x0ea7('0x83')][_0x0ea7('0x34')](_0x18875c[_0x0ea7('0x82')](),{'type':db[_0x0ea7('0x83')][_0x0ea7('0x84')][_0x0ea7('0x85')]});}})['then'](respondWithResult(_0x2e797a,null))[_0x0ea7('0x45')](handleError(_0x2e797a,null));};function runReport(_0x50467f,_0x27b8fe,_0x2564a0){var _0x375dbb=_0x27b8fe[_0x0ea7('0x2b')];var _0xb6a59=0xa;var _0x23e0f1=[_0x0ea7('0x55'),_0x0ea7('0x86'),'right_join',_0x0ea7('0x56')];var _0x2db99a={'SUM':_0x0ea7('0x87'),'COUNT':_0x0ea7('0x88'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x0ea7('0x58'),'MIN':_0x0ea7('0x59'),'AVG':_0x0ea7('0x5a'),'GROUP_CONCAT':_0x0ea7('0x89'),'GROUP_CONCAT ASC':_0x0ea7('0x5b'),'GROUP_CONCAT DESC':_0x0ea7('0x5c')};var _0x1922c3={'SEC_TO_TIME':_0x0ea7('0x5d'),'DATE':_0x0ea7('0x5e'),'HOUR':_0x0ea7('0x8a'),'ROUND':_0x0ea7('0x8b'),'UNIX_TIMESTAMP':_0x0ea7('0x8c')};var _0x420507=function(_0x575a56){return!_[_0x0ea7('0x5f')](['IS\x20NULL',_0x0ea7('0x60'),_0x0ea7('0x61'),'IS\x20NOT\x20EMPTY'],_0x575a56);};var _0x54109a=function(_0x539af7){if(!_0x539af7||!_0x539af7[_0x0ea7('0x63')]['length']){return'';}for(var _0x408010='(',_0x42fc43=0x0;_0x42fc43<_0x539af7[_0x0ea7('0x63')][_0x0ea7('0x49')];_0x42fc43+=0x1){_0x42fc43>0x0&&(_0x408010+='\x20'+_0x539af7[_0x0ea7('0x64')]+'\x20');_0x408010+=_0x539af7[_0x0ea7('0x63')][_0x42fc43]['group']?_0x54109a(_0x539af7[_0x0ea7('0x63')][_0x42fc43]['group']):_0x539af7[_0x0ea7('0x63')][_0x42fc43][_0x0ea7('0x66')]+'\x20'+_0x539af7[_0x0ea7('0x63')][_0x42fc43][_0x0ea7('0x8d')]+(_0x420507(_0x539af7[_0x0ea7('0x63')][_0x42fc43][_0x0ea7('0x8d')])?'\x20'+_0x539af7['rules'][_0x42fc43][_0x0ea7('0x67')]:'');}return _0x408010+')';};var _0x12a4c0={'where':{'id':_0x50467f['id']}},_0x183b65,_0x3c2bee,_0x25b57c,_0x31aaa3,_0x371d2c;_0x12a4c0=_['merge']({},_0x12a4c0,_0x2564a0);return db['AnalyticCustomReport']['find'](_0x12a4c0)[_0x0ea7('0x25')](function(_0x1d450b){if(_0x1d450b){_0x183b65=_0x1d450b;return _0x1d450b[_0x0ea7('0x68')]();}return null;})[_0x0ea7('0x25')](function(_0x4d3eb7){if(_0x4d3eb7){if(!_0x4d3eb7[_0x0ea7('0x49')]){throw new db[(_0x0ea7('0x69'))][(_0x0ea7('0x8e'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x3c2bee=_0x4d3eb7;return db[_0x0ea7('0x6b')][_0x0ea7('0x6c')]({'raw':!![]});}return null;})['then'](function(_0x89e9ab){if(_0x89e9ab){_0x25b57c=_[_0x0ea7('0x6d')](_0x89e9ab,'id');var _0x5728a6;var _0x150981=squel['select']();_0x150981[_0x0ea7('0x6f')](_0x183b65[_0x0ea7('0x70')]);for(var _0x44365e=0x0;_0x44365e<_0x3c2bee[_0x0ea7('0x49')];_0x44365e+=0x1){_0x5728a6=_0x3c2bee[_0x44365e]['MetricId']?_0x25b57c[_0x3c2bee[_0x44365e][_0x0ea7('0x71')]][_0x0ea7('0x72')]:_0x3c2bee[_0x44365e][_0x0ea7('0x66')];_0x5728a6=_0x3c2bee[_0x44365e][_0x0ea7('0x74')]?_['replace'](_0x2db99a[_0x3c2bee[_0x44365e][_0x0ea7('0x74')]],'%s',_0x5728a6):_0x5728a6;_0x5728a6=_0x3c2bee[_0x44365e]['format']?_['replace'](_0x1922c3[_0x3c2bee[_0x44365e][_0x0ea7('0x75')]],'%s',_0x5728a6):_0x5728a6;if(_0x3c2bee[_0x44365e][_0x0ea7('0x76')]){_0x150981[_0x0ea7('0x65')](_0x5728a6);}_0x3c2bee[_0x44365e]['orderBy']&&_0x150981[_0x0ea7('0x3b')](_0x5728a6,_0x3c2bee[_0x44365e][_0x0ea7('0x77')]===_0x0ea7('0x78')?![]:!![]);_0x150981[_0x0ea7('0x66')](_0x5728a6,_0x3c2bee[_0x44365e][_0x0ea7('0x79')]||_0x5728a6);}if(_0x183b65[_0x0ea7('0x7a')]){_0x183b65[_0x0ea7('0x7a')]=JSON[_0x0ea7('0x7b')](_0x183b65[_0x0ea7('0x7a')]);for(var _0x40ca38=0x0;_0x40ca38<_0x183b65['joins']['length'];_0x40ca38+=0x1){if(_0x183b65['joins'][_0x40ca38][_0x0ea7('0x30')]&&_[_0x0ea7('0x5f')](_0x23e0f1,_0x183b65[_0x0ea7('0x7a')][_0x40ca38][_0x0ea7('0x30')])&&_0x183b65[_0x0ea7('0x7a')][_0x40ca38]['parentKey']&&_0x183b65[_0x0ea7('0x7a')][_0x40ca38][_0x0ea7('0x7c')]&&_0x183b65[_0x0ea7('0x7a')][_0x40ca38][_0x0ea7('0x8f')]){_0x150981[_0x183b65[_0x0ea7('0x7a')][_0x40ca38]['type']](_0x183b65[_0x0ea7('0x7a')][_0x40ca38][_0x0ea7('0x7c')],null,util[_0x0ea7('0x75')](_0x0ea7('0x7d'),_0x183b65['table'],_0x183b65[_0x0ea7('0x7a')][_0x40ca38][_0x0ea7('0x90')],_0x183b65['joins'][_0x40ca38]['foreignTable'],_0x183b65[_0x0ea7('0x7a')][_0x40ca38]['foreignKey']));}}}if(_0x183b65['conditions']){_0x183b65[_0x0ea7('0x7e')]=JSON[_0x0ea7('0x7b')](_0x183b65[_0x0ea7('0x7e')]);_0x150981[_0x0ea7('0x3d')](_0x54109a(_0x183b65[_0x0ea7('0x7e')][_0x0ea7('0x65')]));}_0x371d2c=_0x150981[_0x0ea7('0x7f')]();_0x150981[_0x0ea7('0x1f')](_0xb6a59);_0x150981[_0x0ea7('0x1e')](0x0);logger[_0x0ea7('0x80')](_0x0ea7('0x81'),_0x150981[_0x0ea7('0x82')]());return db[_0x0ea7('0x83')][_0x0ea7('0x34')](_0x150981['toString'](),{'type':db[_0x0ea7('0x83')][_0x0ea7('0x84')][_0x0ea7('0x85')]});}})['then'](function(_0x526e31){if(!_0x526e31[_0x0ea7('0x49')]){throw new db[(_0x0ea7('0x69'))][(_0x0ea7('0x8e'))](_0x0ea7('0x91'),0xcc);}if(_0x27b8fe[_0x0ea7('0x92')]===_0x0ea7('0x93')){return null;}var _0x4bea45=_[_0x0ea7('0x41')](_0x27b8fe,{'name':_0x27b8fe[_0x0ea7('0x94')]||_0x27b8fe['name']||_0x183b65[_0x0ea7('0x2b')],'basename':_0x375dbb,'savename':util[_0x0ea7('0x75')](_0x0ea7('0x95'),_0x27b8fe[_0x0ea7('0x2b')]||_0x183b65[_0x0ea7('0x2b')],require(_0x0ea7('0x96'))[_0x0ea7('0x97')](0x4),_0x27b8fe['output']||'csv'),'reportId':_0x183b65['id'],'reportType':_0x0ea7('0x98')});return db[_0x0ea7('0x99')][_0x0ea7('0x4c')](_0x4bea45,{'raw':!![]});})['then'](function(_0x164e3b){if(_0x183b65[_0x0ea7('0x70')]===_0x0ea7('0x9a')){_0x371d2c[_0x0ea7('0x3d')](_0x183b65[_0x0ea7('0x70')]+_0x0ea7('0x9b'),_0x27b8fe[_0x0ea7('0x9c')],_0x27b8fe[_0x0ea7('0x9d')]);}else{_0x371d2c[_0x0ea7('0x3d')](_0x183b65['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x27b8fe['startDate'],_0x27b8fe['endDate']);}if(_0x164e3b){logger[_0x0ea7('0x9e')](_0x0ea7('0x9f'),_0x371d2c['toString']());require('child_process')[_0x0ea7('0xa0')](path['join'](__dirname,_0x0ea7('0xa1'),_0x164e3b[_0x0ea7('0x92')]),[_0x164e3b['id'],_0x371d2c['toString'](),path[_0x0ea7('0x55')](__dirname,_0x0ea7('0xa2'),_0x164e3b[_0x0ea7('0xa3')]),_0x375dbb]);return _0x164e3b;}else{var _0x14a253=squel[_0x0ea7('0x6e')]();_0x14a253['from']('('+_0x371d2c['toString']()+')',_0x0ea7('0xa4'));_0x14a253[_0x0ea7('0x66')](_0x0ea7('0xa5'),_0x0ea7('0x1d'));_0x371d2c[_0x0ea7('0x1f')](_0x27b8fe[_0x0ea7('0x1f')]||_0xb6a59);_0x371d2c[_0x0ea7('0x1e')](_0x27b8fe[_0x0ea7('0x1e')]||0x0);return dbH[_0x0ea7('0x83')][_0x0ea7('0x34')](_0x14a253[_0x0ea7('0x82')](),{'type':dbH[_0x0ea7('0x83')][_0x0ea7('0x84')][_0x0ea7('0x85')]})[_0x0ea7('0x25')](function(_0x454b35){if(!_0x454b35[_0x0ea7('0x49')]){_0x31aaa3=0x0;}else{_0x31aaa3=_0x454b35[0x0][_0x0ea7('0x1d')]||0x0;}return dbH[_0x0ea7('0x83')][_0x0ea7('0x34')](_0x371d2c['toString'](),{'type':dbH[_0x0ea7('0x83')][_0x0ea7('0x84')][_0x0ea7('0x85')]});})[_0x0ea7('0x25')](function(_0x10d825){return{'rows':_0x10d825||[],'count':_0x31aaa3};});}});}exports[_0x0ea7('0xa6')]=function(_0x37d2cb,_0x57362d){return runReport(_0x37d2cb['params'],_0x37d2cb['query'],_0x37d2cb[_0x0ea7('0x4a')])[_0x0ea7('0x25')](respondWithResult(_0x57362d,null))[_0x0ea7('0x45')](handleError(_0x57362d,null));};exports[_0x0ea7('0xa7')]=runReport;exports[_0x0ea7('0x34')]=function(_0x12f273,_0x471698){var _0xbcacbd=0xa;var _0x11563f=['join',_0x0ea7('0x86'),_0x0ea7('0xa8'),_0x0ea7('0x56')];var _0x93d21b={'SUM':_0x0ea7('0x87'),'COUNT':_0x0ea7('0x88'),'COUNT DISTINCT':_0x0ea7('0x57'),'MAX':_0x0ea7('0x58'),'MIN':_0x0ea7('0x59'),'AVG':_0x0ea7('0x5a'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x0ea7('0x5b'),'GROUP_CONCAT DESC':_0x0ea7('0x5c')};var _0x191ff2={'SEC_TO_TIME':_0x0ea7('0x5d'),'DATE':_0x0ea7('0x5e'),'HOUR':_0x0ea7('0x8a'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x0ea7('0x8c')};var _0x58501e=function(_0x3ef8e8){return!_[_0x0ea7('0x5f')]([_0x0ea7('0xa9'),_0x0ea7('0x60'),_0x0ea7('0x61'),_0x0ea7('0x62')],_0x3ef8e8);};var _0x1fb040=function(_0x2c5f8d){if(!_0x2c5f8d||!_0x2c5f8d[_0x0ea7('0x63')][_0x0ea7('0x49')]){return'';}for(var _0x51e137='(',_0xc97704=0x0;_0xc97704<_0x2c5f8d[_0x0ea7('0x63')]['length'];_0xc97704+=0x1){_0xc97704>0x0&&(_0x51e137+='\x20'+_0x2c5f8d[_0x0ea7('0x64')]+'\x20');_0x51e137+=_0x2c5f8d[_0x0ea7('0x63')][_0xc97704][_0x0ea7('0x65')]?_0x1fb040(_0x2c5f8d[_0x0ea7('0x63')][_0xc97704]['group']):_0x2c5f8d[_0x0ea7('0x63')][_0xc97704][_0x0ea7('0x66')]+'\x20'+_0x2c5f8d[_0x0ea7('0x63')][_0xc97704][_0x0ea7('0x8d')]+(_0x58501e(_0x2c5f8d[_0x0ea7('0x63')][_0xc97704][_0x0ea7('0x8d')])?'\x20'+_0x2c5f8d['rules'][_0xc97704][_0x0ea7('0x67')]:'');}return _0x51e137+')';};var _0x7c6aed={'where':{'id':_0x12f273['params']['id']}},_0x2d7835,_0x2092a1,_0x26e31e,_0x53923c,_0x44bb65;_0x7c6aed=_[_0x0ea7('0x41')]({},_0x7c6aed,_0x12f273[_0x0ea7('0x4a')]);return db['AnalyticCustomReport'][_0x0ea7('0x4b')](_0x7c6aed)[_0x0ea7('0x25')](function(_0x587617){if(_0x587617){_0x2d7835=_0x587617;return _0x587617[_0x0ea7('0x68')]();}return null;})['then'](function(_0x3df639){if(_0x3df639){if(!_0x3df639[_0x0ea7('0x49')]){throw new db['Sequelize'][(_0x0ea7('0x8e'))](_0x0ea7('0x6a'),0x193);}_0x2092a1=_0x3df639;return db[_0x0ea7('0x6b')]['findAll']({'raw':!![]});}return null;})[_0x0ea7('0x25')](function(_0x72f085){if(_0x72f085){_0x26e31e=_[_0x0ea7('0x6d')](_0x72f085,'id');var _0x4a1a44;var _0x4f3f71=squel[_0x0ea7('0x6e')]();_0x4f3f71[_0x0ea7('0x6f')](_0x2d7835[_0x0ea7('0x70')]);for(var _0x3620bf=0x0;_0x3620bf<_0x2092a1[_0x0ea7('0x49')];_0x3620bf+=0x1){_0x4a1a44=_0x2092a1[_0x3620bf]['MetricId']?_0x26e31e[_0x2092a1[_0x3620bf][_0x0ea7('0x71')]]['metric']:_0x2092a1[_0x3620bf][_0x0ea7('0x66')];_0x4a1a44=_0x2092a1[_0x3620bf]['function']?_[_0x0ea7('0x73')](_0x93d21b[_0x2092a1[_0x3620bf][_0x0ea7('0x74')]],'%s',_0x4a1a44):_0x4a1a44;_0x4a1a44=_0x2092a1[_0x3620bf][_0x0ea7('0x75')]?_[_0x0ea7('0x73')](_0x191ff2[_0x2092a1[_0x3620bf][_0x0ea7('0x75')]],'%s',_0x4a1a44):_0x4a1a44;if(_0x2092a1[_0x3620bf][_0x0ea7('0x76')]){_0x4f3f71[_0x0ea7('0x65')](_0x4a1a44);}_0x2092a1[_0x3620bf][_0x0ea7('0x77')]&&_0x4f3f71[_0x0ea7('0x3b')](_0x4a1a44,_0x2092a1[_0x3620bf][_0x0ea7('0x77')]==='DESC'?![]:!![]);_0x4f3f71[_0x0ea7('0x66')](_0x4a1a44,_0x2092a1[_0x3620bf][_0x0ea7('0x79')]||_0x4a1a44);}if(_0x2d7835[_0x0ea7('0x7a')]){_0x2d7835[_0x0ea7('0x7a')]=JSON[_0x0ea7('0x7b')](_0x2d7835['joins']);for(var _0x59363b=0x0;_0x59363b<_0x2d7835[_0x0ea7('0x7a')][_0x0ea7('0x49')];_0x59363b+=0x1){if(_0x2d7835[_0x0ea7('0x7a')][_0x59363b][_0x0ea7('0x30')]&&_[_0x0ea7('0x5f')](_0x11563f,_0x2d7835[_0x0ea7('0x7a')][_0x59363b]['type'])&&_0x2d7835[_0x0ea7('0x7a')][_0x59363b]['parentKey']&&_0x2d7835['joins'][_0x59363b][_0x0ea7('0x7c')]&&_0x2d7835[_0x0ea7('0x7a')][_0x59363b][_0x0ea7('0x8f')]){_0x4f3f71[_0x2d7835['joins'][_0x59363b][_0x0ea7('0x30')]](_0x2d7835[_0x0ea7('0x7a')][_0x59363b][_0x0ea7('0x7c')],null,util[_0x0ea7('0x75')](_0x0ea7('0x7d'),_0x2d7835[_0x0ea7('0x70')],_0x2d7835[_0x0ea7('0x7a')][_0x59363b][_0x0ea7('0x90')],_0x2d7835[_0x0ea7('0x7a')][_0x59363b][_0x0ea7('0x7c')],_0x2d7835[_0x0ea7('0x7a')][_0x59363b]['foreignKey']));}}}if(_0x2d7835[_0x0ea7('0x7e')]){_0x2d7835[_0x0ea7('0x7e')]=JSON['parse'](_0x2d7835[_0x0ea7('0x7e')]);_0x4f3f71['where'](_0x1fb040(_0x2d7835[_0x0ea7('0x7e')][_0x0ea7('0x65')]));}_0x44bb65=_0x4f3f71[_0x0ea7('0x7f')]();_0x4f3f71[_0x0ea7('0x1f')](_0xbcacbd);_0x4f3f71['offset'](0x0);logger[_0x0ea7('0x80')](_0x0ea7('0x81'),_0x4f3f71['toString']());return db[_0x0ea7('0x83')]['query'](_0x4f3f71[_0x0ea7('0x82')](),{'type':db[_0x0ea7('0x83')][_0x0ea7('0x84')][_0x0ea7('0x85')]});}})[_0x0ea7('0x25')](function(){return{'sql':_0x44bb65[_0x0ea7('0x82')]()};})[_0x0ea7('0x25')](respondWithResult(_0x471698,null))[_0x0ea7('0x45')](handleError(_0x471698,null));};