Built motion from commit (unavailable).|2.5.9
[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 _0x417a=['SELECT','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','fork','../../files/reports','countTable','COUNT(*)','QueryTypes','run','runReport','SUM(%s)','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','get','CustomReports','UserProfileResource','error','stack','name','send','index','AnalyticCustomReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','map','VIRTUAL','options','includeAll','include','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','UserProfileSection','userProfileId','autoAssociation','join','left_join','right_join','cross_join','COUNT(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','field','condition','value','getFields','Sequelize','findAll','keyBy','select','from','MetricId','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','table','foreignKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','COUNT(DISTINCT\x20%s)','MAX(%s)','DATE(%s)','operator','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','metric'];(function(_0x334599,_0x4b1cfa){var _0x4cdff2=function(_0x297be7){while(--_0x297be7){_0x334599['push'](_0x334599['shift']());}};_0x4cdff2(++_0x4b1cfa);}(_0x417a,0xc3));var _0xa417=function(_0x385eb1,_0x497a94){_0x385eb1=_0x385eb1-0x0;var _0x5d40eb=_0x417a[_0x385eb1];return _0x5d40eb;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xa417('0x0'));var rimraf=require(_0xa417('0x1'));var zipdir=require(_0xa417('0x2'));var jsonpatch=require(_0xa417('0x3'));var rp=require(_0xa417('0x4'));var moment=require('moment');var BPromise=require(_0xa417('0x5'));var Mustache=require(_0xa417('0x6'));var util=require('util');var path=require(_0xa417('0x7'));var sox=require(_0xa417('0x8'));var csv=require(_0xa417('0x9'));var ejs=require(_0xa417('0xa'));var fs=require('fs');var _=require(_0xa417('0xb'));var squel=require(_0xa417('0xc'));var crypto=require(_0xa417('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xa417('0xe'));var toCsv=require(_0xa417('0x9'));var querystring=require('querystring');var Papa=require(_0xa417('0xf'));var Redis=require(_0xa417('0x10'));var authService=require(_0xa417('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xa417('0x12'));var hardwareService=require(_0xa417('0x13'));var logger=require(_0xa417('0x14'))(_0xa417('0x15'));var utils=require(_0xa417('0x16'));var config=require(_0xa417('0x17'));var licenseUtil=require(_0xa417('0x18'));var db=require(_0xa417('0x19'))['db'];var dbH=require(_0xa417('0x19'))[_0xa417('0x1a')];function respondWithStatusCode(_0x319975,_0xd1755c){_0xd1755c=_0xd1755c||0xcc;return function(_0x59af40){if(_0x59af40){return _0x319975[_0xa417('0x1b')](_0xd1755c);}return _0x319975[_0xa417('0x1c')](_0xd1755c)[_0xa417('0x1d')]();};}function respondWithResult(_0x42b23f,_0xe6d31b){_0xe6d31b=_0xe6d31b||0xc8;return function(_0xaf38a3){if(_0xaf38a3){return _0x42b23f[_0xa417('0x1c')](_0xe6d31b)[_0xa417('0x1e')](_0xaf38a3);}};}function respondWithFilteredResult(_0xa13a9,_0x410068){return function(_0x2fc01b){if(_0x2fc01b){var _0x14e67a=_0x2fc01b[_0xa417('0x1f')],_0x22d210=_0x410068[_0xa417('0x20')],_0x1807bc=_0x410068[_0xa417('0x20')]+_0x410068[_0xa417('0x21')],_0x40a8ca;if(_0x1807bc>=_0x14e67a){_0x1807bc=_0x14e67a;_0x40a8ca=0xc8;}else{_0x40a8ca=0xce;}_0xa13a9['status'](_0x40a8ca);return _0xa13a9[_0xa417('0x22')](_0xa417('0x23'),_0x22d210+'-'+_0x1807bc+'/'+_0x14e67a)[_0xa417('0x1e')](_0x2fc01b);}return null;};}function patchUpdates(_0x350078){return function(_0x381fb6){try{jsonpatch[_0xa417('0x24')](_0x381fb6,_0x350078,!![]);}catch(_0x4c0f5c){return BPromise['reject'](_0x4c0f5c);}return _0x381fb6[_0xa417('0x25')]();};}function saveUpdates(_0x44e6c1,_0x3f1bee){return function(_0x28e3ce){if(_0x28e3ce){return _0x28e3ce[_0xa417('0x26')](_0x44e6c1)[_0xa417('0x27')](function(_0x597a34){return _0x597a34;});}return null;};}function removeEntity(_0x518eb4,_0x3374f5){return function(_0x7578b8){if(_0x7578b8){return _0x7578b8[_0xa417('0x28')]()[_0xa417('0x27')](function(){var _0x2a52e7=_0x7578b8[_0xa417('0x29')]({'plain':!![]});var _0x134b62=_0xa417('0x2a');return db[_0xa417('0x2b')][_0xa417('0x28')]({'where':{'type':_0x134b62,'resourceId':_0x2a52e7['id']}})[_0xa417('0x27')](function(){return _0x7578b8;});})[_0xa417('0x27')](function(){_0x518eb4[_0xa417('0x1c')](0xcc)[_0xa417('0x1d')]();});}};}function handleEntityNotFound(_0x3bc9e6,_0x475804){return function(_0x2f16c6){if(!_0x2f16c6){_0x3bc9e6['sendStatus'](0x194);}return _0x2f16c6;};}function handleError(_0x44c00f,_0x2cfb90){_0x2cfb90=_0x2cfb90||0x1f4;return function(_0x343a1f){logger[_0xa417('0x2c')](_0x343a1f[_0xa417('0x2d')]);if(_0x343a1f[_0xa417('0x2e')]){delete _0x343a1f[_0xa417('0x2e')];}_0x44c00f[_0xa417('0x1c')](_0x2cfb90)[_0xa417('0x2f')](_0x343a1f);};}exports[_0xa417('0x30')]=function(_0x258a70,_0x1e2297){var _0x1f49b2={},_0x318cad={},_0x4aa236={'count':0x0,'rows':[]};var _0x569233=_['map'](db[_0xa417('0x31')][_0xa417('0x32')],function(_0x28eba4){return{'name':_0x28eba4[_0xa417('0x33')],'type':_0x28eba4[_0xa417('0x34')][_0xa417('0x35')]};});_0x318cad['model']=_['map'](_0x569233,_0xa417('0x2e'));_0x318cad[_0xa417('0x36')]=_[_0xa417('0x37')](_0x258a70['query']);_0x318cad[_0xa417('0x38')]=_[_0xa417('0x39')](_0x318cad[_0xa417('0x3a')],_0x318cad[_0xa417('0x36')]);_0x1f49b2[_0xa417('0x3b')]=_[_0xa417('0x39')](_0x318cad[_0xa417('0x3a')],qs[_0xa417('0x3c')](_0x258a70[_0xa417('0x36')][_0xa417('0x3c')]));_0x1f49b2[_0xa417('0x3b')]=_0x1f49b2[_0xa417('0x3b')][_0xa417('0x3d')]?_0x1f49b2[_0xa417('0x3b')]:_0x318cad[_0xa417('0x3a')];if(!_0x258a70['query'][_0xa417('0x3e')](_0xa417('0x3f'))){_0x1f49b2[_0xa417('0x21')]=qs[_0xa417('0x21')](_0x258a70[_0xa417('0x36')][_0xa417('0x21')]);_0x1f49b2[_0xa417('0x20')]=qs[_0xa417('0x20')](_0x258a70['query'][_0xa417('0x20')]);}_0x1f49b2[_0xa417('0x40')]=qs[_0xa417('0x41')](_0x258a70[_0xa417('0x36')][_0xa417('0x41')]);_0x1f49b2[_0xa417('0x42')]=qs[_0xa417('0x38')](_['pick'](_0x258a70[_0xa417('0x36')],_0x318cad['filters']),_0x569233);if(_0x258a70[_0xa417('0x36')][_0xa417('0x43')]){_0x1f49b2[_0xa417('0x42')]=_[_0xa417('0x44')](_0x1f49b2[_0xa417('0x42')],{'$or':_[_0xa417('0x45')](_0x569233,function(_0x3c9b7f){if(_0x3c9b7f[_0xa417('0x34')]!==_0xa417('0x46')){var _0x399056={};_0x399056[_0x3c9b7f[_0xa417('0x2e')]]={'$like':'%'+_0x258a70['query'][_0xa417('0x43')]+'%'};return _0x399056;}})});}_0x1f49b2=_['merge']({},_0x1f49b2,_0x258a70[_0xa417('0x47')]);var _0x9c3cad={'where':_0x1f49b2[_0xa417('0x42')]};return db[_0xa417('0x31')][_0xa417('0x1f')](_0x9c3cad)[_0xa417('0x27')](function(_0x10551b){_0x4aa236[_0xa417('0x1f')]=_0x10551b;if(_0x258a70[_0xa417('0x36')][_0xa417('0x48')]){_0x1f49b2[_0xa417('0x49')]=[{'all':!![]}];}return db[_0xa417('0x31')]['findAll'](_0x1f49b2);})[_0xa417('0x27')](function(_0x25a350){_0x4aa236['rows']=_0x25a350;return _0x4aa236;})['then'](respondWithFilteredResult(_0x1e2297,_0x1f49b2))[_0xa417('0x4a')](handleError(_0x1e2297,null));};exports[_0xa417('0x4b')]=function(_0x2804f4,_0x4e6ad2){var _0x16b68e={'raw':![],'where':{'id':_0x2804f4[_0xa417('0x4c')]['id']}},_0x20d20b={};_0x20d20b[_0xa417('0x3a')]=_[_0xa417('0x37')](db['AnalyticCustomReport']['rawAttributes']);_0x20d20b['query']=_['keys'](_0x2804f4[_0xa417('0x36')]);_0x20d20b['filters']=_['intersection'](_0x20d20b[_0xa417('0x3a')],_0x20d20b['query']);_0x16b68e['attributes']=_[_0xa417('0x39')](_0x20d20b['model'],qs['fields'](_0x2804f4[_0xa417('0x36')][_0xa417('0x3c')]));_0x16b68e[_0xa417('0x3b')]=_0x16b68e[_0xa417('0x3b')][_0xa417('0x3d')]?_0x16b68e['attributes']:_0x20d20b[_0xa417('0x3a')];if(_0x2804f4[_0xa417('0x36')][_0xa417('0x48')]){_0x16b68e['include']=[{'all':!![]}];}_0x16b68e=_[_0xa417('0x44')]({},_0x16b68e,_0x2804f4['options']);return db['AnalyticCustomReport'][_0xa417('0x4d')](_0x16b68e)['then'](handleEntityNotFound(_0x4e6ad2,null))[_0xa417('0x27')](respondWithResult(_0x4e6ad2,null))[_0xa417('0x4a')](handleError(_0x4e6ad2,null));};exports[_0xa417('0x4e')]=function(_0x230061,_0x4e90e4){return db['AnalyticCustomReport']['create'](_0x230061[_0xa417('0x4f')],{})[_0xa417('0x27')](function(_0x345efc){var _0x238e1a=_0x230061[_0xa417('0x50')][_0xa417('0x29')]({'plain':!![]});if(!_0x238e1a)throw new Error(_0xa417('0x51'));if(_0x238e1a['role']===_0xa417('0x50')){var _0x2a72e7=_0x345efc[_0xa417('0x29')]({'plain':!![]});var _0x13d52c=_0xa417('0x52');return db[_0xa417('0x53')][_0xa417('0x4d')]({'where':{'name':_0x13d52c,'userProfileId':_0x238e1a[_0xa417('0x54')]},'raw':!![]})[_0xa417('0x27')](function(_0x42db18){if(_0x42db18&&_0x42db18[_0xa417('0x55')]===0x0){return db['UserProfileResource'][_0xa417('0x4e')]({'name':_0x2a72e7['name'],'resourceId':_0x2a72e7['id'],'type':_0xa417('0x2a'),'sectionId':_0x42db18['id']},{})[_0xa417('0x27')](function(){return _0x345efc;});}else{return _0x345efc;}})[_0xa417('0x4a')](function(_0x3426ad){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3426ad);throw _0x3426ad;});}return _0x345efc;})[_0xa417('0x27')](respondWithResult(_0x4e90e4,0xc9))[_0xa417('0x4a')](handleError(_0x4e90e4,null));};exports['update']=function(_0x4830e9,_0x14f5dd){if(_0x4830e9[_0xa417('0x4f')]['id']){delete _0x4830e9[_0xa417('0x4f')]['id'];}return db[_0xa417('0x31')][_0xa417('0x4d')]({'where':{'id':_0x4830e9[_0xa417('0x4c')]['id']}})['then'](handleEntityNotFound(_0x14f5dd,null))[_0xa417('0x27')](saveUpdates(_0x4830e9[_0xa417('0x4f')],null))['then'](respondWithResult(_0x14f5dd,null))[_0xa417('0x4a')](handleError(_0x14f5dd,null));};exports[_0xa417('0x28')]=function(_0x31b6c5,_0x21052f){return db[_0xa417('0x31')][_0xa417('0x4d')]({'where':{'id':_0x31b6c5['params']['id']}})[_0xa417('0x27')](handleEntityNotFound(_0x21052f,null))[_0xa417('0x27')](removeEntity(_0x21052f,null))[_0xa417('0x4a')](handleError(_0x21052f,null));};exports['preview']=function(_0x4b95c4,_0x13590a){var _0x2db951=0xa;var _0x4ead4f=[_0xa417('0x56'),_0xa417('0x57'),_0xa417('0x58'),_0xa417('0x59')];var _0x53d647={'SUM':'SUM(%s)','COUNT':_0xa417('0x5a'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0xa417('0x5b'),'AVG':_0xa417('0x5c'),'GROUP_CONCAT':_0xa417('0x5d'),'GROUP_CONCAT ASC':_0xa417('0x5e'),'GROUP_CONCAT DESC':_0xa417('0x5f')};var _0x25501d={'SEC_TO_TIME':_0xa417('0x60'),'DATE':'DATE(%s)','HOUR':_0xa417('0x61'),'ROUND':_0xa417('0x62'),'UNIX_TIMESTAMP':_0xa417('0x63')};var _0x5b8357=function(_0xd791ff){return!_[_0xa417('0x64')]([_0xa417('0x65'),_0xa417('0x66'),_0xa417('0x67'),_0xa417('0x68')],_0xd791ff);};var _0x2202be=function(_0x3deb71){if(!_0x3deb71||!_0x3deb71[_0xa417('0x69')][_0xa417('0x3d')]){return'';}for(var _0x353137='(',_0x47fd5c=0x0;_0x47fd5c<_0x3deb71[_0xa417('0x69')][_0xa417('0x3d')];_0x47fd5c+=0x1){_0x47fd5c>0x0&&(_0x353137+='\x20'+_0x3deb71['operator']+'\x20');_0x353137+=_0x3deb71['rules'][_0x47fd5c][_0xa417('0x6a')]?_0x2202be(_0x3deb71[_0xa417('0x69')][_0x47fd5c][_0xa417('0x6a')]):_0x3deb71[_0xa417('0x69')][_0x47fd5c][_0xa417('0x6b')]+'\x20'+_0x3deb71['rules'][_0x47fd5c][_0xa417('0x6c')]+(_0x5b8357(_0x3deb71[_0xa417('0x69')][_0x47fd5c][_0xa417('0x6c')])?'\x20'+_0x3deb71[_0xa417('0x69')][_0x47fd5c][_0xa417('0x6d')]:'');}return _0x353137+')';};var _0x5f279e={'where':{'id':_0x4b95c4[_0xa417('0x4c')]['id']}},_0x714eae,_0x322d58,_0x2e39ce,_0x4ed659,_0x697a0c;_0x5f279e=_['merge']({},_0x5f279e,_0x4b95c4[_0xa417('0x47')]);return db['AnalyticCustomReport'][_0xa417('0x4d')](_0x5f279e)[_0xa417('0x27')](function(_0xe1b3b2){if(_0xe1b3b2){_0x714eae=_0xe1b3b2;return _0xe1b3b2[_0xa417('0x6e')]();}return null;})[_0xa417('0x27')](function(_0x90642f){if(_0x90642f){if(!_0x90642f['length']){throw new db[(_0xa417('0x6f'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x322d58=_0x90642f;return db['AnalyticMetric'][_0xa417('0x70')]({'raw':!![]});}return null;})[_0xa417('0x27')](function(_0x3d623a){if(_0x3d623a){_0x2e39ce=_[_0xa417('0x71')](_0x3d623a,'id');var _0x4275e9;var _0xacdf81=squel[_0xa417('0x72')]();_0xacdf81[_0xa417('0x73')](_0x714eae['table']);for(var _0xe0fcc8=0x0;_0xe0fcc8<_0x322d58[_0xa417('0x3d')];_0xe0fcc8+=0x1){_0x4275e9=_0x322d58[_0xe0fcc8][_0xa417('0x74')]?_0x2e39ce[_0x322d58[_0xe0fcc8]['MetricId']]['metric']:_0x322d58[_0xe0fcc8][_0xa417('0x6b')];_0x4275e9=_0x322d58[_0xe0fcc8][_0xa417('0x75')]?_[_0xa417('0x76')](_0x53d647[_0x322d58[_0xe0fcc8][_0xa417('0x75')]],'%s',_0x4275e9):_0x4275e9;_0x4275e9=_0x322d58[_0xe0fcc8]['format']?_[_0xa417('0x76')](_0x25501d[_0x322d58[_0xe0fcc8][_0xa417('0x77')]],'%s',_0x4275e9):_0x4275e9;if(_0x322d58[_0xe0fcc8][_0xa417('0x78')]){_0xacdf81[_0xa417('0x6a')](_0x4275e9);}_0x322d58[_0xe0fcc8][_0xa417('0x79')]&&_0xacdf81[_0xa417('0x40')](_0x4275e9,_0x322d58[_0xe0fcc8][_0xa417('0x79')]===_0xa417('0x7a')?![]:!![]);_0xacdf81[_0xa417('0x6b')](_0x4275e9,_0x322d58[_0xe0fcc8][_0xa417('0x7b')]||_0x4275e9);}if(_0x714eae['joins']){_0x714eae[_0xa417('0x7c')]=JSON[_0xa417('0x7d')](_0x714eae['joins']);for(var _0x2c20fc=0x0;_0x2c20fc<_0x714eae['joins'][_0xa417('0x3d')];_0x2c20fc+=0x1){if(_0x714eae[_0xa417('0x7c')][_0x2c20fc][_0xa417('0x34')]&&_[_0xa417('0x64')](_0x4ead4f,_0x714eae[_0xa417('0x7c')][_0x2c20fc]['type'])&&_0x714eae[_0xa417('0x7c')][_0x2c20fc][_0xa417('0x7e')]&&_0x714eae[_0xa417('0x7c')][_0x2c20fc]['foreignTable']&&_0x714eae['joins'][_0x2c20fc]['foreignKey']){_0xacdf81[_0x714eae[_0xa417('0x7c')][_0x2c20fc][_0xa417('0x34')]](_0x714eae[_0xa417('0x7c')][_0x2c20fc][_0xa417('0x7f')],null,util[_0xa417('0x77')](_0xa417('0x80'),_0x714eae[_0xa417('0x81')],_0x714eae[_0xa417('0x7c')][_0x2c20fc][_0xa417('0x7e')],_0x714eae['joins'][_0x2c20fc][_0xa417('0x7f')],_0x714eae[_0xa417('0x7c')][_0x2c20fc][_0xa417('0x82')]));}}}if(_0x714eae[_0xa417('0x83')]){_0x714eae[_0xa417('0x83')]=JSON[_0xa417('0x7d')](_0x714eae[_0xa417('0x83')]);_0xacdf81['where'](_0x2202be(_0x714eae['conditions'][_0xa417('0x6a')]));}_0x697a0c=_0xacdf81[_0xa417('0x84')]();_0xacdf81[_0xa417('0x21')](_0x2db951);_0xacdf81['offset'](0x0);logger[_0xa417('0x85')](_0xa417('0x86'),_0xacdf81[_0xa417('0x87')]());return db[_0xa417('0x88')]['query'](_0xacdf81[_0xa417('0x87')](),{'type':db[_0xa417('0x88')]['QueryTypes']['SELECT']});}})[_0xa417('0x27')](respondWithResult(_0x13590a,null))[_0xa417('0x4a')](handleError(_0x13590a,null));};function runReport(_0x58a9a9,_0x5bae60,_0x92f1fa){var _0x10a6f4=_0x5bae60[_0xa417('0x2e')];var _0x3b805f=0xa;var _0x5288ff=[_0xa417('0x56'),_0xa417('0x57'),'right_join','cross_join'];var _0x22741e={'SUM':'SUM(%s)','COUNT':_0xa417('0x5a'),'COUNT DISTINCT':_0xa417('0x89'),'MAX':_0xa417('0x8a'),'MIN':_0xa417('0x5b'),'AVG':_0xa417('0x5c'),'GROUP_CONCAT':_0xa417('0x5d'),'GROUP_CONCAT ASC':_0xa417('0x5e'),'GROUP_CONCAT DESC':_0xa417('0x5f')};var _0x425030={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xa417('0x8b'),'HOUR':_0xa417('0x61'),'ROUND':_0xa417('0x62'),'UNIX_TIMESTAMP':_0xa417('0x63')};var _0x1607bf=function(_0x2ce1f1){return!_[_0xa417('0x64')]([_0xa417('0x65'),_0xa417('0x66'),_0xa417('0x67'),_0xa417('0x68')],_0x2ce1f1);};var _0x1b0252=function(_0x3d8f62){if(!_0x3d8f62||!_0x3d8f62[_0xa417('0x69')][_0xa417('0x3d')]){return'';}for(var _0x1c3a40='(',_0xa7092=0x0;_0xa7092<_0x3d8f62[_0xa417('0x69')]['length'];_0xa7092+=0x1){_0xa7092>0x0&&(_0x1c3a40+='\x20'+_0x3d8f62[_0xa417('0x8c')]+'\x20');_0x1c3a40+=_0x3d8f62[_0xa417('0x69')][_0xa7092][_0xa417('0x6a')]?_0x1b0252(_0x3d8f62[_0xa417('0x69')][_0xa7092]['group']):_0x3d8f62[_0xa417('0x69')][_0xa7092][_0xa417('0x6b')]+'\x20'+_0x3d8f62[_0xa417('0x69')][_0xa7092][_0xa417('0x6c')]+(_0x1607bf(_0x3d8f62['rules'][_0xa7092]['condition'])?'\x20'+_0x3d8f62[_0xa417('0x69')][_0xa7092][_0xa417('0x6d')]:'');}return _0x1c3a40+')';};var _0x5be4f8={'where':{'id':_0x58a9a9['id']}},_0x4d2e49,_0x4e783b,_0x32e7e0,_0x25d831,_0x163452;_0x5be4f8=_[_0xa417('0x44')]({},_0x5be4f8,_0x92f1fa);return db['AnalyticCustomReport']['find'](_0x5be4f8)['then'](function(_0x4e1486){if(_0x4e1486){_0x4d2e49=_0x4e1486;return _0x4e1486['getFields']();}return null;})[_0xa417('0x27')](function(_0x277bff){if(_0x277bff){if(!_0x277bff['length']){throw new db['Sequelize'][(_0xa417('0x8d'))](_0xa417('0x8e'),0x193);}_0x4e783b=_0x277bff;return db[_0xa417('0x8f')][_0xa417('0x70')]({'raw':!![]});}return null;})['then'](function(_0x4f196d){if(_0x4f196d){_0x32e7e0=_[_0xa417('0x71')](_0x4f196d,'id');var _0x1a50b3;var _0x4bc1b7=squel['select']();_0x4bc1b7[_0xa417('0x73')](_0x4d2e49[_0xa417('0x81')]);for(var _0x206a8f=0x0;_0x206a8f<_0x4e783b[_0xa417('0x3d')];_0x206a8f+=0x1){_0x1a50b3=_0x4e783b[_0x206a8f][_0xa417('0x74')]?_0x32e7e0[_0x4e783b[_0x206a8f][_0xa417('0x74')]][_0xa417('0x90')]:_0x4e783b[_0x206a8f]['field'];_0x1a50b3=_0x4e783b[_0x206a8f][_0xa417('0x75')]?_[_0xa417('0x76')](_0x22741e[_0x4e783b[_0x206a8f][_0xa417('0x75')]],'%s',_0x1a50b3):_0x1a50b3;_0x1a50b3=_0x4e783b[_0x206a8f][_0xa417('0x77')]?_[_0xa417('0x76')](_0x425030[_0x4e783b[_0x206a8f]['format']],'%s',_0x1a50b3):_0x1a50b3;if(_0x4e783b[_0x206a8f]['groupBy']){_0x4bc1b7['group'](_0x1a50b3);}_0x4e783b[_0x206a8f][_0xa417('0x79')]&&_0x4bc1b7['order'](_0x1a50b3,_0x4e783b[_0x206a8f]['orderBy']===_0xa417('0x7a')?![]:!![]);_0x4bc1b7[_0xa417('0x6b')](_0x1a50b3,_0x4e783b[_0x206a8f][_0xa417('0x7b')]||_0x1a50b3);}if(_0x4d2e49[_0xa417('0x7c')]){_0x4d2e49[_0xa417('0x7c')]=JSON[_0xa417('0x7d')](_0x4d2e49[_0xa417('0x7c')]);for(var _0x15d3f7=0x0;_0x15d3f7<_0x4d2e49[_0xa417('0x7c')][_0xa417('0x3d')];_0x15d3f7+=0x1){if(_0x4d2e49[_0xa417('0x7c')][_0x15d3f7]['type']&&_[_0xa417('0x64')](_0x5288ff,_0x4d2e49[_0xa417('0x7c')][_0x15d3f7][_0xa417('0x34')])&&_0x4d2e49[_0xa417('0x7c')][_0x15d3f7][_0xa417('0x7e')]&&_0x4d2e49[_0xa417('0x7c')][_0x15d3f7]['foreignTable']&&_0x4d2e49[_0xa417('0x7c')][_0x15d3f7][_0xa417('0x82')]){_0x4bc1b7[_0x4d2e49[_0xa417('0x7c')][_0x15d3f7][_0xa417('0x34')]](_0x4d2e49[_0xa417('0x7c')][_0x15d3f7]['foreignTable'],null,util[_0xa417('0x77')]('%s.%s\x20=\x20%s.%s',_0x4d2e49[_0xa417('0x81')],_0x4d2e49[_0xa417('0x7c')][_0x15d3f7][_0xa417('0x7e')],_0x4d2e49[_0xa417('0x7c')][_0x15d3f7][_0xa417('0x7f')],_0x4d2e49['joins'][_0x15d3f7][_0xa417('0x82')]));}}}if(_0x4d2e49['conditions']){_0x4d2e49[_0xa417('0x83')]=JSON['parse'](_0x4d2e49['conditions']);_0x4bc1b7['where'](_0x1b0252(_0x4d2e49[_0xa417('0x83')][_0xa417('0x6a')]));}_0x163452=_0x4bc1b7['clone']();_0x4bc1b7[_0xa417('0x21')](_0x3b805f);_0x4bc1b7[_0xa417('0x20')](0x0);logger[_0xa417('0x85')]('Limited\x20Query:',_0x4bc1b7['toString']());return db[_0xa417('0x88')][_0xa417('0x36')](_0x4bc1b7['toString'](),{'type':db[_0xa417('0x88')]['QueryTypes'][_0xa417('0x91')]});}})['then'](function(_0x4e9066){if(!_0x4e9066['length']){throw new db[(_0xa417('0x6f'))]['ValidationErrorItem']('No\x20available\x20data',0xcc);}if(_0x5bae60[_0xa417('0x92')]===_0xa417('0x93')){return null;}var _0x481d57=_[_0xa417('0x44')](_0x5bae60,{'name':_0x5bae60[_0xa417('0x94')]||_0x5bae60['name']||_0x4d2e49['name'],'basename':_0x10a6f4,'savename':util['format'](_0xa417('0x95'),_0x5bae60[_0xa417('0x2e')]||_0x4d2e49[_0xa417('0x2e')],require(_0xa417('0x96'))[_0xa417('0x97')](0x4),_0x5bae60['output']||_0xa417('0x98')),'reportId':_0x4d2e49['id'],'reportType':_0xa417('0x99')});return db[_0xa417('0x9a')]['create'](_0x481d57,{'raw':!![]});})[_0xa417('0x27')](function(_0x18c390){if(_0x4d2e49['table']===_0xa417('0x9b')){_0x163452[_0xa417('0x42')](_0x4d2e49[_0xa417('0x81')]+_0xa417('0x9c'),_0x5bae60[_0xa417('0x9d')],_0x5bae60[_0xa417('0x9e')]);}else{_0x163452['where'](_0x4d2e49[_0xa417('0x81')]+_0xa417('0x9f'),_0x5bae60[_0xa417('0x9d')],_0x5bae60[_0xa417('0x9e')]);}if(_0x18c390){logger[_0xa417('0xa0')](_0xa417('0xa1'),_0x163452['toString']());require('child_process')[_0xa417('0xa2')](path[_0xa417('0x56')](__dirname,'../../components/export/',_0x18c390[_0xa417('0x92')]),[_0x18c390['id'],_0x163452['toString'](),path[_0xa417('0x56')](__dirname,_0xa417('0xa3'),_0x18c390['savename']),_0x10a6f4]);return _0x18c390;}else{var _0x5e842d=squel[_0xa417('0x72')]();_0x5e842d[_0xa417('0x73')]('('+_0x163452[_0xa417('0x87')]()+')',_0xa417('0xa4'));_0x5e842d['field'](_0xa417('0xa5'),'count');_0x163452[_0xa417('0x21')](_0x5bae60[_0xa417('0x21')]||_0x3b805f);_0x163452[_0xa417('0x20')](_0x5bae60[_0xa417('0x20')]||0x0);return dbH[_0xa417('0x88')]['query'](_0x5e842d[_0xa417('0x87')](),{'type':dbH[_0xa417('0x88')][_0xa417('0xa6')][_0xa417('0x91')]})['then'](function(_0x457f81){if(!_0x457f81['length']){_0x25d831=0x0;}else{_0x25d831=_0x457f81[0x0][_0xa417('0x1f')]||0x0;}return dbH[_0xa417('0x88')]['query'](_0x163452['toString'](),{'type':dbH[_0xa417('0x88')][_0xa417('0xa6')][_0xa417('0x91')]});})['then'](function(_0x29a250){return{'rows':_0x29a250||[],'count':_0x25d831};});}});}exports[_0xa417('0xa7')]=function(_0x5c5517,_0x5b93bc){return runReport(_0x5c5517[_0xa417('0x4c')],_0x5c5517[_0xa417('0x36')],_0x5c5517[_0xa417('0x47')])[_0xa417('0x27')](respondWithResult(_0x5b93bc,null))[_0xa417('0x4a')](handleError(_0x5b93bc,null));};exports[_0xa417('0xa8')]=runReport;exports[_0xa417('0x36')]=function(_0x5bc85a,_0x32f7fd){var _0xcd74a1=0xa;var _0x3c62fb=['join','left_join',_0xa417('0x58'),'cross_join'];var _0x54d5f0={'SUM':_0xa417('0xa9'),'COUNT':_0xa417('0x5a'),'COUNT DISTINCT':_0xa417('0x89'),'MAX':_0xa417('0x8a'),'MIN':_0xa417('0x5b'),'AVG':_0xa417('0x5c'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xa417('0x5f')};var _0x3415d7={'SEC_TO_TIME':_0xa417('0x60'),'DATE':_0xa417('0x8b'),'HOUR':_0xa417('0x61'),'ROUND':_0xa417('0x62'),'UNIX_TIMESTAMP':_0xa417('0x63')};var _0x32e333=function(_0x3f8d2d){return!_['includes']([_0xa417('0x65'),_0xa417('0x66'),_0xa417('0x67'),_0xa417('0x68')],_0x3f8d2d);};var _0x284d57=function(_0x485ded){if(!_0x485ded||!_0x485ded[_0xa417('0x69')][_0xa417('0x3d')]){return'';}for(var _0x4a11ae='(',_0x403410=0x0;_0x403410<_0x485ded[_0xa417('0x69')][_0xa417('0x3d')];_0x403410+=0x1){_0x403410>0x0&&(_0x4a11ae+='\x20'+_0x485ded['operator']+'\x20');_0x4a11ae+=_0x485ded[_0xa417('0x69')][_0x403410][_0xa417('0x6a')]?_0x284d57(_0x485ded[_0xa417('0x69')][_0x403410][_0xa417('0x6a')]):_0x485ded[_0xa417('0x69')][_0x403410]['field']+'\x20'+_0x485ded['rules'][_0x403410][_0xa417('0x6c')]+(_0x32e333(_0x485ded[_0xa417('0x69')][_0x403410][_0xa417('0x6c')])?'\x20'+_0x485ded[_0xa417('0x69')][_0x403410][_0xa417('0x6d')]:'');}return _0x4a11ae+')';};var _0x211e94={'where':{'id':_0x5bc85a[_0xa417('0x4c')]['id']}},_0x56f613,_0x5905e1,_0x5df24a,_0x2ede0c,_0x42bb7c;_0x211e94=_['merge']({},_0x211e94,_0x5bc85a[_0xa417('0x47')]);return db[_0xa417('0x31')][_0xa417('0x4d')](_0x211e94)['then'](function(_0x148ecb){if(_0x148ecb){_0x56f613=_0x148ecb;return _0x148ecb[_0xa417('0x6e')]();}return null;})[_0xa417('0x27')](function(_0x945b3b){if(_0x945b3b){if(!_0x945b3b[_0xa417('0x3d')]){throw new db[(_0xa417('0x6f'))][(_0xa417('0x8d'))](_0xa417('0x8e'),0x193);}_0x5905e1=_0x945b3b;return db['AnalyticMetric'][_0xa417('0x70')]({'raw':!![]});}return null;})[_0xa417('0x27')](function(_0x52430b){if(_0x52430b){_0x5df24a=_[_0xa417('0x71')](_0x52430b,'id');var _0x4837dc;var _0x17233c=squel[_0xa417('0x72')]();_0x17233c[_0xa417('0x73')](_0x56f613[_0xa417('0x81')]);for(var _0x5efd08=0x0;_0x5efd08<_0x5905e1[_0xa417('0x3d')];_0x5efd08+=0x1){_0x4837dc=_0x5905e1[_0x5efd08][_0xa417('0x74')]?_0x5df24a[_0x5905e1[_0x5efd08]['MetricId']]['metric']:_0x5905e1[_0x5efd08][_0xa417('0x6b')];_0x4837dc=_0x5905e1[_0x5efd08][_0xa417('0x75')]?_[_0xa417('0x76')](_0x54d5f0[_0x5905e1[_0x5efd08][_0xa417('0x75')]],'%s',_0x4837dc):_0x4837dc;_0x4837dc=_0x5905e1[_0x5efd08][_0xa417('0x77')]?_[_0xa417('0x76')](_0x3415d7[_0x5905e1[_0x5efd08][_0xa417('0x77')]],'%s',_0x4837dc):_0x4837dc;if(_0x5905e1[_0x5efd08]['groupBy']){_0x17233c[_0xa417('0x6a')](_0x4837dc);}_0x5905e1[_0x5efd08][_0xa417('0x79')]&&_0x17233c['order'](_0x4837dc,_0x5905e1[_0x5efd08][_0xa417('0x79')]===_0xa417('0x7a')?![]:!![]);_0x17233c['field'](_0x4837dc,_0x5905e1[_0x5efd08][_0xa417('0x7b')]||_0x4837dc);}if(_0x56f613[_0xa417('0x7c')]){_0x56f613[_0xa417('0x7c')]=JSON[_0xa417('0x7d')](_0x56f613['joins']);for(var _0x2513d5=0x0;_0x2513d5<_0x56f613[_0xa417('0x7c')][_0xa417('0x3d')];_0x2513d5+=0x1){if(_0x56f613['joins'][_0x2513d5][_0xa417('0x34')]&&_[_0xa417('0x64')](_0x3c62fb,_0x56f613['joins'][_0x2513d5][_0xa417('0x34')])&&_0x56f613[_0xa417('0x7c')][_0x2513d5][_0xa417('0x7e')]&&_0x56f613[_0xa417('0x7c')][_0x2513d5][_0xa417('0x7f')]&&_0x56f613[_0xa417('0x7c')][_0x2513d5]['foreignKey']){_0x17233c[_0x56f613[_0xa417('0x7c')][_0x2513d5][_0xa417('0x34')]](_0x56f613[_0xa417('0x7c')][_0x2513d5][_0xa417('0x7f')],null,util[_0xa417('0x77')](_0xa417('0x80'),_0x56f613[_0xa417('0x81')],_0x56f613[_0xa417('0x7c')][_0x2513d5][_0xa417('0x7e')],_0x56f613['joins'][_0x2513d5][_0xa417('0x7f')],_0x56f613[_0xa417('0x7c')][_0x2513d5][_0xa417('0x82')]));}}}if(_0x56f613[_0xa417('0x83')]){_0x56f613[_0xa417('0x83')]=JSON[_0xa417('0x7d')](_0x56f613[_0xa417('0x83')]);_0x17233c['where'](_0x284d57(_0x56f613[_0xa417('0x83')][_0xa417('0x6a')]));}_0x42bb7c=_0x17233c[_0xa417('0x84')]();_0x17233c[_0xa417('0x21')](_0xcd74a1);_0x17233c[_0xa417('0x20')](0x0);logger[_0xa417('0x85')](_0xa417('0x86'),_0x17233c['toString']());return db['sequelize'][_0xa417('0x36')](_0x17233c[_0xa417('0x87')](),{'type':db['sequelize']['QueryTypes'][_0xa417('0x91')]});}})['then'](function(){return{'sql':_0x42bb7c[_0xa417('0x87')]()};})[_0xa417('0x27')](respondWithResult(_0x32f7fd,null))[_0xa417('0x4a')](handleError(_0x32f7fd,null));};