Built motion from commit 639a1a7f.|2.6.19
[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 _0x41fa=['rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','UserProfileResource','end','error','name','send','map','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','VIRTUAL','filter','merge','options','AnalyticCustomReport','includeAll','findAll','rows','catch','show','params','include','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignKey','%s.%s\x20=\x20%s.%s','foreignTable','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','MIN(%s)','SEC_TO_TIME(%s)','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20NULL','Sequelize','from','web','fullPath','%s-%s.%s','randomstring','generate','csv','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','child_process','output','../../files/reports','savename','countTable','SELECT','run','runReport','eml-format'];(function(_0x2f679e,_0x2c63c8){var _0x3ce213=function(_0x47b866){while(--_0x47b866){_0x2f679e['push'](_0x2f679e['shift']());}};_0x3ce213(++_0x2c63c8);}(_0x41fa,0x1f1));var _0xa41f=function(_0xa8d7ef,_0x4b8b3d){_0xa8d7ef=_0xa8d7ef-0x0;var _0x239d5e=_0x41fa[_0xa8d7ef];return _0x239d5e;};'use strict';var emlformat=require(_0xa41f('0x0'));var rimraf=require(_0xa41f('0x1'));var zipdir=require(_0xa41f('0x2'));var jsonpatch=require(_0xa41f('0x3'));var rp=require(_0xa41f('0x4'));var moment=require(_0xa41f('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xa41f('0x6'));var util=require(_0xa41f('0x7'));var path=require(_0xa41f('0x8'));var sox=require(_0xa41f('0x9'));var csv=require(_0xa41f('0xa'));var ejs=require(_0xa41f('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa41f('0xc'));var squel=require(_0xa41f('0xd'));var crypto=require(_0xa41f('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xa41f('0xf'));var toCsv=require(_0xa41f('0xa'));var querystring=require(_0xa41f('0x10'));var Papa=require(_0xa41f('0x11'));var Redis=require(_0xa41f('0x12'));var authService=require(_0xa41f('0x13'));var qs=require(_0xa41f('0x14'));var as=require(_0xa41f('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa41f('0x16'))(_0xa41f('0x17'));var utils=require(_0xa41f('0x18'));var config=require(_0xa41f('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xa41f('0x1a'))['db'];var dbH=require(_0xa41f('0x1a'))[_0xa41f('0x1b')];function respondWithStatusCode(_0x32b9d8,_0x13b4f4){_0x13b4f4=_0x13b4f4||0xcc;return function(_0x4b10d2){if(_0x4b10d2){return _0x32b9d8[_0xa41f('0x1c')](_0x13b4f4);}return _0x32b9d8[_0xa41f('0x1d')](_0x13b4f4)['end']();};}function respondWithResult(_0x5e050e,_0x2c80ae){_0x2c80ae=_0x2c80ae||0xc8;return function(_0x570ad5){if(_0x570ad5){return _0x5e050e['status'](_0x2c80ae)[_0xa41f('0x1e')](_0x570ad5);}};}function respondWithFilteredResult(_0x2de743,_0x56acbb){return function(_0x19b576){if(_0x19b576){var _0x56128b=typeof _0x56acbb[_0xa41f('0x1f')]===_0xa41f('0x20')&&typeof _0x56acbb[_0xa41f('0x21')]===_0xa41f('0x20');var _0x568d98=_0x19b576[_0xa41f('0x22')];var _0x1d363b=_0x56128b?0x0:_0x56acbb[_0xa41f('0x1f')];var _0x4d7564=_0x56128b?_0x19b576['count']:_0x56acbb[_0xa41f('0x1f')]+_0x56acbb[_0xa41f('0x21')];var _0x224d8c;if(_0x4d7564>=_0x568d98){_0x4d7564=_0x568d98;_0x224d8c=0xc8;}else{_0x224d8c=0xce;}_0x2de743['status'](_0x224d8c);return _0x2de743[_0xa41f('0x23')](_0xa41f('0x24'),_0x1d363b+'-'+_0x4d7564+'/'+_0x568d98)[_0xa41f('0x1e')](_0x19b576);}return null;};}function patchUpdates(_0x911489){return function(_0x44b0a7){try{jsonpatch[_0xa41f('0x25')](_0x44b0a7,_0x911489,!![]);}catch(_0x5b6214){return BPromise[_0xa41f('0x26')](_0x5b6214);}return _0x44b0a7['save']();};}function saveUpdates(_0x960cc0,_0x4bedde){return function(_0x5053a0){if(_0x5053a0){return _0x5053a0[_0xa41f('0x27')](_0x960cc0)[_0xa41f('0x28')](function(_0xe0302c){return _0xe0302c;});}return null;};}function removeEntity(_0x84a34f,_0x158cc2){return function(_0x54eef){if(_0x54eef){return _0x54eef[_0xa41f('0x29')]()[_0xa41f('0x28')](function(){var _0xa65f5c=_0x54eef['get']({'plain':!![]});var _0x386bc6='CustomReports';return db[_0xa41f('0x2a')][_0xa41f('0x29')]({'where':{'type':_0x386bc6,'resourceId':_0xa65f5c['id']}})[_0xa41f('0x28')](function(){return _0x54eef;});})[_0xa41f('0x28')](function(){_0x84a34f['status'](0xcc)[_0xa41f('0x2b')]();});}};}function handleEntityNotFound(_0x391014,_0x2c8360){return function(_0x2d4059){if(!_0x2d4059){_0x391014[_0xa41f('0x1c')](0x194);}return _0x2d4059;};}function handleError(_0xf2f543,_0x34f031){_0x34f031=_0x34f031||0x1f4;return function(_0x27fe53){logger[_0xa41f('0x2c')](_0x27fe53['stack']);if(_0x27fe53[_0xa41f('0x2d')]){delete _0x27fe53['name'];}_0xf2f543[_0xa41f('0x1d')](_0x34f031)[_0xa41f('0x2e')](_0x27fe53);};}exports['index']=function(_0x2034c5,_0x83e9e1){var _0x25db13={},_0x2a6e8a={},_0x1def27={'count':0x0,'rows':[]};var _0x54adda=_[_0xa41f('0x2f')](db['AnalyticCustomReport'][_0xa41f('0x30')],function(_0x57ce11){return{'name':_0x57ce11[_0xa41f('0x31')],'type':_0x57ce11[_0xa41f('0x32')]['key']};});_0x2a6e8a[_0xa41f('0x33')]=_[_0xa41f('0x2f')](_0x54adda,_0xa41f('0x2d'));_0x2a6e8a[_0xa41f('0x34')]=_[_0xa41f('0x35')](_0x2034c5['query']);_0x2a6e8a[_0xa41f('0x36')]=_['intersection'](_0x2a6e8a[_0xa41f('0x33')],_0x2a6e8a[_0xa41f('0x34')]);_0x25db13[_0xa41f('0x37')]=_[_0xa41f('0x38')](_0x2a6e8a['model'],qs[_0xa41f('0x39')](_0x2034c5['query'][_0xa41f('0x39')]));_0x25db13[_0xa41f('0x37')]=_0x25db13[_0xa41f('0x37')][_0xa41f('0x3a')]?_0x25db13[_0xa41f('0x37')]:_0x2a6e8a['model'];if(!_0x2034c5[_0xa41f('0x34')][_0xa41f('0x3b')](_0xa41f('0x3c'))){_0x25db13[_0xa41f('0x21')]=qs[_0xa41f('0x21')](_0x2034c5[_0xa41f('0x34')][_0xa41f('0x21')]);_0x25db13['offset']=qs[_0xa41f('0x1f')](_0x2034c5[_0xa41f('0x34')]['offset']);}_0x25db13[_0xa41f('0x3d')]=qs[_0xa41f('0x3e')](_0x2034c5['query'][_0xa41f('0x3e')]);_0x25db13[_0xa41f('0x3f')]=qs[_0xa41f('0x36')](_['pick'](_0x2034c5[_0xa41f('0x34')],_0x2a6e8a['filters']),_0x54adda);if(_0x2034c5[_0xa41f('0x34')]['filter']){_0x25db13['where']=_['merge'](_0x25db13[_0xa41f('0x3f')],{'$or':_[_0xa41f('0x2f')](_0x54adda,function(_0x499c77){if(_0x499c77[_0xa41f('0x32')]!==_0xa41f('0x40')){var _0x3dbee5={};_0x3dbee5[_0x499c77[_0xa41f('0x2d')]]={'$like':'%'+_0x2034c5[_0xa41f('0x34')][_0xa41f('0x41')]+'%'};return _0x3dbee5;}})});}_0x25db13=_[_0xa41f('0x42')]({},_0x25db13,_0x2034c5[_0xa41f('0x43')]);var _0x472f67={'where':_0x25db13[_0xa41f('0x3f')]};return db[_0xa41f('0x44')][_0xa41f('0x22')](_0x472f67)['then'](function(_0x2c0409){_0x1def27[_0xa41f('0x22')]=_0x2c0409;if(_0x2034c5['query'][_0xa41f('0x45')]){_0x25db13['include']=[{'all':!![]}];}return db[_0xa41f('0x44')][_0xa41f('0x46')](_0x25db13);})['then'](function(_0x14f24b){_0x1def27[_0xa41f('0x47')]=_0x14f24b;return _0x1def27;})[_0xa41f('0x28')](respondWithFilteredResult(_0x83e9e1,_0x25db13))[_0xa41f('0x48')](handleError(_0x83e9e1,null));};exports[_0xa41f('0x49')]=function(_0x3df786,_0x49ec0d){var _0x1c594f={'raw':![],'where':{'id':_0x3df786[_0xa41f('0x4a')]['id']}},_0x422bee={};_0x422bee[_0xa41f('0x33')]=_['keys'](db[_0xa41f('0x44')][_0xa41f('0x30')]);_0x422bee[_0xa41f('0x34')]=_['keys'](_0x3df786[_0xa41f('0x34')]);_0x422bee[_0xa41f('0x36')]=_['intersection'](_0x422bee[_0xa41f('0x33')],_0x422bee[_0xa41f('0x34')]);_0x1c594f[_0xa41f('0x37')]=_[_0xa41f('0x38')](_0x422bee[_0xa41f('0x33')],qs['fields'](_0x3df786[_0xa41f('0x34')][_0xa41f('0x39')]));_0x1c594f[_0xa41f('0x37')]=_0x1c594f['attributes'][_0xa41f('0x3a')]?_0x1c594f[_0xa41f('0x37')]:_0x422bee[_0xa41f('0x33')];if(_0x3df786[_0xa41f('0x34')][_0xa41f('0x45')]){_0x1c594f[_0xa41f('0x4b')]=[{'all':!![]}];}_0x1c594f=_[_0xa41f('0x42')]({},_0x1c594f,_0x3df786[_0xa41f('0x43')]);return db[_0xa41f('0x44')]['find'](_0x1c594f)['then'](handleEntityNotFound(_0x49ec0d,null))[_0xa41f('0x28')](respondWithResult(_0x49ec0d,null))[_0xa41f('0x48')](handleError(_0x49ec0d,null));};exports[_0xa41f('0x4c')]=function(_0x7abc07,_0x5c9f08){return db['AnalyticCustomReport'][_0xa41f('0x4c')](_0x7abc07['body'],{})[_0xa41f('0x28')](function(_0x8446ca){var _0x3159b1=_0x7abc07[_0xa41f('0x4d')][_0xa41f('0x4e')]({'plain':!![]});if(!_0x3159b1)throw new Error(_0xa41f('0x4f'));if(_0x3159b1[_0xa41f('0x50')]===_0xa41f('0x4d')){var _0xdd0316=_0x8446ca[_0xa41f('0x4e')]({'plain':!![]});var _0x47c004='Reports';return db[_0xa41f('0x51')][_0xa41f('0x52')]({'where':{'name':_0x47c004,'userProfileId':_0x3159b1['userProfileId']},'raw':!![]})[_0xa41f('0x28')](function(_0x46b795){if(_0x46b795&&_0x46b795[_0xa41f('0x53')]===0x0){return db['UserProfileResource'][_0xa41f('0x4c')]({'name':_0xdd0316[_0xa41f('0x2d')],'resourceId':_0xdd0316['id'],'type':'CustomReports','sectionId':_0x46b795['id']},{})[_0xa41f('0x28')](function(){return _0x8446ca;});}else{return _0x8446ca;}})['catch'](function(_0x52721e){logger[_0xa41f('0x2c')](_0xa41f('0x54'),_0x52721e);throw _0x52721e;});}return _0x8446ca;})[_0xa41f('0x28')](respondWithResult(_0x5c9f08,0xc9))[_0xa41f('0x48')](handleError(_0x5c9f08,null));};exports[_0xa41f('0x27')]=function(_0x477630,_0x58e3af){if(_0x477630[_0xa41f('0x55')]['id']){delete _0x477630[_0xa41f('0x55')]['id'];}return db[_0xa41f('0x44')][_0xa41f('0x52')]({'where':{'id':_0x477630[_0xa41f('0x4a')]['id']}})[_0xa41f('0x28')](handleEntityNotFound(_0x58e3af,null))[_0xa41f('0x28')](saveUpdates(_0x477630[_0xa41f('0x55')],null))['then'](respondWithResult(_0x58e3af,null))[_0xa41f('0x48')](handleError(_0x58e3af,null));};exports[_0xa41f('0x29')]=function(_0x54610,_0x313ce1){return db[_0xa41f('0x44')][_0xa41f('0x52')]({'where':{'id':_0x54610[_0xa41f('0x4a')]['id']}})[_0xa41f('0x28')](handleEntityNotFound(_0x313ce1,null))['then'](removeEntity(_0x313ce1,null))[_0xa41f('0x48')](handleError(_0x313ce1,null));};exports[_0xa41f('0x56')]=function(_0x4247e2,_0x50f1da){var _0x29bd00=0xa;var _0x5bcb4f=[_0xa41f('0x57'),_0xa41f('0x58'),_0xa41f('0x59'),_0xa41f('0x5a')];var _0x2b7975={'SUM':_0xa41f('0x5b'),'COUNT':_0xa41f('0x5c'),'COUNT DISTINCT':_0xa41f('0x5d'),'MAX':_0xa41f('0x5e'),'MIN':'MIN(%s)','AVG':_0xa41f('0x5f'),'GROUP_CONCAT':_0xa41f('0x60'),'GROUP_CONCAT ASC':_0xa41f('0x61'),'GROUP_CONCAT DESC':_0xa41f('0x62')};var _0x2678af={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xa41f('0x63'),'HOUR':_0xa41f('0x64'),'ROUND':_0xa41f('0x65'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x7a898b=function(_0x17a232){return!_[_0xa41f('0x66')]([_0xa41f('0x67'),'IS\x20NOT\x20NULL',_0xa41f('0x68'),_0xa41f('0x69')],_0x17a232);};var _0x1f6170=function(_0x367e1b){if(!_0x367e1b||!_0x367e1b[_0xa41f('0x6a')][_0xa41f('0x3a')]){return'';}for(var _0x598dde='(',_0x390153=0x0;_0x390153<_0x367e1b[_0xa41f('0x6a')]['length'];_0x390153+=0x1){_0x390153>0x0&&(_0x598dde+='\x20'+_0x367e1b[_0xa41f('0x6b')]+'\x20');_0x598dde+=_0x367e1b[_0xa41f('0x6a')][_0x390153][_0xa41f('0x6c')]?_0x1f6170(_0x367e1b['rules'][_0x390153][_0xa41f('0x6c')]):_0x367e1b[_0xa41f('0x6a')][_0x390153][_0xa41f('0x6d')]+'\x20'+_0x367e1b['rules'][_0x390153]['condition']+(_0x7a898b(_0x367e1b['rules'][_0x390153][_0xa41f('0x6e')])?'\x20'+_0x367e1b[_0xa41f('0x6a')][_0x390153][_0xa41f('0x6f')]:'');}return _0x598dde+')';};var _0x5bcab3={'where':{'id':_0x4247e2['params']['id']}},_0xf272d5,_0x5388fc,_0x549adc,_0x18295d,_0x264912;_0x5bcab3=_[_0xa41f('0x42')]({},_0x5bcab3,_0x4247e2[_0xa41f('0x43')]);return db['AnalyticCustomReport'][_0xa41f('0x52')](_0x5bcab3)[_0xa41f('0x28')](function(_0x28cf6b){if(_0x28cf6b){_0xf272d5=_0x28cf6b;return _0x28cf6b[_0xa41f('0x70')]();}return null;})['then'](function(_0x25bd80){if(_0x25bd80){if(!_0x25bd80[_0xa41f('0x3a')]){throw new db['Sequelize'][(_0xa41f('0x71'))](_0xa41f('0x72'),0x193);}_0x5388fc=_0x25bd80;return db[_0xa41f('0x73')][_0xa41f('0x46')]({'raw':!![]});}return null;})[_0xa41f('0x28')](function(_0x49fb7c){if(_0x49fb7c){_0x549adc=_[_0xa41f('0x74')](_0x49fb7c,'id');var _0x3cd9b5;var _0x2f4970=squel[_0xa41f('0x75')]();_0x2f4970['from'](_0xf272d5[_0xa41f('0x76')]);for(var _0x587ac7=0x0;_0x587ac7<_0x5388fc[_0xa41f('0x3a')];_0x587ac7+=0x1){_0x3cd9b5=_0x5388fc[_0x587ac7][_0xa41f('0x77')]?_0x549adc[_0x5388fc[_0x587ac7][_0xa41f('0x77')]][_0xa41f('0x78')]:_0x5388fc[_0x587ac7]['field'];_0x3cd9b5=_0x5388fc[_0x587ac7][_0xa41f('0x79')]?_[_0xa41f('0x7a')](_0x2b7975[_0x5388fc[_0x587ac7]['function']],'%s',_0x3cd9b5):_0x3cd9b5;_0x3cd9b5=_0x5388fc[_0x587ac7][_0xa41f('0x7b')]?_[_0xa41f('0x7a')](_0x2678af[_0x5388fc[_0x587ac7]['format']],'%s',_0x3cd9b5):_0x3cd9b5;if(_0x5388fc[_0x587ac7][_0xa41f('0x7c')]){_0x2f4970['group'](_0x3cd9b5);}_0x5388fc[_0x587ac7][_0xa41f('0x7d')]&&_0x2f4970[_0xa41f('0x3d')](_0x3cd9b5,_0x5388fc[_0x587ac7][_0xa41f('0x7d')]===_0xa41f('0x7e')?![]:!![]);_0x2f4970[_0xa41f('0x6d')](_0x3cd9b5,_0x5388fc[_0x587ac7][_0xa41f('0x7f')]||_0x3cd9b5);}if(_0xf272d5[_0xa41f('0x80')]){_0xf272d5[_0xa41f('0x80')]=JSON[_0xa41f('0x81')](_0xf272d5['joins']);for(var _0xe28d3b=0x0;_0xe28d3b<_0xf272d5[_0xa41f('0x80')][_0xa41f('0x3a')];_0xe28d3b+=0x1){if(_0xf272d5[_0xa41f('0x80')][_0xe28d3b][_0xa41f('0x32')]&&_[_0xa41f('0x66')](_0x5bcb4f,_0xf272d5[_0xa41f('0x80')][_0xe28d3b]['type'])&&_0xf272d5[_0xa41f('0x80')][_0xe28d3b][_0xa41f('0x82')]&&_0xf272d5[_0xa41f('0x80')][_0xe28d3b]['foreignTable']&&_0xf272d5[_0xa41f('0x80')][_0xe28d3b][_0xa41f('0x83')]){_0x2f4970[_0xf272d5['joins'][_0xe28d3b][_0xa41f('0x32')]](_0xf272d5[_0xa41f('0x80')][_0xe28d3b]['foreignTable'],null,util[_0xa41f('0x7b')](_0xa41f('0x84'),_0xf272d5[_0xa41f('0x76')],_0xf272d5['joins'][_0xe28d3b]['parentKey'],_0xf272d5[_0xa41f('0x80')][_0xe28d3b][_0xa41f('0x85')],_0xf272d5[_0xa41f('0x80')][_0xe28d3b][_0xa41f('0x83')]));}}}if(_0xf272d5['conditions']){_0xf272d5[_0xa41f('0x86')]=JSON['parse'](_0xf272d5[_0xa41f('0x86')]);_0x2f4970['where'](_0x1f6170(_0xf272d5[_0xa41f('0x86')][_0xa41f('0x6c')]));}_0x264912=_0x2f4970[_0xa41f('0x87')]();_0x2f4970[_0xa41f('0x21')](_0x29bd00);_0x2f4970[_0xa41f('0x1f')](0x0);logger[_0xa41f('0x88')](_0xa41f('0x89'),_0x2f4970[_0xa41f('0x8a')]());return dbH[_0xa41f('0x8b')][_0xa41f('0x34')](_0x2f4970['toString'](),{'type':dbH['sequelize'][_0xa41f('0x8c')]['SELECT']});}})[_0xa41f('0x28')](respondWithResult(_0x50f1da,null))[_0xa41f('0x48')](handleError(_0x50f1da,null));};function runReport(_0x9e50fd,_0x195a72,_0x2e55a2){var _0x537d85=_0x195a72[_0xa41f('0x2d')];var _0x3a6767=0xa;var _0x31d2a4=[_0xa41f('0x57'),_0xa41f('0x58'),_0xa41f('0x59'),_0xa41f('0x5a')];var _0x13887b={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xa41f('0x5e'),'MIN':_0xa41f('0x8d'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xa41f('0x60'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xa41f('0x62')};var _0x37af6a={'SEC_TO_TIME':_0xa41f('0x8e'),'DATE':_0xa41f('0x63'),'HOUR':_0xa41f('0x64'),'ROUND':_0xa41f('0x65'),'UNIX_TIMESTAMP':_0xa41f('0x8f')};var _0x57dadc=function(_0x4064b8){return!_[_0xa41f('0x66')]([_0xa41f('0x67'),_0xa41f('0x90'),_0xa41f('0x68'),_0xa41f('0x69')],_0x4064b8);};var _0x487397=function(_0x3d71ae){if(!_0x3d71ae||!_0x3d71ae[_0xa41f('0x6a')][_0xa41f('0x3a')]){return'';}for(var _0x42d265='(',_0x5c0949=0x0;_0x5c0949<_0x3d71ae[_0xa41f('0x6a')][_0xa41f('0x3a')];_0x5c0949+=0x1){_0x5c0949>0x0&&(_0x42d265+='\x20'+_0x3d71ae['operator']+'\x20');_0x42d265+=_0x3d71ae[_0xa41f('0x6a')][_0x5c0949][_0xa41f('0x6c')]?_0x487397(_0x3d71ae['rules'][_0x5c0949]['group']):_0x3d71ae['rules'][_0x5c0949][_0xa41f('0x6d')]+'\x20'+_0x3d71ae[_0xa41f('0x6a')][_0x5c0949]['condition']+(_0x57dadc(_0x3d71ae['rules'][_0x5c0949][_0xa41f('0x6e')])?'\x20'+_0x3d71ae[_0xa41f('0x6a')][_0x5c0949][_0xa41f('0x6f')]:'');}return _0x42d265+')';};var _0x294e52={'where':{'id':_0x9e50fd['id']}},_0x544085,_0x56d56c,_0x94c759,_0x114c31,_0x4a6096;_0x294e52=_['merge']({},_0x294e52,_0x2e55a2);return db[_0xa41f('0x44')]['find'](_0x294e52)[_0xa41f('0x28')](function(_0x41dac8){if(_0x41dac8){_0x544085=_0x41dac8;return _0x41dac8[_0xa41f('0x70')]();}return null;})[_0xa41f('0x28')](function(_0x2c7e37){if(_0x2c7e37){if(!_0x2c7e37[_0xa41f('0x3a')]){throw new db[(_0xa41f('0x91'))]['ValidationErrorItem'](_0xa41f('0x72'),0x193);}_0x56d56c=_0x2c7e37;return db[_0xa41f('0x73')]['findAll']({'raw':!![]});}return null;})[_0xa41f('0x28')](function(_0x335d36){if(_0x335d36){_0x94c759=_[_0xa41f('0x74')](_0x335d36,'id');var _0x305d32;var _0x455a79=squel['select']();_0x455a79[_0xa41f('0x92')](_0x544085[_0xa41f('0x76')]);for(var _0x202ee9=0x0;_0x202ee9<_0x56d56c['length'];_0x202ee9+=0x1){_0x305d32=_0x56d56c[_0x202ee9][_0xa41f('0x77')]?_0x94c759[_0x56d56c[_0x202ee9][_0xa41f('0x77')]][_0xa41f('0x78')]:_0x56d56c[_0x202ee9]['field'];_0x305d32=_0x56d56c[_0x202ee9][_0xa41f('0x79')]?_['replace'](_0x13887b[_0x56d56c[_0x202ee9][_0xa41f('0x79')]],'%s',_0x305d32):_0x305d32;_0x305d32=_0x56d56c[_0x202ee9][_0xa41f('0x7b')]?_[_0xa41f('0x7a')](_0x37af6a[_0x56d56c[_0x202ee9]['format']],'%s',_0x305d32):_0x305d32;if(_0x56d56c[_0x202ee9]['groupBy']){_0x455a79[_0xa41f('0x6c')](_0x305d32);}_0x56d56c[_0x202ee9][_0xa41f('0x7d')]&&_0x455a79['order'](_0x305d32,_0x56d56c[_0x202ee9]['orderBy']===_0xa41f('0x7e')?![]:!![]);_0x455a79['field'](_0x305d32,_0x56d56c[_0x202ee9]['alias']||_0x305d32);}if(_0x544085[_0xa41f('0x80')]){_0x544085[_0xa41f('0x80')]=JSON[_0xa41f('0x81')](_0x544085[_0xa41f('0x80')]);for(var _0x1680d0=0x0;_0x1680d0<_0x544085['joins'][_0xa41f('0x3a')];_0x1680d0+=0x1){if(_0x544085[_0xa41f('0x80')][_0x1680d0][_0xa41f('0x32')]&&_[_0xa41f('0x66')](_0x31d2a4,_0x544085[_0xa41f('0x80')][_0x1680d0][_0xa41f('0x32')])&&_0x544085[_0xa41f('0x80')][_0x1680d0]['parentKey']&&_0x544085[_0xa41f('0x80')][_0x1680d0][_0xa41f('0x85')]&&_0x544085[_0xa41f('0x80')][_0x1680d0]['foreignKey']){_0x455a79[_0x544085[_0xa41f('0x80')][_0x1680d0][_0xa41f('0x32')]](_0x544085[_0xa41f('0x80')][_0x1680d0][_0xa41f('0x85')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x544085[_0xa41f('0x76')],_0x544085[_0xa41f('0x80')][_0x1680d0]['parentKey'],_0x544085[_0xa41f('0x80')][_0x1680d0][_0xa41f('0x85')],_0x544085[_0xa41f('0x80')][_0x1680d0][_0xa41f('0x83')]));}}}if(_0x544085[_0xa41f('0x86')]){_0x544085[_0xa41f('0x86')]=JSON[_0xa41f('0x81')](_0x544085[_0xa41f('0x86')]);_0x455a79[_0xa41f('0x3f')](_0x487397(_0x544085['conditions'][_0xa41f('0x6c')]));}_0x4a6096=_0x455a79[_0xa41f('0x87')]();_0x455a79[_0xa41f('0x21')](_0x3a6767);_0x455a79[_0xa41f('0x1f')](0x0);return;}})[_0xa41f('0x28')](function(){if(_0x195a72['output']===_0xa41f('0x93')){return null;}var _0x33e573=_[_0xa41f('0x42')](_0x195a72,{'name':_0x195a72[_0xa41f('0x94')]||_0x195a72[_0xa41f('0x2d')]||_0x544085[_0xa41f('0x2d')],'basename':_0x537d85,'savename':util[_0xa41f('0x7b')](_0xa41f('0x95'),_0x195a72[_0xa41f('0x2d')]||_0x544085[_0xa41f('0x2d')],require(_0xa41f('0x96'))[_0xa41f('0x97')](0x4),_0x195a72['output']||_0xa41f('0x98')),'reportId':_0x544085['id'],'reportType':'custom'});return db['AnalyticExtractedReport'][_0xa41f('0x4c')](_0x33e573,{'raw':!![]});})['then'](function(_0x30beae){if(_0x544085['table']===_0xa41f('0x99')){_0x4a6096[_0xa41f('0x3f')](_0x544085[_0xa41f('0x76')]+_0xa41f('0x9a'),_0x195a72['startDate'],_0x195a72[_0xa41f('0x9b')]);}else{_0x4a6096[_0xa41f('0x3f')](_0x544085[_0xa41f('0x76')]+_0xa41f('0x9c'),_0x195a72['startDate'],_0x195a72[_0xa41f('0x9b')]);}if(_0x30beae){logger['info'](_0xa41f('0x9d'),_0x4a6096[_0xa41f('0x8a')]());require(_0xa41f('0x9e'))['fork'](path[_0xa41f('0x57')](__dirname,'../../components/export/',_0x30beae[_0xa41f('0x9f')]),[_0x30beae['id'],_0x4a6096[_0xa41f('0x8a')](),path[_0xa41f('0x57')](__dirname,_0xa41f('0xa0'),_0x30beae[_0xa41f('0xa1')]),_0x537d85]);return _0x30beae;}else{var _0x5d5823=squel[_0xa41f('0x75')]();_0x5d5823[_0xa41f('0x92')]('('+_0x4a6096[_0xa41f('0x8a')]()+')',_0xa41f('0xa2'));_0x5d5823[_0xa41f('0x6d')]('COUNT(*)',_0xa41f('0x22'));_0x4a6096['limit'](_0x195a72[_0xa41f('0x21')]||_0x3a6767);_0x4a6096[_0xa41f('0x1f')](_0x195a72[_0xa41f('0x1f')]||0x0);return dbH['sequelize']['query'](_0x5d5823['toString'](),{'type':dbH[_0xa41f('0x8b')][_0xa41f('0x8c')][_0xa41f('0xa3')]})['then'](function(_0x1d02b4){if(!_0x1d02b4[_0xa41f('0x3a')]){_0x114c31=0x0;}else{_0x114c31=_0x1d02b4[0x0][_0xa41f('0x22')]||0x0;}return dbH[_0xa41f('0x8b')][_0xa41f('0x34')](_0x4a6096[_0xa41f('0x8a')](),{'type':dbH[_0xa41f('0x8b')][_0xa41f('0x8c')][_0xa41f('0xa3')]});})[_0xa41f('0x28')](function(_0x3cca4f){return{'rows':_0x3cca4f||[],'count':_0x114c31};});}});}exports[_0xa41f('0xa4')]=function(_0x258f71,_0x3157a2){return runReport(_0x258f71[_0xa41f('0x4a')],_0x258f71[_0xa41f('0x34')],_0x258f71[_0xa41f('0x43')])[_0xa41f('0x28')](respondWithResult(_0x3157a2,null))[_0xa41f('0x48')](handleError(_0x3157a2,null));};exports[_0xa41f('0xa5')]=runReport;exports[_0xa41f('0x34')]=function(_0x43e137,_0x1fc4cb){var _0x5890da=0xa;var _0x19c1e1=[_0xa41f('0x57'),_0xa41f('0x58'),_0xa41f('0x59'),_0xa41f('0x5a')];var _0x19c5fc={'SUM':_0xa41f('0x5b'),'COUNT':_0xa41f('0x5c'),'COUNT DISTINCT':_0xa41f('0x5d'),'MAX':_0xa41f('0x5e'),'MIN':'MIN(%s)','AVG':_0xa41f('0x5f'),'GROUP_CONCAT':_0xa41f('0x60'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xa41f('0x62')};var _0x101c3c={'SEC_TO_TIME':_0xa41f('0x8e'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0xa41f('0x65'),'UNIX_TIMESTAMP':_0xa41f('0x8f')};var _0x10673d=function(_0x5e7d1d){return!_['includes']([_0xa41f('0x67'),_0xa41f('0x90'),_0xa41f('0x68'),_0xa41f('0x69')],_0x5e7d1d);};var _0x2cec6f=function(_0x3681cd){if(!_0x3681cd||!_0x3681cd['rules'][_0xa41f('0x3a')]){return'';}for(var _0x1fbd61='(',_0x2d90c5=0x0;_0x2d90c5<_0x3681cd[_0xa41f('0x6a')][_0xa41f('0x3a')];_0x2d90c5+=0x1){_0x2d90c5>0x0&&(_0x1fbd61+='\x20'+_0x3681cd['operator']+'\x20');_0x1fbd61+=_0x3681cd[_0xa41f('0x6a')][_0x2d90c5]['group']?_0x2cec6f(_0x3681cd[_0xa41f('0x6a')][_0x2d90c5][_0xa41f('0x6c')]):_0x3681cd['rules'][_0x2d90c5]['field']+'\x20'+_0x3681cd[_0xa41f('0x6a')][_0x2d90c5]['condition']+(_0x10673d(_0x3681cd['rules'][_0x2d90c5][_0xa41f('0x6e')])?'\x20'+_0x3681cd[_0xa41f('0x6a')][_0x2d90c5]['value']:'');}return _0x1fbd61+')';};var _0x139e91={'where':{'id':_0x43e137[_0xa41f('0x4a')]['id']}},_0x1cb00e,_0x146885,_0x14361f,_0x223fcb,_0x8573fc;_0x139e91=_['merge']({},_0x139e91,_0x43e137[_0xa41f('0x43')]);return db[_0xa41f('0x44')]['find'](_0x139e91)['then'](function(_0x1a1cf4){if(_0x1a1cf4){_0x1cb00e=_0x1a1cf4;return _0x1a1cf4[_0xa41f('0x70')]();}return null;})[_0xa41f('0x28')](function(_0x5dbe5a){if(_0x5dbe5a){if(!_0x5dbe5a['length']){throw new db[(_0xa41f('0x91'))][(_0xa41f('0x71'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x146885=_0x5dbe5a;return db[_0xa41f('0x73')][_0xa41f('0x46')]({'raw':!![]});}return null;})[_0xa41f('0x28')](function(_0x18342c){if(_0x18342c){_0x14361f=_[_0xa41f('0x74')](_0x18342c,'id');var _0x39b255;var _0x448b5d=squel['select']();_0x448b5d[_0xa41f('0x92')](_0x1cb00e[_0xa41f('0x76')]);for(var _0x538a9a=0x0;_0x538a9a<_0x146885[_0xa41f('0x3a')];_0x538a9a+=0x1){_0x39b255=_0x146885[_0x538a9a]['MetricId']?_0x14361f[_0x146885[_0x538a9a]['MetricId']][_0xa41f('0x78')]:_0x146885[_0x538a9a][_0xa41f('0x6d')];_0x39b255=_0x146885[_0x538a9a][_0xa41f('0x79')]?_[_0xa41f('0x7a')](_0x19c5fc[_0x146885[_0x538a9a][_0xa41f('0x79')]],'%s',_0x39b255):_0x39b255;_0x39b255=_0x146885[_0x538a9a][_0xa41f('0x7b')]?_[_0xa41f('0x7a')](_0x101c3c[_0x146885[_0x538a9a][_0xa41f('0x7b')]],'%s',_0x39b255):_0x39b255;if(_0x146885[_0x538a9a][_0xa41f('0x7c')]){_0x448b5d['group'](_0x39b255);}_0x146885[_0x538a9a][_0xa41f('0x7d')]&&_0x448b5d['order'](_0x39b255,_0x146885[_0x538a9a][_0xa41f('0x7d')]===_0xa41f('0x7e')?![]:!![]);_0x448b5d['field'](_0x39b255,_0x146885[_0x538a9a][_0xa41f('0x7f')]||_0x39b255);}if(_0x1cb00e[_0xa41f('0x80')]){_0x1cb00e[_0xa41f('0x80')]=JSON[_0xa41f('0x81')](_0x1cb00e[_0xa41f('0x80')]);for(var _0x4766cf=0x0;_0x4766cf<_0x1cb00e[_0xa41f('0x80')][_0xa41f('0x3a')];_0x4766cf+=0x1){if(_0x1cb00e[_0xa41f('0x80')][_0x4766cf]['type']&&_['includes'](_0x19c1e1,_0x1cb00e[_0xa41f('0x80')][_0x4766cf][_0xa41f('0x32')])&&_0x1cb00e[_0xa41f('0x80')][_0x4766cf]['parentKey']&&_0x1cb00e[_0xa41f('0x80')][_0x4766cf][_0xa41f('0x85')]&&_0x1cb00e[_0xa41f('0x80')][_0x4766cf][_0xa41f('0x83')]){_0x448b5d[_0x1cb00e[_0xa41f('0x80')][_0x4766cf][_0xa41f('0x32')]](_0x1cb00e['joins'][_0x4766cf][_0xa41f('0x85')],null,util[_0xa41f('0x7b')]('%s.%s\x20=\x20%s.%s',_0x1cb00e[_0xa41f('0x76')],_0x1cb00e[_0xa41f('0x80')][_0x4766cf][_0xa41f('0x82')],_0x1cb00e[_0xa41f('0x80')][_0x4766cf][_0xa41f('0x85')],_0x1cb00e[_0xa41f('0x80')][_0x4766cf][_0xa41f('0x83')]));}}}if(_0x1cb00e[_0xa41f('0x86')]){_0x1cb00e[_0xa41f('0x86')]=JSON[_0xa41f('0x81')](_0x1cb00e[_0xa41f('0x86')]);_0x448b5d[_0xa41f('0x3f')](_0x2cec6f(_0x1cb00e[_0xa41f('0x86')]['group']));}_0x8573fc=_0x448b5d['clone']();_0x448b5d[_0xa41f('0x21')](_0x5890da);_0x448b5d['offset'](0x0);logger[_0xa41f('0x88')](_0xa41f('0x89'),_0x448b5d[_0xa41f('0x8a')]());return dbH[_0xa41f('0x8b')][_0xa41f('0x34')](_0x448b5d[_0xa41f('0x8a')](),{'type':dbH['sequelize'][_0xa41f('0x8c')]['SELECT']});}})[_0xa41f('0x28')](function(){return{'sql':_0x8573fc['toString']()};})[_0xa41f('0x28')](respondWithResult(_0x1fc4cb,null))['catch'](handleError(_0x1fc4cb,null));};