Built motion from commit 3c2ce842.|2.6.31
[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 _0x179a=['status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','name','index','map','AnalyticCustomReport','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','filter','merge','options','includeAll','findAll','rows','catch','show','params','rawAttributes','include','find','create','body','role','UserProfileSection','userProfileId','CustomReports','preview','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','select','from','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','table','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','join','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','AnalyticMetric','order','output','web','fullPath','%s-%s.%s','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','SELECT','run','runReport','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','dbH','sendStatus'];(function(_0x5eb962,_0x34c57f){var _0xa9322e=function(_0x51c118){while(--_0x51c118){_0x5eb962['push'](_0x5eb962['shift']());}};_0xa9322e(++_0x34c57f);}(_0x179a,0x8c));var _0xa179=function(_0x2dbcef,_0x1cfecb){_0x2dbcef=_0x2dbcef-0x0;var _0x5a90ea=_0x179a[_0x2dbcef];return _0x5a90ea;};'use strict';var emlformat=require(_0xa179('0x0'));var rimraf=require(_0xa179('0x1'));var zipdir=require(_0xa179('0x2'));var jsonpatch=require(_0xa179('0x3'));var rp=require(_0xa179('0x4'));var moment=require('moment');var BPromise=require(_0xa179('0x5'));var Mustache=require(_0xa179('0x6'));var util=require(_0xa179('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xa179('0x8'));var fs=require('fs');var fs_extra=require(_0xa179('0x9'));var _=require(_0xa179('0xa'));var squel=require('squel');var crypto=require(_0xa179('0xb'));var jsforce=require(_0xa179('0xc'));var deskjs=require(_0xa179('0xd'));var toCsv=require(_0xa179('0xe'));var querystring=require(_0xa179('0xf'));var Papa=require(_0xa179('0x10'));var Redis=require(_0xa179('0x11'));var authService=require(_0xa179('0x12'));var qs=require(_0xa179('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xa179('0x14'))(_0xa179('0x15'));var utils=require('../../config/utils');var config=require(_0xa179('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xa179('0x17')];function respondWithStatusCode(_0x4e5645,_0x4fa868){_0x4fa868=_0x4fa868||0xcc;return function(_0x4477ce){if(_0x4477ce){return _0x4e5645[_0xa179('0x18')](_0x4fa868);}return _0x4e5645[_0xa179('0x19')](_0x4fa868)[_0xa179('0x1a')]();};}function respondWithResult(_0x37b12a,_0x4afbaa){_0x4afbaa=_0x4afbaa||0xc8;return function(_0x169254){if(_0x169254){return _0x37b12a[_0xa179('0x19')](_0x4afbaa)[_0xa179('0x1b')](_0x169254);}};}function respondWithFilteredResult(_0x1b4679,_0x4d50a6){return function(_0x2aebe6){if(_0x2aebe6){var _0x54699d=typeof _0x4d50a6[_0xa179('0x1c')]==='undefined'&&typeof _0x4d50a6[_0xa179('0x1d')]===_0xa179('0x1e');var _0x149fef=_0x2aebe6['count'];var _0x4e4c9c=_0x54699d?0x0:_0x4d50a6[_0xa179('0x1c')];var _0x4d282b=_0x54699d?_0x2aebe6[_0xa179('0x1f')]:_0x4d50a6[_0xa179('0x1c')]+_0x4d50a6[_0xa179('0x1d')];var _0xa3bdb7;if(_0x4d282b>=_0x149fef){_0x4d282b=_0x149fef;_0xa3bdb7=0xc8;}else{_0xa3bdb7=0xce;}_0x1b4679[_0xa179('0x19')](_0xa3bdb7);return _0x1b4679['set'](_0xa179('0x20'),_0x4e4c9c+'-'+_0x4d282b+'/'+_0x149fef)[_0xa179('0x1b')](_0x2aebe6);}return null;};}function patchUpdates(_0x2a0826){return function(_0x16f917){try{jsonpatch[_0xa179('0x21')](_0x16f917,_0x2a0826,!![]);}catch(_0x8219a5){return BPromise[_0xa179('0x22')](_0x8219a5);}return _0x16f917[_0xa179('0x23')]();};}function saveUpdates(_0x1e7a72,_0x3ab662){return function(_0x523420){if(_0x523420){return _0x523420[_0xa179('0x24')](_0x1e7a72)[_0xa179('0x25')](function(_0x4b1c0e){return _0x4b1c0e;});}return null;};}function removeEntity(_0x133dc4,_0x3e328a){return function(_0x1d1688){if(_0x1d1688){return _0x1d1688[_0xa179('0x26')]()[_0xa179('0x25')](function(){var _0x32c9b0=_0x1d1688[_0xa179('0x27')]({'plain':!![]});var _0x49c70d='CustomReports';return db[_0xa179('0x28')][_0xa179('0x26')]({'where':{'type':_0x49c70d,'resourceId':_0x32c9b0['id']}})[_0xa179('0x25')](function(){return _0x1d1688;});})[_0xa179('0x25')](function(){_0x133dc4[_0xa179('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x26eea9,_0x4e0b7e){return function(_0x58db9b){if(!_0x58db9b){_0x26eea9[_0xa179('0x18')](0x194);}return _0x58db9b;};}function handleError(_0x1e558b,_0x54e008){_0x54e008=_0x54e008||0x1f4;return function(_0x58dd6b){logger[_0xa179('0x29')](_0x58dd6b['stack']);if(_0x58dd6b[_0xa179('0x2a')]){delete _0x58dd6b['name'];}_0x1e558b[_0xa179('0x19')](_0x54e008)['send'](_0x58dd6b);};}exports[_0xa179('0x2b')]=function(_0x5b2203,_0x3cdaf2){var _0x3606cf={},_0x3ed3f2={},_0x3653e6={'count':0x0,'rows':[]};var _0x306519=_[_0xa179('0x2c')](db[_0xa179('0x2d')]['rawAttributes'],function(_0x3c34df){return{'name':_0x3c34df[_0xa179('0x2e')],'type':_0x3c34df[_0xa179('0x2f')][_0xa179('0x30')]};});_0x3ed3f2[_0xa179('0x31')]=_['map'](_0x306519,_0xa179('0x2a'));_0x3ed3f2[_0xa179('0x32')]=_[_0xa179('0x33')](_0x5b2203[_0xa179('0x32')]);_0x3ed3f2[_0xa179('0x34')]=_[_0xa179('0x35')](_0x3ed3f2[_0xa179('0x31')],_0x3ed3f2[_0xa179('0x32')]);_0x3606cf[_0xa179('0x36')]=_[_0xa179('0x35')](_0x3ed3f2[_0xa179('0x31')],qs[_0xa179('0x37')](_0x5b2203[_0xa179('0x32')][_0xa179('0x37')]));_0x3606cf[_0xa179('0x36')]=_0x3606cf[_0xa179('0x36')][_0xa179('0x38')]?_0x3606cf['attributes']:_0x3ed3f2[_0xa179('0x31')];if(!_0x5b2203[_0xa179('0x32')]['hasOwnProperty'](_0xa179('0x39'))){_0x3606cf[_0xa179('0x1d')]=qs['limit'](_0x5b2203['query']['limit']);_0x3606cf[_0xa179('0x1c')]=qs[_0xa179('0x1c')](_0x5b2203['query'][_0xa179('0x1c')]);}_0x3606cf['order']=qs[_0xa179('0x3a')](_0x5b2203['query'][_0xa179('0x3a')]);_0x3606cf[_0xa179('0x3b')]=qs[_0xa179('0x34')](_['pick'](_0x5b2203[_0xa179('0x32')],_0x3ed3f2['filters']),_0x306519);if(_0x5b2203[_0xa179('0x32')][_0xa179('0x3c')]){_0x3606cf[_0xa179('0x3b')]=_['merge'](_0x3606cf[_0xa179('0x3b')],{'$or':_['map'](_0x306519,function(_0x18ee7b){if(_0x18ee7b[_0xa179('0x2f')]!=='VIRTUAL'){var _0x2e8869={};_0x2e8869[_0x18ee7b[_0xa179('0x2a')]]={'$like':'%'+_0x5b2203['query'][_0xa179('0x3c')]+'%'};return _0x2e8869;}})});}_0x3606cf=_[_0xa179('0x3d')]({},_0x3606cf,_0x5b2203[_0xa179('0x3e')]);var _0x33370a={'where':_0x3606cf[_0xa179('0x3b')]};return db[_0xa179('0x2d')][_0xa179('0x1f')](_0x33370a)['then'](function(_0x50ef2d){_0x3653e6['count']=_0x50ef2d;if(_0x5b2203[_0xa179('0x32')][_0xa179('0x3f')]){_0x3606cf['include']=[{'all':!![]}];}return db[_0xa179('0x2d')][_0xa179('0x40')](_0x3606cf);})['then'](function(_0xd13f06){_0x3653e6[_0xa179('0x41')]=_0xd13f06;return _0x3653e6;})[_0xa179('0x25')](respondWithFilteredResult(_0x3cdaf2,_0x3606cf))[_0xa179('0x42')](handleError(_0x3cdaf2,null));};exports[_0xa179('0x43')]=function(_0x1656d5,_0x43d5b7){var _0x3bd4d6={'raw':![],'where':{'id':_0x1656d5[_0xa179('0x44')]['id']}},_0x13eca1={};_0x13eca1[_0xa179('0x31')]=_[_0xa179('0x33')](db[_0xa179('0x2d')][_0xa179('0x45')]);_0x13eca1[_0xa179('0x32')]=_[_0xa179('0x33')](_0x1656d5[_0xa179('0x32')]);_0x13eca1[_0xa179('0x34')]=_[_0xa179('0x35')](_0x13eca1['model'],_0x13eca1[_0xa179('0x32')]);_0x3bd4d6[_0xa179('0x36')]=_[_0xa179('0x35')](_0x13eca1[_0xa179('0x31')],qs[_0xa179('0x37')](_0x1656d5[_0xa179('0x32')]['fields']));_0x3bd4d6[_0xa179('0x36')]=_0x3bd4d6[_0xa179('0x36')][_0xa179('0x38')]?_0x3bd4d6[_0xa179('0x36')]:_0x13eca1[_0xa179('0x31')];if(_0x1656d5[_0xa179('0x32')][_0xa179('0x3f')]){_0x3bd4d6[_0xa179('0x46')]=[{'all':!![]}];}_0x3bd4d6=_['merge']({},_0x3bd4d6,_0x1656d5[_0xa179('0x3e')]);return db[_0xa179('0x2d')][_0xa179('0x47')](_0x3bd4d6)['then'](handleEntityNotFound(_0x43d5b7,null))[_0xa179('0x25')](respondWithResult(_0x43d5b7,null))[_0xa179('0x42')](handleError(_0x43d5b7,null));};exports[_0xa179('0x48')]=function(_0xdc46ce,_0x3bdf05){return db[_0xa179('0x2d')]['create'](_0xdc46ce[_0xa179('0x49')],{})['then'](function(_0x584af2){var _0x507fde=_0xdc46ce['user'][_0xa179('0x27')]({'plain':!![]});if(!_0x507fde)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x507fde[_0xa179('0x4a')]==='user'){var _0x1f3304=_0x584af2[_0xa179('0x27')]({'plain':!![]});var _0x4a6b05='Reports';return db[_0xa179('0x4b')][_0xa179('0x47')]({'where':{'name':_0x4a6b05,'userProfileId':_0x507fde[_0xa179('0x4c')]},'raw':!![]})['then'](function(_0x231820){if(_0x231820&&_0x231820['autoAssociation']===0x0){return db[_0xa179('0x28')][_0xa179('0x48')]({'name':_0x1f3304[_0xa179('0x2a')],'resourceId':_0x1f3304['id'],'type':_0xa179('0x4d'),'sectionId':_0x231820['id']},{})[_0xa179('0x25')](function(){return _0x584af2;});}else{return _0x584af2;}})[_0xa179('0x42')](function(_0x5a630f){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5a630f);throw _0x5a630f;});}return _0x584af2;})['then'](respondWithResult(_0x3bdf05,0xc9))[_0xa179('0x42')](handleError(_0x3bdf05,null));};exports[_0xa179('0x24')]=function(_0x45a3fc,_0x4cf91c){if(_0x45a3fc['body']['id']){delete _0x45a3fc['body']['id'];}return db[_0xa179('0x2d')][_0xa179('0x47')]({'where':{'id':_0x45a3fc[_0xa179('0x44')]['id']}})['then'](handleEntityNotFound(_0x4cf91c,null))[_0xa179('0x25')](saveUpdates(_0x45a3fc[_0xa179('0x49')],null))[_0xa179('0x25')](respondWithResult(_0x4cf91c,null))['catch'](handleError(_0x4cf91c,null));};exports[_0xa179('0x26')]=function(_0x166712,_0x2f9e8b){return db['AnalyticCustomReport'][_0xa179('0x47')]({'where':{'id':_0x166712['params']['id']}})['then'](handleEntityNotFound(_0x2f9e8b,null))['then'](removeEntity(_0x2f9e8b,null))[_0xa179('0x42')](handleError(_0x2f9e8b,null));};exports[_0xa179('0x4e')]=function(_0x4b15fb,_0x2b657f){var _0x484614=0xa;var _0x8db9ed=['join',_0xa179('0x4f'),_0xa179('0x50'),_0xa179('0x51')];var _0x531693={'SUM':_0xa179('0x52'),'COUNT':_0xa179('0x53'),'COUNT DISTINCT':_0xa179('0x54'),'MAX':_0xa179('0x55'),'MIN':_0xa179('0x56'),'AVG':_0xa179('0x57'),'GROUP_CONCAT':_0xa179('0x58'),'GROUP_CONCAT ASC':_0xa179('0x59'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x508ee={'SEC_TO_TIME':_0xa179('0x5a'),'DATE':_0xa179('0x5b'),'HOUR':_0xa179('0x5c'),'ROUND':_0xa179('0x5d'),'UNIX_TIMESTAMP':_0xa179('0x5e')};var _0x19d096=function(_0x497fe6){return!_[_0xa179('0x5f')]([_0xa179('0x60'),'IS\x20NOT\x20NULL',_0xa179('0x61'),'IS\x20NOT\x20EMPTY'],_0x497fe6);};var _0x122360=function(_0x573534){if(!_0x573534||!_0x573534[_0xa179('0x62')][_0xa179('0x38')]){return'';}for(var _0x57ae94='(',_0x392bba=0x0;_0x392bba<_0x573534[_0xa179('0x62')][_0xa179('0x38')];_0x392bba+=0x1){_0x392bba>0x0&&(_0x57ae94+='\x20'+_0x573534[_0xa179('0x63')]+'\x20');_0x57ae94+=_0x573534[_0xa179('0x62')][_0x392bba][_0xa179('0x64')]?_0x122360(_0x573534[_0xa179('0x62')][_0x392bba][_0xa179('0x64')]):_0x573534[_0xa179('0x62')][_0x392bba][_0xa179('0x65')]+'\x20'+_0x573534[_0xa179('0x62')][_0x392bba][_0xa179('0x66')]+(_0x19d096(_0x573534[_0xa179('0x62')][_0x392bba][_0xa179('0x66')])?'\x20'+_0x573534[_0xa179('0x62')][_0x392bba][_0xa179('0x67')]:'');}return _0x57ae94+')';};var _0x513b05={'where':{'id':_0x4b15fb[_0xa179('0x44')]['id']}},_0xa657e,_0x49508e,_0x2c7309,_0x2dee57,_0x460c67;_0x513b05=_[_0xa179('0x3d')]({},_0x513b05,_0x4b15fb[_0xa179('0x3e')]);return db['AnalyticCustomReport'][_0xa179('0x47')](_0x513b05)[_0xa179('0x25')](function(_0x315c59){if(_0x315c59){_0xa657e=_0x315c59;return _0x315c59[_0xa179('0x68')]();}return null;})['then'](function(_0x3395ac){if(_0x3395ac){if(!_0x3395ac['length']){throw new db[(_0xa179('0x69'))][(_0xa179('0x6a'))](_0xa179('0x6b'),0x193);}_0x49508e=_0x3395ac;return db['AnalyticMetric'][_0xa179('0x40')]({'raw':!![]});}return null;})[_0xa179('0x25')](function(_0x3f7386){if(_0x3f7386){_0x2c7309=_[_0xa179('0x6c')](_0x3f7386,'id');var _0xf3af6;var _0x19e1df=squel[_0xa179('0x6d')]();_0x19e1df[_0xa179('0x6e')](_0xa657e['table']);for(var _0x49d476=0x0;_0x49d476<_0x49508e[_0xa179('0x38')];_0x49d476+=0x1){_0xf3af6=_0x49508e[_0x49d476][_0xa179('0x6f')]?_0x2c7309[_0x49508e[_0x49d476][_0xa179('0x6f')]][_0xa179('0x70')]:_0x49508e[_0x49d476][_0xa179('0x65')];_0xf3af6=_0x49508e[_0x49d476][_0xa179('0x71')]?_[_0xa179('0x72')](_0x531693[_0x49508e[_0x49d476][_0xa179('0x71')]],'%s',_0xf3af6):_0xf3af6;_0xf3af6=_0x49508e[_0x49d476][_0xa179('0x73')]?_['replace'](_0x508ee[_0x49508e[_0x49d476][_0xa179('0x73')]],'%s',_0xf3af6):_0xf3af6;if(_0x49508e[_0x49d476][_0xa179('0x74')]){_0x19e1df[_0xa179('0x64')](_0xf3af6);}_0x49508e[_0x49d476][_0xa179('0x75')]&&_0x19e1df['order'](_0xf3af6,_0x49508e[_0x49d476][_0xa179('0x75')]===_0xa179('0x76')?![]:!![]);_0x19e1df[_0xa179('0x65')](_0xf3af6,_0x49508e[_0x49d476][_0xa179('0x77')]||_0xf3af6);}if(_0xa657e[_0xa179('0x78')]){_0xa657e[_0xa179('0x78')]=JSON[_0xa179('0x79')](_0xa657e[_0xa179('0x78')]);for(var _0x2bc0d5=0x0;_0x2bc0d5<_0xa657e[_0xa179('0x78')][_0xa179('0x38')];_0x2bc0d5+=0x1){if(_0xa657e[_0xa179('0x78')][_0x2bc0d5][_0xa179('0x2f')]&&_[_0xa179('0x5f')](_0x8db9ed,_0xa657e[_0xa179('0x78')][_0x2bc0d5][_0xa179('0x2f')])&&_0xa657e['joins'][_0x2bc0d5][_0xa179('0x7a')]&&_0xa657e['joins'][_0x2bc0d5]['foreignTable']&&_0xa657e[_0xa179('0x78')][_0x2bc0d5][_0xa179('0x7b')]){_0x19e1df[_0xa657e[_0xa179('0x78')][_0x2bc0d5][_0xa179('0x2f')]](_0xa657e[_0xa179('0x78')][_0x2bc0d5][_0xa179('0x7c')],null,util[_0xa179('0x73')](_0xa179('0x7d'),_0xa657e[_0xa179('0x7e')],_0xa657e['joins'][_0x2bc0d5][_0xa179('0x7a')],_0xa657e[_0xa179('0x78')][_0x2bc0d5]['foreignTable'],_0xa657e['joins'][_0x2bc0d5][_0xa179('0x7b')]));}}}if(_0xa657e[_0xa179('0x7f')]){_0xa657e['conditions']=JSON[_0xa179('0x79')](_0xa657e[_0xa179('0x7f')]);_0x19e1df[_0xa179('0x3b')](_0x122360(_0xa657e[_0xa179('0x7f')][_0xa179('0x64')]));}_0x460c67=_0x19e1df[_0xa179('0x80')]();_0x19e1df[_0xa179('0x1d')](_0x484614);_0x19e1df[_0xa179('0x1c')](0x0);logger[_0xa179('0x81')](_0xa179('0x82'),_0x19e1df[_0xa179('0x83')]());return dbH[_0xa179('0x84')][_0xa179('0x32')](_0x19e1df[_0xa179('0x83')](),{'type':dbH[_0xa179('0x84')][_0xa179('0x85')]['SELECT']});}})[_0xa179('0x25')](respondWithResult(_0x2b657f,null))[_0xa179('0x42')](handleError(_0x2b657f,null));};function runReport(_0x350eda,_0x334ea3,_0x24afa5){var _0xd8f0f0=_0x334ea3[_0xa179('0x2a')];var _0x125b5f=0xa;var _0x473806=[_0xa179('0x86'),'left_join',_0xa179('0x50'),'cross_join'];var _0x4c87db={'SUM':_0xa179('0x52'),'COUNT':_0xa179('0x53'),'COUNT DISTINCT':_0xa179('0x54'),'MAX':_0xa179('0x55'),'MIN':_0xa179('0x56'),'AVG':_0xa179('0x57'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xa179('0x59'),'GROUP_CONCAT DESC':_0xa179('0x87')};var _0x39fad5={'SEC_TO_TIME':_0xa179('0x5a'),'DATE':_0xa179('0x5b'),'HOUR':_0xa179('0x5c'),'ROUND':_0xa179('0x5d'),'UNIX_TIMESTAMP':_0xa179('0x5e')};var _0x2d9ef0=function(_0x99e845){return!_['includes']([_0xa179('0x60'),_0xa179('0x88'),_0xa179('0x61'),_0xa179('0x89')],_0x99e845);};var _0x3f6839=function(_0x4bbc0a){if(!_0x4bbc0a||!_0x4bbc0a[_0xa179('0x62')][_0xa179('0x38')]){return'';}for(var _0x1a65c4='(',_0x1a800a=0x0;_0x1a800a<_0x4bbc0a['rules']['length'];_0x1a800a+=0x1){_0x1a800a>0x0&&(_0x1a65c4+='\x20'+_0x4bbc0a[_0xa179('0x63')]+'\x20');_0x1a65c4+=_0x4bbc0a[_0xa179('0x62')][_0x1a800a][_0xa179('0x64')]?_0x3f6839(_0x4bbc0a[_0xa179('0x62')][_0x1a800a][_0xa179('0x64')]):_0x4bbc0a[_0xa179('0x62')][_0x1a800a][_0xa179('0x65')]+'\x20'+_0x4bbc0a['rules'][_0x1a800a][_0xa179('0x66')]+(_0x2d9ef0(_0x4bbc0a[_0xa179('0x62')][_0x1a800a][_0xa179('0x66')])?'\x20'+_0x4bbc0a[_0xa179('0x62')][_0x1a800a][_0xa179('0x67')]:'');}return _0x1a65c4+')';};var _0x4bd234={'where':{'id':_0x350eda['id']}},_0x344b8d,_0x485b71,_0x496dd9,_0x107b6f,_0x500749;_0x4bd234=_['merge']({},_0x4bd234,_0x24afa5);return db['AnalyticCustomReport'][_0xa179('0x47')](_0x4bd234)[_0xa179('0x25')](function(_0x3f3e81){if(_0x3f3e81){_0x344b8d=_0x3f3e81;return _0x3f3e81[_0xa179('0x68')]();}return null;})[_0xa179('0x25')](function(_0x33dc87){if(_0x33dc87){if(!_0x33dc87['length']){throw new db[(_0xa179('0x69'))]['ValidationErrorItem'](_0xa179('0x6b'),0x193);}_0x485b71=_0x33dc87;return db[_0xa179('0x8a')][_0xa179('0x40')]({'raw':!![]});}return null;})[_0xa179('0x25')](function(_0x4e6176){if(_0x4e6176){_0x496dd9=_['keyBy'](_0x4e6176,'id');var _0x256604;var _0x2948a7=squel[_0xa179('0x6d')]();_0x2948a7[_0xa179('0x6e')](_0x344b8d[_0xa179('0x7e')]);for(var _0x1127b6=0x0;_0x1127b6<_0x485b71[_0xa179('0x38')];_0x1127b6+=0x1){_0x256604=_0x485b71[_0x1127b6][_0xa179('0x6f')]?_0x496dd9[_0x485b71[_0x1127b6][_0xa179('0x6f')]][_0xa179('0x70')]:_0x485b71[_0x1127b6]['field'];_0x256604=_0x485b71[_0x1127b6][_0xa179('0x71')]?_['replace'](_0x4c87db[_0x485b71[_0x1127b6][_0xa179('0x71')]],'%s',_0x256604):_0x256604;_0x256604=_0x485b71[_0x1127b6][_0xa179('0x73')]?_[_0xa179('0x72')](_0x39fad5[_0x485b71[_0x1127b6][_0xa179('0x73')]],'%s',_0x256604):_0x256604;if(_0x485b71[_0x1127b6][_0xa179('0x74')]){_0x2948a7[_0xa179('0x64')](_0x256604);}_0x485b71[_0x1127b6][_0xa179('0x75')]&&_0x2948a7[_0xa179('0x8b')](_0x256604,_0x485b71[_0x1127b6][_0xa179('0x75')]===_0xa179('0x76')?![]:!![]);_0x2948a7[_0xa179('0x65')](_0x256604,_0x485b71[_0x1127b6][_0xa179('0x77')]||_0x256604);}if(_0x344b8d[_0xa179('0x78')]){_0x344b8d[_0xa179('0x78')]=JSON[_0xa179('0x79')](_0x344b8d['joins']);for(var _0x1943fe=0x0;_0x1943fe<_0x344b8d[_0xa179('0x78')][_0xa179('0x38')];_0x1943fe+=0x1){if(_0x344b8d[_0xa179('0x78')][_0x1943fe]['type']&&_['includes'](_0x473806,_0x344b8d[_0xa179('0x78')][_0x1943fe][_0xa179('0x2f')])&&_0x344b8d['joins'][_0x1943fe][_0xa179('0x7a')]&&_0x344b8d[_0xa179('0x78')][_0x1943fe][_0xa179('0x7c')]&&_0x344b8d[_0xa179('0x78')][_0x1943fe][_0xa179('0x7b')]){_0x2948a7[_0x344b8d['joins'][_0x1943fe][_0xa179('0x2f')]](_0x344b8d['joins'][_0x1943fe][_0xa179('0x7c')],null,util['format'](_0xa179('0x7d'),_0x344b8d['table'],_0x344b8d['joins'][_0x1943fe][_0xa179('0x7a')],_0x344b8d['joins'][_0x1943fe][_0xa179('0x7c')],_0x344b8d[_0xa179('0x78')][_0x1943fe][_0xa179('0x7b')]));}}}if(_0x344b8d[_0xa179('0x7f')]){_0x344b8d[_0xa179('0x7f')]=JSON['parse'](_0x344b8d['conditions']);_0x2948a7['where'](_0x3f6839(_0x344b8d[_0xa179('0x7f')]['group']));}_0x500749=_0x2948a7['clone']();_0x2948a7[_0xa179('0x1d')](_0x125b5f);_0x2948a7['offset'](0x0);return;}})[_0xa179('0x25')](function(){if(_0x334ea3[_0xa179('0x8c')]===_0xa179('0x8d')){return null;}var _0x39ddd1=_[_0xa179('0x3d')](_0x334ea3,{'name':_0x334ea3[_0xa179('0x8e')]||_0x334ea3[_0xa179('0x2a')]||_0x344b8d[_0xa179('0x2a')],'basename':_0xd8f0f0,'savename':util[_0xa179('0x73')](_0xa179('0x8f'),_0x334ea3[_0xa179('0x2a')]||_0x344b8d[_0xa179('0x2a')],require('randomstring')[_0xa179('0x90')](0x4),_0x334ea3[_0xa179('0x8c')]||_0xa179('0x91')),'reportId':_0x344b8d['id'],'reportType':_0xa179('0x92')});return db[_0xa179('0x93')][_0xa179('0x48')](_0x39ddd1,{'raw':!![]});})['then'](function(_0xfeeab3){if(_0x344b8d[_0xa179('0x7e')]===_0xa179('0x94')){_0x500749[_0xa179('0x3b')](_0x344b8d[_0xa179('0x7e')]+_0xa179('0x95'),_0x334ea3[_0xa179('0x96')],_0x334ea3[_0xa179('0x97')]);}else{_0x500749[_0xa179('0x3b')](_0x344b8d[_0xa179('0x7e')]+_0xa179('0x98'),_0x334ea3['startDate'],_0x334ea3['endDate']);}if(_0xfeeab3){logger[_0xa179('0x99')](_0xa179('0x9a'),_0x500749[_0xa179('0x83')]());require(_0xa179('0x9b'))[_0xa179('0x9c')](path[_0xa179('0x86')](__dirname,_0xa179('0x9d'),_0xfeeab3['output']),[_0xfeeab3['id'],_0x500749['toString'](),path[_0xa179('0x86')](__dirname,_0xa179('0x9e'),_0xfeeab3[_0xa179('0x9f')]),_0xd8f0f0]);return _0xfeeab3;}else{var _0x1e0273=squel[_0xa179('0x6d')]();_0x1e0273['from']('('+_0x500749[_0xa179('0x83')]()+')',_0xa179('0xa0'));_0x1e0273[_0xa179('0x65')](_0xa179('0xa1'),_0xa179('0x1f'));_0x500749['limit'](_0x334ea3[_0xa179('0x1d')]||_0x125b5f);_0x500749[_0xa179('0x1c')](_0x334ea3['offset']||0x0);return dbH['sequelize']['query'](_0x1e0273[_0xa179('0x83')](),{'type':dbH['sequelize'][_0xa179('0x85')][_0xa179('0xa2')]})['then'](function(_0x41604d){if(!_0x41604d[_0xa179('0x38')]){_0x107b6f=0x0;}else{_0x107b6f=_0x41604d[0x0][_0xa179('0x1f')]||0x0;}return dbH['sequelize'][_0xa179('0x32')](_0x500749[_0xa179('0x83')](),{'type':dbH[_0xa179('0x84')]['QueryTypes'][_0xa179('0xa2')]});})[_0xa179('0x25')](function(_0x507ef5){return{'rows':_0x507ef5||[],'count':_0x107b6f};});}});}exports[_0xa179('0xa3')]=function(_0x417404,_0x590d53){return runReport(_0x417404[_0xa179('0x44')],_0x417404[_0xa179('0x32')],_0x417404[_0xa179('0x3e')])[_0xa179('0x25')](respondWithResult(_0x590d53,null))[_0xa179('0x42')](handleError(_0x590d53,null));};exports[_0xa179('0xa4')]=runReport;exports[_0xa179('0x32')]=function(_0x59155c,_0x5e0c4d){var _0x543c33=0xa;var _0x541e7d=[_0xa179('0x86'),'left_join',_0xa179('0x50'),_0xa179('0x51')];var _0x29896a={'SUM':'SUM(%s)','COUNT':_0xa179('0x53'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xa179('0x55'),'MIN':_0xa179('0x56'),'AVG':_0xa179('0x57'),'GROUP_CONCAT':_0xa179('0x58'),'GROUP_CONCAT ASC':_0xa179('0x59'),'GROUP_CONCAT DESC':_0xa179('0x87')};var _0x4f4a60={'SEC_TO_TIME':_0xa179('0x5a'),'DATE':_0xa179('0x5b'),'HOUR':_0xa179('0x5c'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xa179('0x5e')};var _0x3689e6=function(_0x316e91){return!_[_0xa179('0x5f')]([_0xa179('0x60'),_0xa179('0x88'),_0xa179('0x61'),_0xa179('0x89')],_0x316e91);};var _0x4ae91f=function(_0x2a42be){if(!_0x2a42be||!_0x2a42be[_0xa179('0x62')]['length']){return'';}for(var _0x3764e0='(',_0x252778=0x0;_0x252778<_0x2a42be['rules'][_0xa179('0x38')];_0x252778+=0x1){_0x252778>0x0&&(_0x3764e0+='\x20'+_0x2a42be['operator']+'\x20');_0x3764e0+=_0x2a42be[_0xa179('0x62')][_0x252778][_0xa179('0x64')]?_0x4ae91f(_0x2a42be[_0xa179('0x62')][_0x252778]['group']):_0x2a42be[_0xa179('0x62')][_0x252778]['field']+'\x20'+_0x2a42be['rules'][_0x252778][_0xa179('0x66')]+(_0x3689e6(_0x2a42be[_0xa179('0x62')][_0x252778]['condition'])?'\x20'+_0x2a42be[_0xa179('0x62')][_0x252778][_0xa179('0x67')]:'');}return _0x3764e0+')';};var _0x79234d={'where':{'id':_0x59155c['params']['id']}},_0x480b4d,_0x21c860,_0x5abb62,_0x1facf6,_0x16bb88;_0x79234d=_['merge']({},_0x79234d,_0x59155c[_0xa179('0x3e')]);return db[_0xa179('0x2d')]['find'](_0x79234d)[_0xa179('0x25')](function(_0x119c68){if(_0x119c68){_0x480b4d=_0x119c68;return _0x119c68[_0xa179('0x68')]();}return null;})[_0xa179('0x25')](function(_0x13f48b){if(_0x13f48b){if(!_0x13f48b[_0xa179('0x38')]){throw new db[(_0xa179('0x69'))][(_0xa179('0x6a'))](_0xa179('0x6b'),0x193);}_0x21c860=_0x13f48b;return db[_0xa179('0x8a')][_0xa179('0x40')]({'raw':!![]});}return null;})[_0xa179('0x25')](function(_0x23cf2c){if(_0x23cf2c){_0x5abb62=_[_0xa179('0x6c')](_0x23cf2c,'id');var _0x26c05d;var _0x3e7cac=squel['select']();_0x3e7cac['from'](_0x480b4d[_0xa179('0x7e')]);for(var _0x3526ec=0x0;_0x3526ec<_0x21c860['length'];_0x3526ec+=0x1){_0x26c05d=_0x21c860[_0x3526ec]['MetricId']?_0x5abb62[_0x21c860[_0x3526ec][_0xa179('0x6f')]]['metric']:_0x21c860[_0x3526ec][_0xa179('0x65')];_0x26c05d=_0x21c860[_0x3526ec][_0xa179('0x71')]?_[_0xa179('0x72')](_0x29896a[_0x21c860[_0x3526ec]['function']],'%s',_0x26c05d):_0x26c05d;_0x26c05d=_0x21c860[_0x3526ec][_0xa179('0x73')]?_[_0xa179('0x72')](_0x4f4a60[_0x21c860[_0x3526ec][_0xa179('0x73')]],'%s',_0x26c05d):_0x26c05d;if(_0x21c860[_0x3526ec][_0xa179('0x74')]){_0x3e7cac[_0xa179('0x64')](_0x26c05d);}_0x21c860[_0x3526ec][_0xa179('0x75')]&&_0x3e7cac['order'](_0x26c05d,_0x21c860[_0x3526ec][_0xa179('0x75')]===_0xa179('0x76')?![]:!![]);_0x3e7cac['field'](_0x26c05d,_0x21c860[_0x3526ec][_0xa179('0x77')]||_0x26c05d);}if(_0x480b4d['joins']){_0x480b4d[_0xa179('0x78')]=JSON[_0xa179('0x79')](_0x480b4d[_0xa179('0x78')]);for(var _0x771474=0x0;_0x771474<_0x480b4d[_0xa179('0x78')][_0xa179('0x38')];_0x771474+=0x1){if(_0x480b4d[_0xa179('0x78')][_0x771474][_0xa179('0x2f')]&&_[_0xa179('0x5f')](_0x541e7d,_0x480b4d[_0xa179('0x78')][_0x771474][_0xa179('0x2f')])&&_0x480b4d[_0xa179('0x78')][_0x771474][_0xa179('0x7a')]&&_0x480b4d[_0xa179('0x78')][_0x771474]['foreignTable']&&_0x480b4d[_0xa179('0x78')][_0x771474][_0xa179('0x7b')]){_0x3e7cac[_0x480b4d['joins'][_0x771474][_0xa179('0x2f')]](_0x480b4d[_0xa179('0x78')][_0x771474][_0xa179('0x7c')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x480b4d[_0xa179('0x7e')],_0x480b4d[_0xa179('0x78')][_0x771474][_0xa179('0x7a')],_0x480b4d['joins'][_0x771474][_0xa179('0x7c')],_0x480b4d['joins'][_0x771474][_0xa179('0x7b')]));}}}if(_0x480b4d['conditions']){_0x480b4d[_0xa179('0x7f')]=JSON[_0xa179('0x79')](_0x480b4d[_0xa179('0x7f')]);_0x3e7cac['where'](_0x4ae91f(_0x480b4d[_0xa179('0x7f')][_0xa179('0x64')]));}_0x16bb88=_0x3e7cac[_0xa179('0x80')]();_0x3e7cac[_0xa179('0x1d')](_0x543c33);_0x3e7cac[_0xa179('0x1c')](0x0);logger[_0xa179('0x81')](_0xa179('0x82'),_0x3e7cac[_0xa179('0x83')]());return dbH['sequelize'][_0xa179('0x32')](_0x3e7cac['toString'](),{'type':dbH[_0xa179('0x84')][_0xa179('0x85')][_0xa179('0xa2')]});}})['then'](function(){return{'sql':_0x16bb88['toString']()};})[_0xa179('0x25')](respondWithResult(_0x5e0c4d,null))[_0xa179('0x42')](handleError(_0x5e0c4d,null));};