beb4121fb5b03a83ab223779c4783d83ef05f37f
[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 _0xa847=['sequelize','SELECT','MIN(%s)','HOUR(%s)','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','select','alias','%s.%s\x20=\x20%s.%s','toString','QueryTypes','No\x20available\x20data','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','../../components/export/','../../files/reports','savename','countTable','run','runReport','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','end','status','json','count','offset','limit','set','Content-Range','reject','update','then','destroy','get','CustomReports','UserProfileResource','error','stack','name','index','map','AnalyticCustomReport','rawAttributes','fieldName','key','model','filters','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','userProfileId','autoAssociation','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','MAX(%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)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','AnalyticMetric','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','joins','parse','parentKey','foreignTable','foreignKey','conditions','clone','debug','Limited\x20Query:'];(function(_0x333662,_0x4c4a80){var _0x509faa=function(_0x173f4e){while(--_0x173f4e){_0x333662['push'](_0x333662['shift']());}};_0x509faa(++_0x4c4a80);}(_0xa847,0xcb));var _0x7a84=function(_0xb6e95c,_0x57fe74){_0xb6e95c=_0xb6e95c-0x0;var _0x466421=_0xa847[_0xb6e95c];return _0x466421;};'use strict';var pdf=require(_0x7a84('0x0'));var emlformat=require(_0x7a84('0x1'));var rimraf=require(_0x7a84('0x2'));var zipdir=require(_0x7a84('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7a84('0x4'));var moment=require(_0x7a84('0x5'));var BPromise=require(_0x7a84('0x6'));var Mustache=require(_0x7a84('0x7'));var util=require('util');var path=require(_0x7a84('0x8'));var sox=require('sox');var csv=require(_0x7a84('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x7a84('0xa'));var squel=require(_0x7a84('0xb'));var crypto=require(_0x7a84('0xc'));var jsforce=require(_0x7a84('0xd'));var deskjs=require(_0x7a84('0xe'));var toCsv=require(_0x7a84('0x9'));var querystring=require(_0x7a84('0xf'));var Papa=require(_0x7a84('0x10'));var Redis=require(_0x7a84('0x11'));var authService=require(_0x7a84('0x12'));var qs=require(_0x7a84('0x13'));var as=require(_0x7a84('0x14'));var hardwareService=require(_0x7a84('0x15'));var logger=require(_0x7a84('0x16'))('api');var utils=require(_0x7a84('0x17'));var config=require(_0x7a84('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x323000,_0x407c1d){_0x407c1d=_0x407c1d||0xcc;return function(_0x586181){if(_0x586181){return _0x323000[_0x7a84('0x19')](_0x407c1d);}return _0x323000['status'](_0x407c1d)[_0x7a84('0x1a')]();};}function respondWithResult(_0x5232a4,_0x5f037c){_0x5f037c=_0x5f037c||0xc8;return function(_0x54ee0a){if(_0x54ee0a){return _0x5232a4[_0x7a84('0x1b')](_0x5f037c)[_0x7a84('0x1c')](_0x54ee0a);}};}function respondWithFilteredResult(_0x36184c,_0x5e70b5){return function(_0xdb1266){if(_0xdb1266){var _0x395f04=_0xdb1266[_0x7a84('0x1d')],_0x48c162=_0x5e70b5[_0x7a84('0x1e')],_0x4bfdeb=_0x5e70b5['offset']+_0x5e70b5[_0x7a84('0x1f')],_0x5adb04;if(_0x4bfdeb>=_0x395f04){_0x4bfdeb=_0x395f04;_0x5adb04=0xc8;}else{_0x5adb04=0xce;}_0x36184c['status'](_0x5adb04);return _0x36184c[_0x7a84('0x20')](_0x7a84('0x21'),_0x48c162+'-'+_0x4bfdeb+'/'+_0x395f04)['json'](_0xdb1266);}return null;};}function patchUpdates(_0x25af03){return function(_0xbc0963){try{jsonpatch['apply'](_0xbc0963,_0x25af03,!![]);}catch(_0x334ed7){return BPromise[_0x7a84('0x22')](_0x334ed7);}return _0xbc0963['save']();};}function saveUpdates(_0xe479df,_0x2d2ee5){return function(_0x202425){if(_0x202425){return _0x202425[_0x7a84('0x23')](_0xe479df)[_0x7a84('0x24')](function(_0x36a39d){return _0x36a39d;});}return null;};}function removeEntity(_0x2e1c8c,_0x12bd51){return function(_0x1331bd){if(_0x1331bd){return _0x1331bd[_0x7a84('0x25')]()['then'](function(){var _0x43f8c1=_0x1331bd[_0x7a84('0x26')]({'plain':!![]});var _0x71d0c8=_0x7a84('0x27');return db[_0x7a84('0x28')]['destroy']({'where':{'type':_0x71d0c8,'resourceId':_0x43f8c1['id']}})[_0x7a84('0x24')](function(){return _0x1331bd;});})['then'](function(){_0x2e1c8c['status'](0xcc)[_0x7a84('0x1a')]();});}};}function handleEntityNotFound(_0x45c4b4,_0x2c0f6e){return function(_0x568839){if(!_0x568839){_0x45c4b4[_0x7a84('0x19')](0x194);}return _0x568839;};}function handleError(_0x6262e6,_0x494a1c){_0x494a1c=_0x494a1c||0x1f4;return function(_0x48c95a){logger[_0x7a84('0x29')](_0x48c95a[_0x7a84('0x2a')]);if(_0x48c95a[_0x7a84('0x2b')]){delete _0x48c95a[_0x7a84('0x2b')];}_0x6262e6[_0x7a84('0x1b')](_0x494a1c)['send'](_0x48c95a);};}exports[_0x7a84('0x2c')]=function(_0x18b9fb,_0x1c2bb8){var _0x1aed03={},_0x1166d0={},_0x5b34ca={'count':0x0,'rows':[]};var _0x39639d=_[_0x7a84('0x2d')](db[_0x7a84('0x2e')][_0x7a84('0x2f')],function(_0x3704c0){return{'name':_0x3704c0[_0x7a84('0x30')],'type':_0x3704c0['type'][_0x7a84('0x31')]};});_0x1166d0[_0x7a84('0x32')]=_['map'](_0x39639d,_0x7a84('0x2b'));_0x1166d0['query']=_['keys'](_0x18b9fb['query']);_0x1166d0[_0x7a84('0x33')]=_['intersection'](_0x1166d0['model'],_0x1166d0[_0x7a84('0x34')]);_0x1aed03[_0x7a84('0x35')]=_[_0x7a84('0x36')](_0x1166d0[_0x7a84('0x32')],qs[_0x7a84('0x37')](_0x18b9fb['query'][_0x7a84('0x37')]));_0x1aed03[_0x7a84('0x35')]=_0x1aed03[_0x7a84('0x35')][_0x7a84('0x38')]?_0x1aed03[_0x7a84('0x35')]:_0x1166d0[_0x7a84('0x32')];if(!_0x18b9fb[_0x7a84('0x34')][_0x7a84('0x39')](_0x7a84('0x3a'))){_0x1aed03['limit']=qs['limit'](_0x18b9fb[_0x7a84('0x34')][_0x7a84('0x1f')]);_0x1aed03[_0x7a84('0x1e')]=qs[_0x7a84('0x1e')](_0x18b9fb[_0x7a84('0x34')][_0x7a84('0x1e')]);}_0x1aed03[_0x7a84('0x3b')]=qs[_0x7a84('0x3c')](_0x18b9fb['query']['sort']);_0x1aed03[_0x7a84('0x3d')]=qs[_0x7a84('0x33')](_[_0x7a84('0x3e')](_0x18b9fb['query'],_0x1166d0[_0x7a84('0x33')]));if(_0x18b9fb['query'][_0x7a84('0x3f')]){_0x1aed03['where']=_[_0x7a84('0x40')](_0x1aed03['where'],{'$or':_[_0x7a84('0x2d')](_0x39639d,function(_0x49917){if(_0x49917[_0x7a84('0x41')]!==_0x7a84('0x42')){var _0x144655={};_0x144655[_0x49917[_0x7a84('0x2b')]]={'$like':'%'+_0x18b9fb[_0x7a84('0x34')][_0x7a84('0x3f')]+'%'};return _0x144655;}})});}_0x1aed03=_[_0x7a84('0x40')]({},_0x1aed03,_0x18b9fb[_0x7a84('0x43')]);var _0x282995={'where':_0x1aed03[_0x7a84('0x3d')]};return db[_0x7a84('0x2e')][_0x7a84('0x1d')](_0x282995)[_0x7a84('0x24')](function(_0x4eb9c1){_0x5b34ca['count']=_0x4eb9c1;if(_0x18b9fb['query'][_0x7a84('0x44')]){_0x1aed03[_0x7a84('0x45')]=[{'all':!![]}];}return db[_0x7a84('0x2e')][_0x7a84('0x46')](_0x1aed03);})[_0x7a84('0x24')](function(_0x518035){_0x5b34ca[_0x7a84('0x47')]=_0x518035;return _0x5b34ca;})[_0x7a84('0x24')](respondWithFilteredResult(_0x1c2bb8,_0x1aed03))[_0x7a84('0x48')](handleError(_0x1c2bb8,null));};exports[_0x7a84('0x49')]=function(_0x25096c,_0xfd3a32){var _0x851d89={'raw':![],'where':{'id':_0x25096c[_0x7a84('0x4a')]['id']}},_0x5cff3c={};_0x5cff3c['model']=_[_0x7a84('0x4b')](db[_0x7a84('0x2e')][_0x7a84('0x2f')]);_0x5cff3c[_0x7a84('0x34')]=_['keys'](_0x25096c[_0x7a84('0x34')]);_0x5cff3c[_0x7a84('0x33')]=_[_0x7a84('0x36')](_0x5cff3c[_0x7a84('0x32')],_0x5cff3c['query']);_0x851d89[_0x7a84('0x35')]=_[_0x7a84('0x36')](_0x5cff3c['model'],qs[_0x7a84('0x37')](_0x25096c[_0x7a84('0x34')]['fields']));_0x851d89['attributes']=_0x851d89[_0x7a84('0x35')][_0x7a84('0x38')]?_0x851d89['attributes']:_0x5cff3c[_0x7a84('0x32')];if(_0x25096c[_0x7a84('0x34')][_0x7a84('0x44')]){_0x851d89['include']=[{'all':!![]}];}_0x851d89=_[_0x7a84('0x40')]({},_0x851d89,_0x25096c[_0x7a84('0x43')]);return db[_0x7a84('0x2e')][_0x7a84('0x4c')](_0x851d89)[_0x7a84('0x24')](handleEntityNotFound(_0xfd3a32,null))[_0x7a84('0x24')](respondWithResult(_0xfd3a32,null))[_0x7a84('0x48')](handleError(_0xfd3a32,null));};exports[_0x7a84('0x4d')]=function(_0x4742e6,_0x18128c){return db[_0x7a84('0x2e')][_0x7a84('0x4d')](_0x4742e6[_0x7a84('0x4e')],{})[_0x7a84('0x24')](function(_0x34b443){var _0x5a2f5d=_0x4742e6[_0x7a84('0x4f')]['get']({'plain':!![]});if(!_0x5a2f5d)throw new Error(_0x7a84('0x50'));if(_0x5a2f5d[_0x7a84('0x51')]==='user'){var _0x5bfcab=_0x34b443[_0x7a84('0x26')]({'plain':!![]});var _0x20a73e=_0x7a84('0x52');return db['UserProfileSection'][_0x7a84('0x4c')]({'where':{'name':_0x20a73e,'userProfileId':_0x5a2f5d[_0x7a84('0x53')]},'raw':!![]})[_0x7a84('0x24')](function(_0x31c6ca){if(_0x31c6ca&&_0x31c6ca[_0x7a84('0x54')]===0x0){return db[_0x7a84('0x28')][_0x7a84('0x4d')]({'name':_0x5bfcab['name'],'resourceId':_0x5bfcab['id'],'type':'CustomReports','sectionId':_0x31c6ca['id']},{})['then'](function(){return _0x34b443;});}else{return _0x34b443;}})[_0x7a84('0x48')](function(_0x40171e){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x40171e);throw _0x40171e;});}return _0x34b443;})[_0x7a84('0x24')](respondWithResult(_0x18128c,0xc9))['catch'](handleError(_0x18128c,null));};exports['update']=function(_0x4efe4e,_0xd55a96){if(_0x4efe4e[_0x7a84('0x4e')]['id']){delete _0x4efe4e[_0x7a84('0x4e')]['id'];}return db[_0x7a84('0x2e')][_0x7a84('0x4c')]({'where':{'id':_0x4efe4e[_0x7a84('0x4a')]['id']}})[_0x7a84('0x24')](handleEntityNotFound(_0xd55a96,null))['then'](saveUpdates(_0x4efe4e[_0x7a84('0x4e')],null))['then'](respondWithResult(_0xd55a96,null))[_0x7a84('0x48')](handleError(_0xd55a96,null));};exports[_0x7a84('0x25')]=function(_0x23c272,_0x417fbd){return db[_0x7a84('0x2e')][_0x7a84('0x4c')]({'where':{'id':_0x23c272[_0x7a84('0x4a')]['id']}})['then'](handleEntityNotFound(_0x417fbd,null))[_0x7a84('0x24')](removeEntity(_0x417fbd,null))[_0x7a84('0x48')](handleError(_0x417fbd,null));};exports[_0x7a84('0x55')]=function(_0x8dced3,_0x1d57db){var _0x28f8f2=0xa;var _0x45828e=[_0x7a84('0x56'),_0x7a84('0x57'),_0x7a84('0x58'),_0x7a84('0x59')];var _0x50f9fa={'SUM':_0x7a84('0x5a'),'COUNT':_0x7a84('0x5b'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x7a84('0x5c'),'MIN':'MIN(%s)','AVG':_0x7a84('0x5d'),'GROUP_CONCAT':_0x7a84('0x5e'),'GROUP_CONCAT ASC':_0x7a84('0x5f'),'GROUP_CONCAT DESC':_0x7a84('0x60')};var _0x2add8f={'SEC_TO_TIME':_0x7a84('0x61'),'DATE':_0x7a84('0x62'),'HOUR':'HOUR(%s)','ROUND':_0x7a84('0x63'),'UNIX_TIMESTAMP':_0x7a84('0x64')};var _0x6f73b4=function(_0x28db37){return!_[_0x7a84('0x65')]([_0x7a84('0x66'),_0x7a84('0x67'),_0x7a84('0x68'),_0x7a84('0x69')],_0x28db37);};var _0x3db1b8=function(_0x433fbf){if(!_0x433fbf||!_0x433fbf[_0x7a84('0x6a')]['length']){return'';}for(var _0x44ee70='(',_0x4c006a=0x0;_0x4c006a<_0x433fbf[_0x7a84('0x6a')][_0x7a84('0x38')];_0x4c006a+=0x1){_0x4c006a>0x0&&(_0x44ee70+='\x20'+_0x433fbf[_0x7a84('0x6b')]+'\x20');_0x44ee70+=_0x433fbf[_0x7a84('0x6a')][_0x4c006a][_0x7a84('0x6c')]?_0x3db1b8(_0x433fbf[_0x7a84('0x6a')][_0x4c006a][_0x7a84('0x6c')]):_0x433fbf['rules'][_0x4c006a][_0x7a84('0x6d')]+'\x20'+_0x433fbf['rules'][_0x4c006a][_0x7a84('0x6e')]+(_0x6f73b4(_0x433fbf[_0x7a84('0x6a')][_0x4c006a][_0x7a84('0x6e')])?'\x20'+_0x433fbf[_0x7a84('0x6a')][_0x4c006a][_0x7a84('0x6f')]:'');}return _0x44ee70+')';};var _0x416793={'where':{'id':_0x8dced3[_0x7a84('0x4a')]['id']}},_0x59daeb,_0x184ceb,_0x4f8f1b,_0x59e140,_0x596efb;_0x416793=_['merge']({},_0x416793,_0x8dced3[_0x7a84('0x43')]);return db['AnalyticCustomReport'][_0x7a84('0x4c')](_0x416793)[_0x7a84('0x24')](function(_0xe19a86){if(_0xe19a86){_0x59daeb=_0xe19a86;return _0xe19a86[_0x7a84('0x70')]();}return null;})[_0x7a84('0x24')](function(_0x4c9c6a){if(_0x4c9c6a){if(!_0x4c9c6a[_0x7a84('0x38')]){throw new db[(_0x7a84('0x71'))][(_0x7a84('0x72'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x184ceb=_0x4c9c6a;return db[_0x7a84('0x73')][_0x7a84('0x46')]({'raw':!![]});}return null;})['then'](function(_0x361caa){if(_0x361caa){_0x4f8f1b=_['keyBy'](_0x361caa,'id');var _0x303be0;var _0x20531c=squel['select']();_0x20531c[_0x7a84('0x74')](_0x59daeb[_0x7a84('0x75')]);for(var _0x500e5e=0x0;_0x500e5e<_0x184ceb[_0x7a84('0x38')];_0x500e5e+=0x1){_0x303be0=_0x184ceb[_0x500e5e][_0x7a84('0x76')]?_0x4f8f1b[_0x184ceb[_0x500e5e][_0x7a84('0x76')]][_0x7a84('0x77')]:_0x184ceb[_0x500e5e][_0x7a84('0x6d')];_0x303be0=_0x184ceb[_0x500e5e][_0x7a84('0x78')]?_[_0x7a84('0x79')](_0x50f9fa[_0x184ceb[_0x500e5e][_0x7a84('0x78')]],'%s',_0x303be0):_0x303be0;_0x303be0=_0x184ceb[_0x500e5e][_0x7a84('0x7a')]?_['replace'](_0x2add8f[_0x184ceb[_0x500e5e]['format']],'%s',_0x303be0):_0x303be0;if(_0x184ceb[_0x500e5e][_0x7a84('0x7b')]){_0x20531c[_0x7a84('0x6c')](_0x303be0);}_0x184ceb[_0x500e5e][_0x7a84('0x7c')]&&_0x20531c[_0x7a84('0x3b')](_0x303be0,_0x184ceb[_0x500e5e][_0x7a84('0x7c')]===_0x7a84('0x7d')?![]:!![]);_0x20531c[_0x7a84('0x6d')](_0x303be0,_0x184ceb[_0x500e5e]['alias']||_0x303be0);}if(_0x59daeb[_0x7a84('0x7e')]){_0x59daeb[_0x7a84('0x7e')]=JSON[_0x7a84('0x7f')](_0x59daeb[_0x7a84('0x7e')]);for(var _0x22e035=0x0;_0x22e035<_0x59daeb[_0x7a84('0x7e')][_0x7a84('0x38')];_0x22e035+=0x1){if(_0x59daeb['joins'][_0x22e035]['type']&&_['includes'](_0x45828e,_0x59daeb[_0x7a84('0x7e')][_0x22e035][_0x7a84('0x41')])&&_0x59daeb[_0x7a84('0x7e')][_0x22e035][_0x7a84('0x80')]&&_0x59daeb[_0x7a84('0x7e')][_0x22e035][_0x7a84('0x81')]&&_0x59daeb[_0x7a84('0x7e')][_0x22e035]['foreignKey']){_0x20531c[_0x59daeb[_0x7a84('0x7e')][_0x22e035]['type']](_0x59daeb[_0x7a84('0x7e')][_0x22e035][_0x7a84('0x81')],null,util[_0x7a84('0x7a')]('%s.%s\x20=\x20%s.%s',_0x59daeb[_0x7a84('0x75')],_0x59daeb[_0x7a84('0x7e')][_0x22e035][_0x7a84('0x80')],_0x59daeb[_0x7a84('0x7e')][_0x22e035][_0x7a84('0x81')],_0x59daeb['joins'][_0x22e035][_0x7a84('0x82')]));}}}if(_0x59daeb[_0x7a84('0x83')]){_0x59daeb['conditions']=JSON[_0x7a84('0x7f')](_0x59daeb[_0x7a84('0x83')]);_0x20531c[_0x7a84('0x3d')](_0x3db1b8(_0x59daeb[_0x7a84('0x83')][_0x7a84('0x6c')]));}_0x596efb=_0x20531c[_0x7a84('0x84')]();_0x20531c['limit'](_0x28f8f2);_0x20531c[_0x7a84('0x1e')](0x0);logger[_0x7a84('0x85')](_0x7a84('0x86'),_0x20531c['toString']());return db[_0x7a84('0x87')][_0x7a84('0x34')](_0x20531c['toString'](),{'type':db[_0x7a84('0x87')]['QueryTypes'][_0x7a84('0x88')]});}})[_0x7a84('0x24')](respondWithResult(_0x1d57db,null))['catch'](handleError(_0x1d57db,null));};function runReport(_0xe687d7,_0x22574e,_0xf112bb){var _0x383125=_0x22574e['name'];var _0x197675=0xa;var _0x5ebcde=[_0x7a84('0x56'),_0x7a84('0x57'),_0x7a84('0x58'),'cross_join'];var _0x175b81={'SUM':_0x7a84('0x5a'),'COUNT':_0x7a84('0x5b'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x7a84('0x5c'),'MIN':_0x7a84('0x89'),'AVG':_0x7a84('0x5d'),'GROUP_CONCAT':_0x7a84('0x5e'),'GROUP_CONCAT ASC':_0x7a84('0x5f'),'GROUP_CONCAT DESC':_0x7a84('0x60')};var _0x30c5c3={'SEC_TO_TIME':_0x7a84('0x61'),'DATE':_0x7a84('0x62'),'HOUR':_0x7a84('0x8a'),'ROUND':_0x7a84('0x63'),'UNIX_TIMESTAMP':_0x7a84('0x64')};var _0x15731e=function(_0x222e5b){return!_[_0x7a84('0x65')](['IS\x20NULL',_0x7a84('0x67'),'IS\x20EMPTY',_0x7a84('0x69')],_0x222e5b);};var _0x1cc045=function(_0x42abae){if(!_0x42abae||!_0x42abae[_0x7a84('0x6a')][_0x7a84('0x38')]){return'';}for(var _0x4f345b='(',_0x505922=0x0;_0x505922<_0x42abae[_0x7a84('0x6a')][_0x7a84('0x38')];_0x505922+=0x1){_0x505922>0x0&&(_0x4f345b+='\x20'+_0x42abae['operator']+'\x20');_0x4f345b+=_0x42abae['rules'][_0x505922][_0x7a84('0x6c')]?_0x1cc045(_0x42abae[_0x7a84('0x6a')][_0x505922][_0x7a84('0x6c')]):_0x42abae[_0x7a84('0x6a')][_0x505922]['field']+'\x20'+_0x42abae[_0x7a84('0x6a')][_0x505922]['condition']+(_0x15731e(_0x42abae[_0x7a84('0x6a')][_0x505922][_0x7a84('0x6e')])?'\x20'+_0x42abae['rules'][_0x505922][_0x7a84('0x6f')]:'');}return _0x4f345b+')';};var _0x4deba6={'where':{'id':_0xe687d7['id']}},_0x54428b,_0xc1bb8,_0xc84c70,_0x5681f6,_0x82aa5d;_0x4deba6=_[_0x7a84('0x40')]({},_0x4deba6,_0xf112bb);return db[_0x7a84('0x2e')]['find'](_0x4deba6)[_0x7a84('0x24')](function(_0x4c76ae){if(_0x4c76ae){_0x54428b=_0x4c76ae;return _0x4c76ae[_0x7a84('0x70')]();}return null;})[_0x7a84('0x24')](function(_0x5c6f54){if(_0x5c6f54){if(!_0x5c6f54['length']){throw new db['Sequelize'][(_0x7a84('0x72'))](_0x7a84('0x8b'),0x193);}_0xc1bb8=_0x5c6f54;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})['then'](function(_0x2c8f32){if(_0x2c8f32){_0xc84c70=_[_0x7a84('0x8c')](_0x2c8f32,'id');var _0x37b79c;var _0x5269ee=squel[_0x7a84('0x8d')]();_0x5269ee['from'](_0x54428b[_0x7a84('0x75')]);for(var _0x2ccf3f=0x0;_0x2ccf3f<_0xc1bb8[_0x7a84('0x38')];_0x2ccf3f+=0x1){_0x37b79c=_0xc1bb8[_0x2ccf3f]['MetricId']?_0xc84c70[_0xc1bb8[_0x2ccf3f][_0x7a84('0x76')]]['metric']:_0xc1bb8[_0x2ccf3f][_0x7a84('0x6d')];_0x37b79c=_0xc1bb8[_0x2ccf3f][_0x7a84('0x78')]?_['replace'](_0x175b81[_0xc1bb8[_0x2ccf3f][_0x7a84('0x78')]],'%s',_0x37b79c):_0x37b79c;_0x37b79c=_0xc1bb8[_0x2ccf3f][_0x7a84('0x7a')]?_[_0x7a84('0x79')](_0x30c5c3[_0xc1bb8[_0x2ccf3f][_0x7a84('0x7a')]],'%s',_0x37b79c):_0x37b79c;if(_0xc1bb8[_0x2ccf3f][_0x7a84('0x7b')]){_0x5269ee[_0x7a84('0x6c')](_0x37b79c);}_0xc1bb8[_0x2ccf3f][_0x7a84('0x7c')]&&_0x5269ee[_0x7a84('0x3b')](_0x37b79c,_0xc1bb8[_0x2ccf3f][_0x7a84('0x7c')]==='DESC'?![]:!![]);_0x5269ee[_0x7a84('0x6d')](_0x37b79c,_0xc1bb8[_0x2ccf3f][_0x7a84('0x8e')]||_0x37b79c);}if(_0x54428b[_0x7a84('0x7e')]){_0x54428b['joins']=JSON[_0x7a84('0x7f')](_0x54428b[_0x7a84('0x7e')]);for(var _0x54eb99=0x0;_0x54eb99<_0x54428b[_0x7a84('0x7e')]['length'];_0x54eb99+=0x1){if(_0x54428b[_0x7a84('0x7e')][_0x54eb99][_0x7a84('0x41')]&&_[_0x7a84('0x65')](_0x5ebcde,_0x54428b[_0x7a84('0x7e')][_0x54eb99][_0x7a84('0x41')])&&_0x54428b[_0x7a84('0x7e')][_0x54eb99][_0x7a84('0x80')]&&_0x54428b['joins'][_0x54eb99][_0x7a84('0x81')]&&_0x54428b[_0x7a84('0x7e')][_0x54eb99]['foreignKey']){_0x5269ee[_0x54428b['joins'][_0x54eb99][_0x7a84('0x41')]](_0x54428b[_0x7a84('0x7e')][_0x54eb99][_0x7a84('0x81')],null,util[_0x7a84('0x7a')](_0x7a84('0x8f'),_0x54428b['table'],_0x54428b[_0x7a84('0x7e')][_0x54eb99][_0x7a84('0x80')],_0x54428b[_0x7a84('0x7e')][_0x54eb99][_0x7a84('0x81')],_0x54428b[_0x7a84('0x7e')][_0x54eb99][_0x7a84('0x82')]));}}}if(_0x54428b[_0x7a84('0x83')]){_0x54428b[_0x7a84('0x83')]=JSON['parse'](_0x54428b[_0x7a84('0x83')]);_0x5269ee['where'](_0x1cc045(_0x54428b[_0x7a84('0x83')][_0x7a84('0x6c')]));}_0x82aa5d=_0x5269ee[_0x7a84('0x84')]();_0x5269ee['limit'](_0x197675);_0x5269ee['offset'](0x0);logger[_0x7a84('0x85')](_0x7a84('0x86'),_0x5269ee['toString']());return db[_0x7a84('0x87')]['query'](_0x5269ee[_0x7a84('0x90')](),{'type':db[_0x7a84('0x87')][_0x7a84('0x91')][_0x7a84('0x88')]});}})[_0x7a84('0x24')](function(_0x1f50e7){if(!_0x1f50e7[_0x7a84('0x38')]){throw new db[(_0x7a84('0x71'))][(_0x7a84('0x72'))](_0x7a84('0x92'),0xcc);}if(_0x22574e[_0x7a84('0x93')]===_0x7a84('0x94')){return null;}var _0xc3460b=_[_0x7a84('0x40')](_0x22574e,{'name':_0x22574e[_0x7a84('0x95')]||_0x22574e[_0x7a84('0x2b')]||_0x54428b['name'],'basename':_0x383125,'savename':util[_0x7a84('0x7a')](_0x7a84('0x96'),_0x22574e[_0x7a84('0x2b')]||_0x54428b[_0x7a84('0x2b')],require(_0x7a84('0x97'))[_0x7a84('0x98')](0x4),_0x22574e[_0x7a84('0x93')]||_0x7a84('0x99')),'reportId':_0x54428b['id'],'reportType':_0x7a84('0x9a')});return db[_0x7a84('0x9b')][_0x7a84('0x4d')](_0xc3460b,{'raw':!![]});})[_0x7a84('0x24')](function(_0x40e96f){if(_0x54428b['table']===_0x7a84('0x9c')){_0x82aa5d[_0x7a84('0x3d')](_0x54428b[_0x7a84('0x75')]+_0x7a84('0x9d'),_0x22574e[_0x7a84('0x9e')],_0x22574e['endDate']);}else{_0x82aa5d[_0x7a84('0x3d')](_0x54428b[_0x7a84('0x75')]+_0x7a84('0x9f'),_0x22574e[_0x7a84('0x9e')],_0x22574e[_0x7a84('0xa0')]);}if(_0x40e96f){logger[_0x7a84('0xa1')](_0x7a84('0xa2'),_0x82aa5d['toString']());require('child_process')['fork'](path[_0x7a84('0x56')](__dirname,_0x7a84('0xa3'),_0x40e96f['output']),[_0x40e96f['id'],_0x82aa5d[_0x7a84('0x90')](),path[_0x7a84('0x56')](__dirname,_0x7a84('0xa4'),_0x40e96f[_0x7a84('0xa5')]),_0x383125]);return _0x40e96f;}else{var _0x3e5c40=squel['select']();_0x3e5c40['from']('('+_0x82aa5d[_0x7a84('0x90')]()+')',_0x7a84('0xa6'));_0x3e5c40[_0x7a84('0x6d')]('COUNT(*)',_0x7a84('0x1d'));_0x82aa5d[_0x7a84('0x1f')](_0x22574e['limit']||_0x197675);_0x82aa5d[_0x7a84('0x1e')](_0x22574e[_0x7a84('0x1e')]||0x0);return db[_0x7a84('0x87')]['query'](_0x3e5c40[_0x7a84('0x90')](),{'type':db[_0x7a84('0x87')][_0x7a84('0x91')][_0x7a84('0x88')]})[_0x7a84('0x24')](function(_0xb90416){if(!_0xb90416[_0x7a84('0x38')]){_0x5681f6=0x0;}else{_0x5681f6=_0xb90416[0x0]['count']||0x0;}return db[_0x7a84('0x87')]['query'](_0x82aa5d[_0x7a84('0x90')](),{'type':db[_0x7a84('0x87')][_0x7a84('0x91')]['SELECT']});})[_0x7a84('0x24')](function(_0x3a96fd){return{'rows':_0x3a96fd||[],'count':_0x5681f6};});}});}exports[_0x7a84('0xa7')]=function(_0x2a1cae,_0x42b5f5){return runReport(_0x2a1cae['params'],_0x2a1cae[_0x7a84('0x34')],_0x2a1cae['options'])[_0x7a84('0x24')](respondWithResult(_0x42b5f5,null))['catch'](handleError(_0x42b5f5,null));};exports[_0x7a84('0xa8')]=runReport;exports[_0x7a84('0x34')]=function(_0x7f4e97,_0x554e1b){var _0x251f4c=0xa;var _0x1dba77=[_0x7a84('0x56'),_0x7a84('0x57'),_0x7a84('0x58'),_0x7a84('0x59')];var _0x40e1c7={'SUM':_0x7a84('0x5a'),'COUNT':_0x7a84('0x5b'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x7a84('0x5c'),'MIN':_0x7a84('0x89'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x7a84('0x5e'),'GROUP_CONCAT ASC':_0x7a84('0x5f'),'GROUP_CONCAT DESC':_0x7a84('0x60')};var _0xac24b0={'SEC_TO_TIME':_0x7a84('0x61'),'DATE':_0x7a84('0x62'),'HOUR':_0x7a84('0x8a'),'ROUND':_0x7a84('0x63'),'UNIX_TIMESTAMP':_0x7a84('0x64')};var _0x32af50=function(_0x113455){return!_['includes']([_0x7a84('0x66'),_0x7a84('0x67'),_0x7a84('0x68'),_0x7a84('0x69')],_0x113455);};var _0x470b47=function(_0xf2ef44){if(!_0xf2ef44||!_0xf2ef44[_0x7a84('0x6a')][_0x7a84('0x38')]){return'';}for(var _0x35b266='(',_0xc60f80=0x0;_0xc60f80<_0xf2ef44[_0x7a84('0x6a')][_0x7a84('0x38')];_0xc60f80+=0x1){_0xc60f80>0x0&&(_0x35b266+='\x20'+_0xf2ef44[_0x7a84('0x6b')]+'\x20');_0x35b266+=_0xf2ef44['rules'][_0xc60f80]['group']?_0x470b47(_0xf2ef44[_0x7a84('0x6a')][_0xc60f80]['group']):_0xf2ef44[_0x7a84('0x6a')][_0xc60f80][_0x7a84('0x6d')]+'\x20'+_0xf2ef44[_0x7a84('0x6a')][_0xc60f80][_0x7a84('0x6e')]+(_0x32af50(_0xf2ef44['rules'][_0xc60f80][_0x7a84('0x6e')])?'\x20'+_0xf2ef44['rules'][_0xc60f80][_0x7a84('0x6f')]:'');}return _0x35b266+')';};var _0x1096b2={'where':{'id':_0x7f4e97[_0x7a84('0x4a')]['id']}},_0x275e61,_0x2adff8,_0x38fa7b,_0x2b55d1,_0x3ebc64;_0x1096b2=_['merge']({},_0x1096b2,_0x7f4e97['options']);return db[_0x7a84('0x2e')][_0x7a84('0x4c')](_0x1096b2)[_0x7a84('0x24')](function(_0x2f7c3f){if(_0x2f7c3f){_0x275e61=_0x2f7c3f;return _0x2f7c3f[_0x7a84('0x70')]();}return null;})[_0x7a84('0x24')](function(_0x44958b){if(_0x44958b){if(!_0x44958b['length']){throw new db[(_0x7a84('0x71'))][(_0x7a84('0x72'))](_0x7a84('0x8b'),0x193);}_0x2adff8=_0x44958b;return db['AnalyticMetric'][_0x7a84('0x46')]({'raw':!![]});}return null;})[_0x7a84('0x24')](function(_0x4fa384){if(_0x4fa384){_0x38fa7b=_['keyBy'](_0x4fa384,'id');var _0x53ff0d;var _0x283cc4=squel['select']();_0x283cc4[_0x7a84('0x74')](_0x275e61[_0x7a84('0x75')]);for(var _0x411f34=0x0;_0x411f34<_0x2adff8[_0x7a84('0x38')];_0x411f34+=0x1){_0x53ff0d=_0x2adff8[_0x411f34][_0x7a84('0x76')]?_0x38fa7b[_0x2adff8[_0x411f34]['MetricId']]['metric']:_0x2adff8[_0x411f34][_0x7a84('0x6d')];_0x53ff0d=_0x2adff8[_0x411f34][_0x7a84('0x78')]?_[_0x7a84('0x79')](_0x40e1c7[_0x2adff8[_0x411f34]['function']],'%s',_0x53ff0d):_0x53ff0d;_0x53ff0d=_0x2adff8[_0x411f34][_0x7a84('0x7a')]?_['replace'](_0xac24b0[_0x2adff8[_0x411f34][_0x7a84('0x7a')]],'%s',_0x53ff0d):_0x53ff0d;if(_0x2adff8[_0x411f34][_0x7a84('0x7b')]){_0x283cc4[_0x7a84('0x6c')](_0x53ff0d);}_0x2adff8[_0x411f34][_0x7a84('0x7c')]&&_0x283cc4[_0x7a84('0x3b')](_0x53ff0d,_0x2adff8[_0x411f34][_0x7a84('0x7c')]==='DESC'?![]:!![]);_0x283cc4[_0x7a84('0x6d')](_0x53ff0d,_0x2adff8[_0x411f34][_0x7a84('0x8e')]||_0x53ff0d);}if(_0x275e61['joins']){_0x275e61[_0x7a84('0x7e')]=JSON[_0x7a84('0x7f')](_0x275e61[_0x7a84('0x7e')]);for(var _0x142b8b=0x0;_0x142b8b<_0x275e61[_0x7a84('0x7e')][_0x7a84('0x38')];_0x142b8b+=0x1){if(_0x275e61[_0x7a84('0x7e')][_0x142b8b]['type']&&_['includes'](_0x1dba77,_0x275e61[_0x7a84('0x7e')][_0x142b8b]['type'])&&_0x275e61[_0x7a84('0x7e')][_0x142b8b][_0x7a84('0x80')]&&_0x275e61[_0x7a84('0x7e')][_0x142b8b]['foreignTable']&&_0x275e61[_0x7a84('0x7e')][_0x142b8b][_0x7a84('0x82')]){_0x283cc4[_0x275e61[_0x7a84('0x7e')][_0x142b8b][_0x7a84('0x41')]](_0x275e61[_0x7a84('0x7e')][_0x142b8b][_0x7a84('0x81')],null,util[_0x7a84('0x7a')](_0x7a84('0x8f'),_0x275e61['table'],_0x275e61[_0x7a84('0x7e')][_0x142b8b][_0x7a84('0x80')],_0x275e61['joins'][_0x142b8b][_0x7a84('0x81')],_0x275e61[_0x7a84('0x7e')][_0x142b8b][_0x7a84('0x82')]));}}}if(_0x275e61['conditions']){_0x275e61['conditions']=JSON[_0x7a84('0x7f')](_0x275e61['conditions']);_0x283cc4[_0x7a84('0x3d')](_0x470b47(_0x275e61['conditions'][_0x7a84('0x6c')]));}_0x3ebc64=_0x283cc4[_0x7a84('0x84')]();_0x283cc4['limit'](_0x251f4c);_0x283cc4[_0x7a84('0x1e')](0x0);logger[_0x7a84('0x85')](_0x7a84('0x86'),_0x283cc4[_0x7a84('0x90')]());return db[_0x7a84('0x87')][_0x7a84('0x34')](_0x283cc4[_0x7a84('0x90')](),{'type':db[_0x7a84('0x87')][_0x7a84('0x91')][_0x7a84('0x88')]});}})[_0x7a84('0x24')](function(){return{'sql':_0x3ebc64[_0x7a84('0x90')]()};})[_0x7a84('0x24')](respondWithResult(_0x554e1b,null))['catch'](handleError(_0x554e1b,null));};