d8a5948599cca360e355199b658965319d7644a1
[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 _0x7536=['replace','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','format','%s.%s\x20=\x20%s.%s','foreignKey','conditions','clone','debug','toString','sequelize','QueryTypes','SELECT','join','SUM(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','HOUR(%s)','condition','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','No\x20available\x20data','output','web','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','child_process','fork','../../components/export/','../../files/reports','savename','select','COUNT(*)','run','runReport','SEC_TO_TIME(%s)','Limited\x20Query:','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','count','offset','limit','set','apply','reject','update','then','get','CustomReports','destroy','stack','name','map','AnalyticCustomReport','rawAttributes','fieldName','type','query','filters','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','intersection','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Reports','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','value','getFields','ValidationErrorItem','keyBy','from','table','MetricId','metric','function'];(function(_0x194bb1,_0x48ac11){var _0x2c65d3=function(_0x269963){while(--_0x269963){_0x194bb1['push'](_0x194bb1['shift']());}};_0x2c65d3(++_0x48ac11);}(_0x7536,0xd8));var _0x6753=function(_0x72a33d,_0x5691da){_0x72a33d=_0x72a33d-0x0;var _0x2621d5=_0x7536[_0x72a33d];return _0x2621d5;};'use strict';var pdf=require(_0x6753('0x0'));var emlformat=require(_0x6753('0x1'));var rimraf=require(_0x6753('0x2'));var zipdir=require(_0x6753('0x3'));var jsonpatch=require(_0x6753('0x4'));var rp=require(_0x6753('0x5'));var moment=require(_0x6753('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x6753('0x7'));var util=require(_0x6753('0x8'));var path=require(_0x6753('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x6753('0xa'));var fs=require('fs');var _=require(_0x6753('0xb'));var squel=require('squel');var crypto=require(_0x6753('0xc'));var jsforce=require(_0x6753('0xd'));var deskjs=require(_0x6753('0xe'));var toCsv=require('to-csv');var querystring=require(_0x6753('0xf'));var Papa=require('papaparse');var Redis=require(_0x6753('0x10'));var authService=require(_0x6753('0x11'));var qs=require(_0x6753('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x6753('0x13'))(_0x6753('0x14'));var utils=require(_0x6753('0x15'));var config=require(_0x6753('0x16'));var licenseUtil=require(_0x6753('0x17'));var db=require(_0x6753('0x18'))['db'];var dbH=require(_0x6753('0x18'))['dbH'];function respondWithStatusCode(_0x2c69fe,_0x10d3b1){_0x10d3b1=_0x10d3b1||0xcc;return function(_0x3f7a39){if(_0x3f7a39){return _0x2c69fe[_0x6753('0x19')](_0x10d3b1);}return _0x2c69fe['status'](_0x10d3b1)[_0x6753('0x1a')]();};}function respondWithResult(_0x149233,_0x14bb27){_0x14bb27=_0x14bb27||0xc8;return function(_0x5b7d70){if(_0x5b7d70){return _0x149233[_0x6753('0x1b')](_0x14bb27)[_0x6753('0x1c')](_0x5b7d70);}};}function respondWithFilteredResult(_0xf07ff3,_0x9161b){return function(_0x5c3dc4){if(_0x5c3dc4){var _0x4b6bdd=_0x5c3dc4[_0x6753('0x1d')],_0xe1f3ad=_0x9161b['offset'],_0x547dc8=_0x9161b[_0x6753('0x1e')]+_0x9161b[_0x6753('0x1f')],_0x4e3b24;if(_0x547dc8>=_0x4b6bdd){_0x547dc8=_0x4b6bdd;_0x4e3b24=0xc8;}else{_0x4e3b24=0xce;}_0xf07ff3[_0x6753('0x1b')](_0x4e3b24);return _0xf07ff3[_0x6753('0x20')]('Content-Range',_0xe1f3ad+'-'+_0x547dc8+'/'+_0x4b6bdd)[_0x6753('0x1c')](_0x5c3dc4);}return null;};}function patchUpdates(_0x535216){return function(_0x51a3b9){try{jsonpatch[_0x6753('0x21')](_0x51a3b9,_0x535216,!![]);}catch(_0x262b65){return BPromise[_0x6753('0x22')](_0x262b65);}return _0x51a3b9['save']();};}function saveUpdates(_0x14ccdc,_0x28c376){return function(_0x5744fa){if(_0x5744fa){return _0x5744fa[_0x6753('0x23')](_0x14ccdc)[_0x6753('0x24')](function(_0x2fddf2){return _0x2fddf2;});}return null;};}function removeEntity(_0x5728b4,_0x473b04){return function(_0x223188){if(_0x223188){return _0x223188['destroy']()[_0x6753('0x24')](function(){var _0x51367d=_0x223188[_0x6753('0x25')]({'plain':!![]});var _0xc5ce6a=_0x6753('0x26');return db['UserProfileResource'][_0x6753('0x27')]({'where':{'type':_0xc5ce6a,'resourceId':_0x51367d['id']}})[_0x6753('0x24')](function(){return _0x223188;});})[_0x6753('0x24')](function(){_0x5728b4[_0x6753('0x1b')](0xcc)[_0x6753('0x1a')]();});}};}function handleEntityNotFound(_0x1849e3,_0x8beed7){return function(_0x44a86a){if(!_0x44a86a){_0x1849e3[_0x6753('0x19')](0x194);}return _0x44a86a;};}function handleError(_0xedb526,_0x3adef7){_0x3adef7=_0x3adef7||0x1f4;return function(_0x23f239){logger['error'](_0x23f239[_0x6753('0x28')]);if(_0x23f239[_0x6753('0x29')]){delete _0x23f239[_0x6753('0x29')];}_0xedb526['status'](_0x3adef7)['send'](_0x23f239);};}exports['index']=function(_0x580404,_0x42c2b8){var _0x218195={},_0x2e2899={},_0xe43fd9={'count':0x0,'rows':[]};var _0x2b327f=_[_0x6753('0x2a')](db[_0x6753('0x2b')][_0x6753('0x2c')],function(_0x2559fc){return{'name':_0x2559fc[_0x6753('0x2d')],'type':_0x2559fc[_0x6753('0x2e')]['key']};});_0x2e2899['model']=_[_0x6753('0x2a')](_0x2b327f,_0x6753('0x29'));_0x2e2899[_0x6753('0x2f')]=_['keys'](_0x580404[_0x6753('0x2f')]);_0x2e2899[_0x6753('0x30')]=_['intersection'](_0x2e2899['model'],_0x2e2899[_0x6753('0x2f')]);_0x218195[_0x6753('0x31')]=_['intersection'](_0x2e2899[_0x6753('0x32')],qs[_0x6753('0x33')](_0x580404[_0x6753('0x2f')]['fields']));_0x218195['attributes']=_0x218195[_0x6753('0x31')][_0x6753('0x34')]?_0x218195[_0x6753('0x31')]:_0x2e2899[_0x6753('0x32')];if(!_0x580404[_0x6753('0x2f')][_0x6753('0x35')](_0x6753('0x36'))){_0x218195[_0x6753('0x1f')]=qs[_0x6753('0x1f')](_0x580404[_0x6753('0x2f')]['limit']);_0x218195[_0x6753('0x1e')]=qs['offset'](_0x580404['query']['offset']);}_0x218195[_0x6753('0x37')]=qs['sort'](_0x580404[_0x6753('0x2f')][_0x6753('0x38')]);_0x218195['where']=qs[_0x6753('0x30')](_['pick'](_0x580404[_0x6753('0x2f')],_0x2e2899[_0x6753('0x30')]),_0x2b327f);if(_0x580404['query'][_0x6753('0x39')]){_0x218195[_0x6753('0x3a')]=_[_0x6753('0x3b')](_0x218195[_0x6753('0x3a')],{'$or':_[_0x6753('0x2a')](_0x2b327f,function(_0x1daf96){if(_0x1daf96[_0x6753('0x2e')]!==_0x6753('0x3c')){var _0x41fe31={};_0x41fe31[_0x1daf96[_0x6753('0x29')]]={'$like':'%'+_0x580404[_0x6753('0x2f')]['filter']+'%'};return _0x41fe31;}})});}_0x218195=_[_0x6753('0x3b')]({},_0x218195,_0x580404[_0x6753('0x3d')]);var _0x4cb892={'where':_0x218195[_0x6753('0x3a')]};return db['AnalyticCustomReport']['count'](_0x4cb892)['then'](function(_0x15934f){_0xe43fd9[_0x6753('0x1d')]=_0x15934f;if(_0x580404[_0x6753('0x2f')][_0x6753('0x3e')]){_0x218195[_0x6753('0x3f')]=[{'all':!![]}];}return db[_0x6753('0x2b')][_0x6753('0x40')](_0x218195);})[_0x6753('0x24')](function(_0x124ffe){_0xe43fd9[_0x6753('0x41')]=_0x124ffe;return _0xe43fd9;})['then'](respondWithFilteredResult(_0x42c2b8,_0x218195))[_0x6753('0x42')](handleError(_0x42c2b8,null));};exports[_0x6753('0x43')]=function(_0x4c3e06,_0x1f0b56){var _0x41ccf4={'raw':![],'where':{'id':_0x4c3e06[_0x6753('0x44')]['id']}},_0x4aca63={};_0x4aca63[_0x6753('0x32')]=_[_0x6753('0x45')](db[_0x6753('0x2b')]['rawAttributes']);_0x4aca63[_0x6753('0x2f')]=_[_0x6753('0x45')](_0x4c3e06[_0x6753('0x2f')]);_0x4aca63['filters']=_[_0x6753('0x46')](_0x4aca63[_0x6753('0x32')],_0x4aca63['query']);_0x41ccf4[_0x6753('0x31')]=_[_0x6753('0x46')](_0x4aca63['model'],qs[_0x6753('0x33')](_0x4c3e06[_0x6753('0x2f')]['fields']));_0x41ccf4[_0x6753('0x31')]=_0x41ccf4[_0x6753('0x31')]['length']?_0x41ccf4[_0x6753('0x31')]:_0x4aca63[_0x6753('0x32')];if(_0x4c3e06['query'][_0x6753('0x3e')]){_0x41ccf4[_0x6753('0x3f')]=[{'all':!![]}];}_0x41ccf4=_['merge']({},_0x41ccf4,_0x4c3e06[_0x6753('0x3d')]);return db['AnalyticCustomReport'][_0x6753('0x47')](_0x41ccf4)[_0x6753('0x24')](handleEntityNotFound(_0x1f0b56,null))[_0x6753('0x24')](respondWithResult(_0x1f0b56,null))[_0x6753('0x42')](handleError(_0x1f0b56,null));};exports[_0x6753('0x48')]=function(_0x53a615,_0x24489d){return db[_0x6753('0x2b')][_0x6753('0x48')](_0x53a615['body'],{})[_0x6753('0x24')](function(_0xcc5df8){var _0x33eab5=_0x53a615['user'][_0x6753('0x25')]({'plain':!![]});if(!_0x33eab5)throw new Error(_0x6753('0x49'));if(_0x33eab5[_0x6753('0x4a')]===_0x6753('0x4b')){var _0x4c1c40=_0xcc5df8[_0x6753('0x25')]({'plain':!![]});var _0x3cbbd2=_0x6753('0x4c');return db[_0x6753('0x4d')]['find']({'where':{'name':_0x3cbbd2,'userProfileId':_0x33eab5[_0x6753('0x4e')]},'raw':!![]})[_0x6753('0x24')](function(_0xe68797){if(_0xe68797&&_0xe68797[_0x6753('0x4f')]===0x0){return db[_0x6753('0x50')][_0x6753('0x48')]({'name':_0x4c1c40[_0x6753('0x29')],'resourceId':_0x4c1c40['id'],'type':_0x6753('0x26'),'sectionId':_0xe68797['id']},{})[_0x6753('0x24')](function(){return _0xcc5df8;});}else{return _0xcc5df8;}})[_0x6753('0x42')](function(_0x172096){logger['error'](_0x6753('0x51'),_0x172096);throw _0x172096;});}return _0xcc5df8;})['then'](respondWithResult(_0x24489d,0xc9))[_0x6753('0x42')](handleError(_0x24489d,null));};exports[_0x6753('0x23')]=function(_0x247653,_0x189d73){if(_0x247653[_0x6753('0x52')]['id']){delete _0x247653[_0x6753('0x52')]['id'];}return db[_0x6753('0x2b')][_0x6753('0x47')]({'where':{'id':_0x247653[_0x6753('0x44')]['id']}})[_0x6753('0x24')](handleEntityNotFound(_0x189d73,null))['then'](saveUpdates(_0x247653[_0x6753('0x52')],null))['then'](respondWithResult(_0x189d73,null))['catch'](handleError(_0x189d73,null));};exports[_0x6753('0x27')]=function(_0x58a51a,_0x5ef0df){return db[_0x6753('0x2b')][_0x6753('0x47')]({'where':{'id':_0x58a51a[_0x6753('0x44')]['id']}})[_0x6753('0x24')](handleEntityNotFound(_0x5ef0df,null))[_0x6753('0x24')](removeEntity(_0x5ef0df,null))[_0x6753('0x42')](handleError(_0x5ef0df,null));};exports['preview']=function(_0x26743c,_0x3f9c6a){var _0x5b05d7=0xa;var _0x4231dd=['join',_0x6753('0x53'),_0x6753('0x54'),_0x6753('0x55')];var _0x439302={'SUM':'SUM(%s)','COUNT':_0x6753('0x56'),'COUNT DISTINCT':_0x6753('0x57'),'MAX':_0x6753('0x58'),'MIN':_0x6753('0x59'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x6753('0x5a'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x6753('0x5b')};var _0x8e403a={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x6753('0x5c'),'HOUR':'HOUR(%s)','ROUND':_0x6753('0x5d'),'UNIX_TIMESTAMP':_0x6753('0x5e')};var _0x5da45f=function(_0x598a0e){return!_[_0x6753('0x5f')]([_0x6753('0x60'),'IS\x20NOT\x20NULL',_0x6753('0x61'),_0x6753('0x62')],_0x598a0e);};var _0x2a0c45=function(_0xa3cef1){if(!_0xa3cef1||!_0xa3cef1[_0x6753('0x63')]['length']){return'';}for(var _0x5a1875='(',_0x29c91a=0x0;_0x29c91a<_0xa3cef1[_0x6753('0x63')][_0x6753('0x34')];_0x29c91a+=0x1){_0x29c91a>0x0&&(_0x5a1875+='\x20'+_0xa3cef1[_0x6753('0x64')]+'\x20');_0x5a1875+=_0xa3cef1[_0x6753('0x63')][_0x29c91a]['group']?_0x2a0c45(_0xa3cef1[_0x6753('0x63')][_0x29c91a][_0x6753('0x65')]):_0xa3cef1['rules'][_0x29c91a][_0x6753('0x66')]+'\x20'+_0xa3cef1[_0x6753('0x63')][_0x29c91a]['condition']+(_0x5da45f(_0xa3cef1['rules'][_0x29c91a]['condition'])?'\x20'+_0xa3cef1['rules'][_0x29c91a][_0x6753('0x67')]:'');}return _0x5a1875+')';};var _0x517f0d={'where':{'id':_0x26743c['params']['id']}},_0xfc612b,_0x44ee69,_0x59f622,_0x123fb2,_0x759d7a;_0x517f0d=_[_0x6753('0x3b')]({},_0x517f0d,_0x26743c[_0x6753('0x3d')]);return db[_0x6753('0x2b')]['find'](_0x517f0d)[_0x6753('0x24')](function(_0x1f5cba){if(_0x1f5cba){_0xfc612b=_0x1f5cba;return _0x1f5cba[_0x6753('0x68')]();}return null;})[_0x6753('0x24')](function(_0x9a85fe){if(_0x9a85fe){if(!_0x9a85fe[_0x6753('0x34')]){throw new db['Sequelize'][(_0x6753('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x44ee69=_0x9a85fe;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})['then'](function(_0x14d710){if(_0x14d710){_0x59f622=_[_0x6753('0x6a')](_0x14d710,'id');var _0x161d5d;var _0x1b21b3=squel['select']();_0x1b21b3[_0x6753('0x6b')](_0xfc612b[_0x6753('0x6c')]);for(var _0x49026c=0x0;_0x49026c<_0x44ee69[_0x6753('0x34')];_0x49026c+=0x1){_0x161d5d=_0x44ee69[_0x49026c][_0x6753('0x6d')]?_0x59f622[_0x44ee69[_0x49026c][_0x6753('0x6d')]][_0x6753('0x6e')]:_0x44ee69[_0x49026c][_0x6753('0x66')];_0x161d5d=_0x44ee69[_0x49026c][_0x6753('0x6f')]?_['replace'](_0x439302[_0x44ee69[_0x49026c]['function']],'%s',_0x161d5d):_0x161d5d;_0x161d5d=_0x44ee69[_0x49026c]['format']?_[_0x6753('0x70')](_0x8e403a[_0x44ee69[_0x49026c]['format']],'%s',_0x161d5d):_0x161d5d;if(_0x44ee69[_0x49026c][_0x6753('0x71')]){_0x1b21b3[_0x6753('0x65')](_0x161d5d);}_0x44ee69[_0x49026c][_0x6753('0x72')]&&_0x1b21b3[_0x6753('0x37')](_0x161d5d,_0x44ee69[_0x49026c][_0x6753('0x72')]===_0x6753('0x73')?![]:!![]);_0x1b21b3['field'](_0x161d5d,_0x44ee69[_0x49026c][_0x6753('0x74')]||_0x161d5d);}if(_0xfc612b[_0x6753('0x75')]){_0xfc612b[_0x6753('0x75')]=JSON[_0x6753('0x76')](_0xfc612b[_0x6753('0x75')]);for(var _0x4e48bc=0x0;_0x4e48bc<_0xfc612b[_0x6753('0x75')][_0x6753('0x34')];_0x4e48bc+=0x1){if(_0xfc612b[_0x6753('0x75')][_0x4e48bc][_0x6753('0x2e')]&&_[_0x6753('0x5f')](_0x4231dd,_0xfc612b[_0x6753('0x75')][_0x4e48bc]['type'])&&_0xfc612b[_0x6753('0x75')][_0x4e48bc][_0x6753('0x77')]&&_0xfc612b[_0x6753('0x75')][_0x4e48bc][_0x6753('0x78')]&&_0xfc612b[_0x6753('0x75')][_0x4e48bc]['foreignKey']){_0x1b21b3[_0xfc612b['joins'][_0x4e48bc][_0x6753('0x2e')]](_0xfc612b[_0x6753('0x75')][_0x4e48bc][_0x6753('0x78')],null,util[_0x6753('0x79')](_0x6753('0x7a'),_0xfc612b[_0x6753('0x6c')],_0xfc612b[_0x6753('0x75')][_0x4e48bc]['parentKey'],_0xfc612b[_0x6753('0x75')][_0x4e48bc][_0x6753('0x78')],_0xfc612b[_0x6753('0x75')][_0x4e48bc][_0x6753('0x7b')]));}}}if(_0xfc612b['conditions']){_0xfc612b[_0x6753('0x7c')]=JSON['parse'](_0xfc612b['conditions']);_0x1b21b3[_0x6753('0x3a')](_0x2a0c45(_0xfc612b['conditions']['group']));}_0x759d7a=_0x1b21b3[_0x6753('0x7d')]();_0x1b21b3[_0x6753('0x1f')](_0x5b05d7);_0x1b21b3[_0x6753('0x1e')](0x0);logger[_0x6753('0x7e')]('Limited\x20Query:',_0x1b21b3[_0x6753('0x7f')]());return db[_0x6753('0x80')][_0x6753('0x2f')](_0x1b21b3[_0x6753('0x7f')](),{'type':db['sequelize'][_0x6753('0x81')][_0x6753('0x82')]});}})[_0x6753('0x24')](respondWithResult(_0x3f9c6a,null))[_0x6753('0x42')](handleError(_0x3f9c6a,null));};function runReport(_0x359eb7,_0x286850,_0x18da75){var _0xe0deaf=_0x286850[_0x6753('0x29')];var _0x36eb1b=0xa;var _0x311cb7=[_0x6753('0x83'),'left_join',_0x6753('0x54'),_0x6753('0x55')];var _0x1d89c6={'SUM':_0x6753('0x84'),'COUNT':_0x6753('0x56'),'COUNT DISTINCT':_0x6753('0x57'),'MAX':'MAX(%s)','MIN':_0x6753('0x59'),'AVG':_0x6753('0x85'),'GROUP_CONCAT':_0x6753('0x5a'),'GROUP_CONCAT ASC':_0x6753('0x86'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x3e3a3a={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x6753('0x87'),'ROUND':_0x6753('0x5d'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x4d7c7c=function(_0x11aa67){return!_['includes']([_0x6753('0x60'),'IS\x20NOT\x20NULL','IS\x20EMPTY',_0x6753('0x62')],_0x11aa67);};var _0xe37b1f=function(_0x4a828d){if(!_0x4a828d||!_0x4a828d['rules'][_0x6753('0x34')]){return'';}for(var _0x50eca0='(',_0x578a6e=0x0;_0x578a6e<_0x4a828d['rules'][_0x6753('0x34')];_0x578a6e+=0x1){_0x578a6e>0x0&&(_0x50eca0+='\x20'+_0x4a828d['operator']+'\x20');_0x50eca0+=_0x4a828d['rules'][_0x578a6e]['group']?_0xe37b1f(_0x4a828d[_0x6753('0x63')][_0x578a6e][_0x6753('0x65')]):_0x4a828d[_0x6753('0x63')][_0x578a6e]['field']+'\x20'+_0x4a828d['rules'][_0x578a6e]['condition']+(_0x4d7c7c(_0x4a828d['rules'][_0x578a6e][_0x6753('0x88')])?'\x20'+_0x4a828d[_0x6753('0x63')][_0x578a6e][_0x6753('0x67')]:'');}return _0x50eca0+')';};var _0x59a0f2={'where':{'id':_0x359eb7['id']}},_0x283356,_0x1eebc3,_0x9d9841,_0x3876be,_0x27cb8e;_0x59a0f2=_[_0x6753('0x3b')]({},_0x59a0f2,_0x18da75);return db['AnalyticCustomReport'][_0x6753('0x47')](_0x59a0f2)[_0x6753('0x24')](function(_0xb4566f){if(_0xb4566f){_0x283356=_0xb4566f;return _0xb4566f[_0x6753('0x68')]();}return null;})[_0x6753('0x24')](function(_0x5cef96){if(_0x5cef96){if(!_0x5cef96[_0x6753('0x34')]){throw new db[(_0x6753('0x89'))][(_0x6753('0x69'))](_0x6753('0x8a'),0x193);}_0x1eebc3=_0x5cef96;return db[_0x6753('0x8b')][_0x6753('0x40')]({'raw':!![]});}return null;})['then'](function(_0x141610){if(_0x141610){_0x9d9841=_[_0x6753('0x6a')](_0x141610,'id');var _0x4f8a93;var _0xa185f2=squel['select']();_0xa185f2[_0x6753('0x6b')](_0x283356[_0x6753('0x6c')]);for(var _0x2fc7a6=0x0;_0x2fc7a6<_0x1eebc3['length'];_0x2fc7a6+=0x1){_0x4f8a93=_0x1eebc3[_0x2fc7a6][_0x6753('0x6d')]?_0x9d9841[_0x1eebc3[_0x2fc7a6][_0x6753('0x6d')]]['metric']:_0x1eebc3[_0x2fc7a6][_0x6753('0x66')];_0x4f8a93=_0x1eebc3[_0x2fc7a6]['function']?_[_0x6753('0x70')](_0x1d89c6[_0x1eebc3[_0x2fc7a6][_0x6753('0x6f')]],'%s',_0x4f8a93):_0x4f8a93;_0x4f8a93=_0x1eebc3[_0x2fc7a6][_0x6753('0x79')]?_[_0x6753('0x70')](_0x3e3a3a[_0x1eebc3[_0x2fc7a6][_0x6753('0x79')]],'%s',_0x4f8a93):_0x4f8a93;if(_0x1eebc3[_0x2fc7a6][_0x6753('0x71')]){_0xa185f2['group'](_0x4f8a93);}_0x1eebc3[_0x2fc7a6][_0x6753('0x72')]&&_0xa185f2[_0x6753('0x37')](_0x4f8a93,_0x1eebc3[_0x2fc7a6]['orderBy']===_0x6753('0x73')?![]:!![]);_0xa185f2[_0x6753('0x66')](_0x4f8a93,_0x1eebc3[_0x2fc7a6]['alias']||_0x4f8a93);}if(_0x283356['joins']){_0x283356['joins']=JSON[_0x6753('0x76')](_0x283356['joins']);for(var _0x472ce4=0x0;_0x472ce4<_0x283356['joins'][_0x6753('0x34')];_0x472ce4+=0x1){if(_0x283356['joins'][_0x472ce4]['type']&&_[_0x6753('0x5f')](_0x311cb7,_0x283356['joins'][_0x472ce4]['type'])&&_0x283356[_0x6753('0x75')][_0x472ce4]['parentKey']&&_0x283356['joins'][_0x472ce4][_0x6753('0x78')]&&_0x283356[_0x6753('0x75')][_0x472ce4][_0x6753('0x7b')]){_0xa185f2[_0x283356[_0x6753('0x75')][_0x472ce4][_0x6753('0x2e')]](_0x283356['joins'][_0x472ce4][_0x6753('0x78')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x283356[_0x6753('0x6c')],_0x283356[_0x6753('0x75')][_0x472ce4]['parentKey'],_0x283356['joins'][_0x472ce4]['foreignTable'],_0x283356[_0x6753('0x75')][_0x472ce4][_0x6753('0x7b')]));}}}if(_0x283356[_0x6753('0x7c')]){_0x283356[_0x6753('0x7c')]=JSON[_0x6753('0x76')](_0x283356[_0x6753('0x7c')]);_0xa185f2[_0x6753('0x3a')](_0xe37b1f(_0x283356[_0x6753('0x7c')][_0x6753('0x65')]));}_0x27cb8e=_0xa185f2['clone']();_0xa185f2[_0x6753('0x1f')](_0x36eb1b);_0xa185f2[_0x6753('0x1e')](0x0);logger['debug']('Limited\x20Query:',_0xa185f2[_0x6753('0x7f')]());return db[_0x6753('0x80')][_0x6753('0x2f')](_0xa185f2[_0x6753('0x7f')](),{'type':db[_0x6753('0x80')][_0x6753('0x81')][_0x6753('0x82')]});}})['then'](function(_0x5f5771){if(!_0x5f5771[_0x6753('0x34')]){throw new db[(_0x6753('0x89'))]['ValidationErrorItem'](_0x6753('0x8c'),0xcc);}if(_0x286850[_0x6753('0x8d')]===_0x6753('0x8e')){return null;}var _0x3d1891=_[_0x6753('0x3b')](_0x286850,{'name':_0x286850['fullPath']||_0x286850[_0x6753('0x29')]||_0x283356['name'],'basename':_0xe0deaf,'savename':util[_0x6753('0x79')](_0x6753('0x8f'),_0x286850[_0x6753('0x29')]||_0x283356[_0x6753('0x29')],require(_0x6753('0x90'))[_0x6753('0x91')](0x4),_0x286850['output']||_0x6753('0x92')),'reportId':_0x283356['id'],'reportType':_0x6753('0x93')});return db[_0x6753('0x94')][_0x6753('0x48')](_0x3d1891,{'raw':!![]});})[_0x6753('0x24')](function(_0x4ebe2b){if(_0x283356['table']===_0x6753('0x95')){_0x27cb8e['where'](_0x283356[_0x6753('0x6c')]+_0x6753('0x96'),_0x286850['startDate'],_0x286850[_0x6753('0x97')]);}else{_0x27cb8e[_0x6753('0x3a')](_0x283356['table']+_0x6753('0x98'),_0x286850['startDate'],_0x286850[_0x6753('0x97')]);}if(_0x4ebe2b){logger['info']('Run\x20Query:',_0x27cb8e[_0x6753('0x7f')]());require(_0x6753('0x99'))[_0x6753('0x9a')](path[_0x6753('0x83')](__dirname,_0x6753('0x9b'),_0x4ebe2b[_0x6753('0x8d')]),[_0x4ebe2b['id'],_0x27cb8e['toString'](),path[_0x6753('0x83')](__dirname,_0x6753('0x9c'),_0x4ebe2b[_0x6753('0x9d')]),_0xe0deaf]);return _0x4ebe2b;}else{var _0x3ffbed=squel[_0x6753('0x9e')]();_0x3ffbed[_0x6753('0x6b')]('('+_0x27cb8e[_0x6753('0x7f')]()+')','countTable');_0x3ffbed[_0x6753('0x66')](_0x6753('0x9f'),_0x6753('0x1d'));_0x27cb8e['limit'](_0x286850['limit']||_0x36eb1b);_0x27cb8e[_0x6753('0x1e')](_0x286850[_0x6753('0x1e')]||0x0);return dbH[_0x6753('0x80')]['query'](_0x3ffbed[_0x6753('0x7f')](),{'type':dbH[_0x6753('0x80')]['QueryTypes'][_0x6753('0x82')]})[_0x6753('0x24')](function(_0x5478ab){if(!_0x5478ab[_0x6753('0x34')]){_0x3876be=0x0;}else{_0x3876be=_0x5478ab[0x0][_0x6753('0x1d')]||0x0;}return dbH[_0x6753('0x80')]['query'](_0x27cb8e[_0x6753('0x7f')](),{'type':dbH[_0x6753('0x80')][_0x6753('0x81')][_0x6753('0x82')]});})['then'](function(_0x5122a7){return{'rows':_0x5122a7||[],'count':_0x3876be};});}});}exports[_0x6753('0xa0')]=function(_0x2bd8ca,_0x1a8d8c){return runReport(_0x2bd8ca['params'],_0x2bd8ca[_0x6753('0x2f')],_0x2bd8ca['options'])['then'](respondWithResult(_0x1a8d8c,null))[_0x6753('0x42')](handleError(_0x1a8d8c,null));};exports[_0x6753('0xa1')]=runReport;exports['query']=function(_0x57baef,_0x3ef642){var _0x39e44a=0xa;var _0x3830a8=[_0x6753('0x83'),_0x6753('0x53'),_0x6753('0x54'),_0x6753('0x55')];var _0x1537ef={'SUM':'SUM(%s)','COUNT':_0x6753('0x56'),'COUNT DISTINCT':_0x6753('0x57'),'MAX':_0x6753('0x58'),'MIN':_0x6753('0x59'),'AVG':_0x6753('0x85'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x6753('0x5b')};var _0x5b1453={'SEC_TO_TIME':_0x6753('0xa2'),'DATE':'DATE(%s)','HOUR':_0x6753('0x87'),'ROUND':_0x6753('0x5d'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x541fbb=function(_0x149829){return!_[_0x6753('0x5f')]([_0x6753('0x60'),'IS\x20NOT\x20NULL',_0x6753('0x61'),_0x6753('0x62')],_0x149829);};var _0x3ddf4c=function(_0x2bafa0){if(!_0x2bafa0||!_0x2bafa0[_0x6753('0x63')][_0x6753('0x34')]){return'';}for(var _0x918a6c='(',_0x56fa52=0x0;_0x56fa52<_0x2bafa0[_0x6753('0x63')][_0x6753('0x34')];_0x56fa52+=0x1){_0x56fa52>0x0&&(_0x918a6c+='\x20'+_0x2bafa0[_0x6753('0x64')]+'\x20');_0x918a6c+=_0x2bafa0[_0x6753('0x63')][_0x56fa52][_0x6753('0x65')]?_0x3ddf4c(_0x2bafa0['rules'][_0x56fa52]['group']):_0x2bafa0[_0x6753('0x63')][_0x56fa52][_0x6753('0x66')]+'\x20'+_0x2bafa0[_0x6753('0x63')][_0x56fa52][_0x6753('0x88')]+(_0x541fbb(_0x2bafa0['rules'][_0x56fa52][_0x6753('0x88')])?'\x20'+_0x2bafa0[_0x6753('0x63')][_0x56fa52][_0x6753('0x67')]:'');}return _0x918a6c+')';};var _0x1bc2e0={'where':{'id':_0x57baef[_0x6753('0x44')]['id']}},_0x1e2104,_0x43afc3,_0x512b86,_0x41e6cf,_0x5ae31d;_0x1bc2e0=_[_0x6753('0x3b')]({},_0x1bc2e0,_0x57baef['options']);return db[_0x6753('0x2b')][_0x6753('0x47')](_0x1bc2e0)['then'](function(_0xf5e0c9){if(_0xf5e0c9){_0x1e2104=_0xf5e0c9;return _0xf5e0c9[_0x6753('0x68')]();}return null;})[_0x6753('0x24')](function(_0xdc49cb){if(_0xdc49cb){if(!_0xdc49cb['length']){throw new db[(_0x6753('0x89'))][(_0x6753('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x43afc3=_0xdc49cb;return db[_0x6753('0x8b')][_0x6753('0x40')]({'raw':!![]});}return null;})['then'](function(_0x1e05e4){if(_0x1e05e4){_0x512b86=_['keyBy'](_0x1e05e4,'id');var _0x1a36b4;var _0x165555=squel[_0x6753('0x9e')]();_0x165555[_0x6753('0x6b')](_0x1e2104[_0x6753('0x6c')]);for(var _0x58bfe3=0x0;_0x58bfe3<_0x43afc3['length'];_0x58bfe3+=0x1){_0x1a36b4=_0x43afc3[_0x58bfe3][_0x6753('0x6d')]?_0x512b86[_0x43afc3[_0x58bfe3][_0x6753('0x6d')]][_0x6753('0x6e')]:_0x43afc3[_0x58bfe3]['field'];_0x1a36b4=_0x43afc3[_0x58bfe3][_0x6753('0x6f')]?_['replace'](_0x1537ef[_0x43afc3[_0x58bfe3][_0x6753('0x6f')]],'%s',_0x1a36b4):_0x1a36b4;_0x1a36b4=_0x43afc3[_0x58bfe3][_0x6753('0x79')]?_[_0x6753('0x70')](_0x5b1453[_0x43afc3[_0x58bfe3][_0x6753('0x79')]],'%s',_0x1a36b4):_0x1a36b4;if(_0x43afc3[_0x58bfe3][_0x6753('0x71')]){_0x165555[_0x6753('0x65')](_0x1a36b4);}_0x43afc3[_0x58bfe3][_0x6753('0x72')]&&_0x165555[_0x6753('0x37')](_0x1a36b4,_0x43afc3[_0x58bfe3][_0x6753('0x72')]==='DESC'?![]:!![]);_0x165555[_0x6753('0x66')](_0x1a36b4,_0x43afc3[_0x58bfe3]['alias']||_0x1a36b4);}if(_0x1e2104[_0x6753('0x75')]){_0x1e2104[_0x6753('0x75')]=JSON['parse'](_0x1e2104[_0x6753('0x75')]);for(var _0x361a05=0x0;_0x361a05<_0x1e2104[_0x6753('0x75')][_0x6753('0x34')];_0x361a05+=0x1){if(_0x1e2104[_0x6753('0x75')][_0x361a05][_0x6753('0x2e')]&&_[_0x6753('0x5f')](_0x3830a8,_0x1e2104[_0x6753('0x75')][_0x361a05][_0x6753('0x2e')])&&_0x1e2104[_0x6753('0x75')][_0x361a05][_0x6753('0x77')]&&_0x1e2104[_0x6753('0x75')][_0x361a05]['foreignTable']&&_0x1e2104[_0x6753('0x75')][_0x361a05]['foreignKey']){_0x165555[_0x1e2104[_0x6753('0x75')][_0x361a05][_0x6753('0x2e')]](_0x1e2104[_0x6753('0x75')][_0x361a05][_0x6753('0x78')],null,util[_0x6753('0x79')](_0x6753('0x7a'),_0x1e2104[_0x6753('0x6c')],_0x1e2104[_0x6753('0x75')][_0x361a05][_0x6753('0x77')],_0x1e2104['joins'][_0x361a05][_0x6753('0x78')],_0x1e2104[_0x6753('0x75')][_0x361a05][_0x6753('0x7b')]));}}}if(_0x1e2104[_0x6753('0x7c')]){_0x1e2104['conditions']=JSON[_0x6753('0x76')](_0x1e2104['conditions']);_0x165555['where'](_0x3ddf4c(_0x1e2104['conditions']['group']));}_0x5ae31d=_0x165555[_0x6753('0x7d')]();_0x165555[_0x6753('0x1f')](_0x39e44a);_0x165555[_0x6753('0x1e')](0x0);logger[_0x6753('0x7e')](_0x6753('0xa3'),_0x165555[_0x6753('0x7f')]());return db[_0x6753('0x80')][_0x6753('0x2f')](_0x165555[_0x6753('0x7f')](),{'type':db[_0x6753('0x80')][_0x6753('0x81')]['SELECT']});}})[_0x6753('0x24')](function(){return{'sql':_0x5ae31d[_0x6753('0x7f')]()};})[_0x6753('0x24')](respondWithResult(_0x3ef642,null))[_0x6753('0x42')](handleError(_0x3ef642,null));};