467641f83057cbb321b1f148de50c3c7aa7ec032
[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 _0x8708=['VIRTUAL','options','includeAll','include','rows','catch','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','CustomReports','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','GROUP_CONCAT(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','group','condition','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','MetricId','field','function','replace','groupBy','orderBy','DESC','alias','joins','parse','parentKey','foreignTable','format','%s.%s\x20=\x20%s.%s','table','foreignKey','conditions','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','UNIX_TIMESTAMP(%s)','IS\x20EMPTY','from','clone','No\x20available\x20data','web','fullPath','randomstring','output','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','savename','countTable','COUNT(*)','run','runReport','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','operator','getFields','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','then','get','UserProfileResource','destroy','error','name','send','AnalyticCustomReport','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge'];(function(_0x13b5fa,_0x567299){var _0x1ac737=function(_0x5343bc){while(--_0x5343bc){_0x13b5fa['push'](_0x13b5fa['shift']());}};_0x1ac737(++_0x567299);}(_0x8708,0x1a9));var _0x8870=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0x8708[_0x4b369d];return _0x571a98;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x8870('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8870('0x1'));var jsonpatch=require(_0x8870('0x2'));var rp=require(_0x8870('0x3'));var moment=require(_0x8870('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8870('0x5'));var util=require(_0x8870('0x6'));var path=require(_0x8870('0x7'));var sox=require(_0x8870('0x8'));var csv=require(_0x8870('0x9'));var ejs=require(_0x8870('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8870('0xb'));var crypto=require('crypto');var jsforce=require(_0x8870('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8870('0xd'));var Papa=require(_0x8870('0xe'));var Redis=require(_0x8870('0xf'));var authService=require(_0x8870('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x8870('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8870('0x12'))(_0x8870('0x13'));var utils=require(_0x8870('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require(_0x8870('0x15'))['dbH'];function respondWithStatusCode(_0x37ce8f,_0x4f04c1){_0x4f04c1=_0x4f04c1||0xcc;return function(_0xb25239){if(_0xb25239){return _0x37ce8f['sendStatus'](_0x4f04c1);}return _0x37ce8f[_0x8870('0x16')](_0x4f04c1)[_0x8870('0x17')]();};}function respondWithResult(_0x1548c7,_0x1fa8e1){_0x1fa8e1=_0x1fa8e1||0xc8;return function(_0xbaa33e){if(_0xbaa33e){return _0x1548c7[_0x8870('0x16')](_0x1fa8e1)[_0x8870('0x18')](_0xbaa33e);}};}function respondWithFilteredResult(_0x142b36,_0x28cf63){return function(_0x26d8f4){if(_0x26d8f4){var _0x59a3ad=_0x26d8f4[_0x8870('0x19')],_0x7b4d4=_0x28cf63[_0x8870('0x1a')],_0x3ef8c3=_0x28cf63[_0x8870('0x1a')]+_0x28cf63[_0x8870('0x1b')],_0x11f696;if(_0x3ef8c3>=_0x59a3ad){_0x3ef8c3=_0x59a3ad;_0x11f696=0xc8;}else{_0x11f696=0xce;}_0x142b36['status'](_0x11f696);return _0x142b36['set'](_0x8870('0x1c'),_0x7b4d4+'-'+_0x3ef8c3+'/'+_0x59a3ad)['json'](_0x26d8f4);}return null;};}function patchUpdates(_0x1cca0e){return function(_0x4b0d90){try{jsonpatch[_0x8870('0x1d')](_0x4b0d90,_0x1cca0e,!![]);}catch(_0x269ec1){return BPromise[_0x8870('0x1e')](_0x269ec1);}return _0x4b0d90[_0x8870('0x1f')]();};}function saveUpdates(_0x42696f,_0x1c63a0){return function(_0x3c4b17){if(_0x3c4b17){return _0x3c4b17[_0x8870('0x20')](_0x42696f)[_0x8870('0x21')](function(_0x479425){return _0x479425;});}return null;};}function removeEntity(_0x3697c0,_0x113193){return function(_0x1b433b){if(_0x1b433b){return _0x1b433b['destroy']()[_0x8870('0x21')](function(){var _0xc4193a=_0x1b433b[_0x8870('0x22')]({'plain':!![]});var _0x2618ed='CustomReports';return db[_0x8870('0x23')][_0x8870('0x24')]({'where':{'type':_0x2618ed,'resourceId':_0xc4193a['id']}})['then'](function(){return _0x1b433b;});})[_0x8870('0x21')](function(){_0x3697c0[_0x8870('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5069b8,_0x4dc0ce){return function(_0x447d1d){if(!_0x447d1d){_0x5069b8['sendStatus'](0x194);}return _0x447d1d;};}function handleError(_0x131867,_0x50022b){_0x50022b=_0x50022b||0x1f4;return function(_0x3b7463){logger[_0x8870('0x25')](_0x3b7463['stack']);if(_0x3b7463['name']){delete _0x3b7463[_0x8870('0x26')];}_0x131867[_0x8870('0x16')](_0x50022b)[_0x8870('0x27')](_0x3b7463);};}exports['index']=function(_0x401241,_0x157afe){var _0x4eb708={},_0x3d77a0={},_0x54539f={'count':0x0,'rows':[]};var _0x2065e6=_['map'](db[_0x8870('0x28')][_0x8870('0x29')],function(_0x1939f6){return{'name':_0x1939f6[_0x8870('0x2a')],'type':_0x1939f6[_0x8870('0x2b')][_0x8870('0x2c')]};});_0x3d77a0[_0x8870('0x2d')]=_[_0x8870('0x2e')](_0x2065e6,_0x8870('0x26'));_0x3d77a0[_0x8870('0x2f')]=_[_0x8870('0x30')](_0x401241[_0x8870('0x2f')]);_0x3d77a0[_0x8870('0x31')]=_[_0x8870('0x32')](_0x3d77a0[_0x8870('0x2d')],_0x3d77a0[_0x8870('0x2f')]);_0x4eb708[_0x8870('0x33')]=_['intersection'](_0x3d77a0[_0x8870('0x2d')],qs[_0x8870('0x34')](_0x401241['query'][_0x8870('0x34')]));_0x4eb708[_0x8870('0x33')]=_0x4eb708['attributes'][_0x8870('0x35')]?_0x4eb708[_0x8870('0x33')]:_0x3d77a0[_0x8870('0x2d')];if(!_0x401241['query'][_0x8870('0x36')]('nolimit')){_0x4eb708[_0x8870('0x1b')]=qs[_0x8870('0x1b')](_0x401241[_0x8870('0x2f')][_0x8870('0x1b')]);_0x4eb708[_0x8870('0x1a')]=qs['offset'](_0x401241[_0x8870('0x2f')][_0x8870('0x1a')]);}_0x4eb708[_0x8870('0x37')]=qs['sort'](_0x401241[_0x8870('0x2f')][_0x8870('0x38')]);_0x4eb708[_0x8870('0x39')]=qs[_0x8870('0x31')](_[_0x8870('0x3a')](_0x401241[_0x8870('0x2f')],_0x3d77a0['filters']),_0x2065e6);if(_0x401241['query'][_0x8870('0x3b')]){_0x4eb708[_0x8870('0x39')]=_[_0x8870('0x3c')](_0x4eb708[_0x8870('0x39')],{'$or':_['map'](_0x2065e6,function(_0x9a81c9){if(_0x9a81c9['type']!==_0x8870('0x3d')){var _0xb0b782={};_0xb0b782[_0x9a81c9[_0x8870('0x26')]]={'$like':'%'+_0x401241[_0x8870('0x2f')][_0x8870('0x3b')]+'%'};return _0xb0b782;}})});}_0x4eb708=_[_0x8870('0x3c')]({},_0x4eb708,_0x401241[_0x8870('0x3e')]);var _0x50e0ab={'where':_0x4eb708[_0x8870('0x39')]};return db[_0x8870('0x28')]['count'](_0x50e0ab)[_0x8870('0x21')](function(_0x27d6b1){_0x54539f[_0x8870('0x19')]=_0x27d6b1;if(_0x401241[_0x8870('0x2f')][_0x8870('0x3f')]){_0x4eb708[_0x8870('0x40')]=[{'all':!![]}];}return db[_0x8870('0x28')]['findAll'](_0x4eb708);})[_0x8870('0x21')](function(_0x12e477){_0x54539f[_0x8870('0x41')]=_0x12e477;return _0x54539f;})[_0x8870('0x21')](respondWithFilteredResult(_0x157afe,_0x4eb708))[_0x8870('0x42')](handleError(_0x157afe,null));};exports['show']=function(_0x3d24c4,_0x481954){var _0x526a9d={'raw':![],'where':{'id':_0x3d24c4[_0x8870('0x43')]['id']}},_0x4550fa={};_0x4550fa[_0x8870('0x2d')]=_['keys'](db['AnalyticCustomReport']['rawAttributes']);_0x4550fa['query']=_['keys'](_0x3d24c4[_0x8870('0x2f')]);_0x4550fa[_0x8870('0x31')]=_['intersection'](_0x4550fa['model'],_0x4550fa[_0x8870('0x2f')]);_0x526a9d[_0x8870('0x33')]=_['intersection'](_0x4550fa[_0x8870('0x2d')],qs['fields'](_0x3d24c4['query']['fields']));_0x526a9d[_0x8870('0x33')]=_0x526a9d[_0x8870('0x33')]['length']?_0x526a9d['attributes']:_0x4550fa['model'];if(_0x3d24c4[_0x8870('0x2f')]['includeAll']){_0x526a9d[_0x8870('0x40')]=[{'all':!![]}];}_0x526a9d=_[_0x8870('0x3c')]({},_0x526a9d,_0x3d24c4['options']);return db[_0x8870('0x28')][_0x8870('0x44')](_0x526a9d)[_0x8870('0x21')](handleEntityNotFound(_0x481954,null))[_0x8870('0x21')](respondWithResult(_0x481954,null))[_0x8870('0x42')](handleError(_0x481954,null));};exports['create']=function(_0x29d314,_0x2da146){return db[_0x8870('0x28')][_0x8870('0x45')](_0x29d314[_0x8870('0x46')],{})['then'](function(_0x5eb13e){var _0x149b65=_0x29d314[_0x8870('0x47')]['get']({'plain':!![]});if(!_0x149b65)throw new Error(_0x8870('0x48'));if(_0x149b65[_0x8870('0x49')]==='user'){var _0x47cd43=_0x5eb13e[_0x8870('0x22')]({'plain':!![]});var _0x4fd176=_0x8870('0x4a');return db[_0x8870('0x4b')][_0x8870('0x44')]({'where':{'name':_0x4fd176,'userProfileId':_0x149b65[_0x8870('0x4c')]},'raw':!![]})[_0x8870('0x21')](function(_0x28cf15){if(_0x28cf15&&_0x28cf15['autoAssociation']===0x0){return db[_0x8870('0x23')][_0x8870('0x45')]({'name':_0x47cd43['name'],'resourceId':_0x47cd43['id'],'type':_0x8870('0x4d'),'sectionId':_0x28cf15['id']},{})[_0x8870('0x21')](function(){return _0x5eb13e;});}else{return _0x5eb13e;}})[_0x8870('0x42')](function(_0x975003){logger[_0x8870('0x25')](_0x8870('0x4e'),_0x975003);throw _0x975003;});}return _0x5eb13e;})['then'](respondWithResult(_0x2da146,0xc9))[_0x8870('0x42')](handleError(_0x2da146,null));};exports[_0x8870('0x20')]=function(_0x5ee110,_0x862627){if(_0x5ee110['body']['id']){delete _0x5ee110[_0x8870('0x46')]['id'];}return db[_0x8870('0x28')][_0x8870('0x44')]({'where':{'id':_0x5ee110[_0x8870('0x43')]['id']}})[_0x8870('0x21')](handleEntityNotFound(_0x862627,null))[_0x8870('0x21')](saveUpdates(_0x5ee110[_0x8870('0x46')],null))['then'](respondWithResult(_0x862627,null))[_0x8870('0x42')](handleError(_0x862627,null));};exports[_0x8870('0x24')]=function(_0x3e2cad,_0x9b6a5a){return db[_0x8870('0x28')][_0x8870('0x44')]({'where':{'id':_0x3e2cad[_0x8870('0x43')]['id']}})[_0x8870('0x21')](handleEntityNotFound(_0x9b6a5a,null))[_0x8870('0x21')](removeEntity(_0x9b6a5a,null))['catch'](handleError(_0x9b6a5a,null));};exports['preview']=function(_0x47fba8,_0xdcf196){var _0x31bf4b=0xa;var _0x3a1872=[_0x8870('0x4f'),'left_join',_0x8870('0x50'),_0x8870('0x51')];var _0x52e1e9={'SUM':_0x8870('0x52'),'COUNT':_0x8870('0x53'),'COUNT DISTINCT':_0x8870('0x54'),'MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x8870('0x55'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x45ee3f={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x8870('0x56'),'HOUR':_0x8870('0x57'),'ROUND':_0x8870('0x58'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x1eff02=function(_0x2c93b2){return!_[_0x8870('0x59')]([_0x8870('0x5a'),_0x8870('0x5b'),'IS\x20EMPTY',_0x8870('0x5c')],_0x2c93b2);};var _0x22e6b6=function(_0x56432b){if(!_0x56432b||!_0x56432b[_0x8870('0x5d')]['length']){return'';}for(var _0x592321='(',_0x4f10e7=0x0;_0x4f10e7<_0x56432b[_0x8870('0x5d')][_0x8870('0x35')];_0x4f10e7+=0x1){_0x4f10e7>0x0&&(_0x592321+='\x20'+_0x56432b['operator']+'\x20');_0x592321+=_0x56432b[_0x8870('0x5d')][_0x4f10e7]['group']?_0x22e6b6(_0x56432b[_0x8870('0x5d')][_0x4f10e7][_0x8870('0x5e')]):_0x56432b['rules'][_0x4f10e7]['field']+'\x20'+_0x56432b['rules'][_0x4f10e7][_0x8870('0x5f')]+(_0x1eff02(_0x56432b['rules'][_0x4f10e7][_0x8870('0x5f')])?'\x20'+_0x56432b[_0x8870('0x5d')][_0x4f10e7][_0x8870('0x60')]:'');}return _0x592321+')';};var _0x23116b={'where':{'id':_0x47fba8['params']['id']}},_0x1e3af0,_0x29a66a,_0x1c5089,_0x4f8fe4,_0x48cb51;_0x23116b=_['merge']({},_0x23116b,_0x47fba8[_0x8870('0x3e')]);return db[_0x8870('0x28')][_0x8870('0x44')](_0x23116b)[_0x8870('0x21')](function(_0x166eb4){if(_0x166eb4){_0x1e3af0=_0x166eb4;return _0x166eb4['getFields']();}return null;})[_0x8870('0x21')](function(_0x5ace10){if(_0x5ace10){if(!_0x5ace10[_0x8870('0x35')]){throw new db[(_0x8870('0x61'))][(_0x8870('0x62'))](_0x8870('0x63'),0x193);}_0x29a66a=_0x5ace10;return db[_0x8870('0x64')][_0x8870('0x65')]({'raw':!![]});}return null;})[_0x8870('0x21')](function(_0x18cc78){if(_0x18cc78){_0x1c5089=_[_0x8870('0x66')](_0x18cc78,'id');var _0x184826;var _0x1e2a1c=squel[_0x8870('0x67')]();_0x1e2a1c['from'](_0x1e3af0['table']);for(var _0xdb4e34=0x0;_0xdb4e34<_0x29a66a[_0x8870('0x35')];_0xdb4e34+=0x1){_0x184826=_0x29a66a[_0xdb4e34]['MetricId']?_0x1c5089[_0x29a66a[_0xdb4e34][_0x8870('0x68')]]['metric']:_0x29a66a[_0xdb4e34][_0x8870('0x69')];_0x184826=_0x29a66a[_0xdb4e34]['function']?_['replace'](_0x52e1e9[_0x29a66a[_0xdb4e34][_0x8870('0x6a')]],'%s',_0x184826):_0x184826;_0x184826=_0x29a66a[_0xdb4e34]['format']?_[_0x8870('0x6b')](_0x45ee3f[_0x29a66a[_0xdb4e34]['format']],'%s',_0x184826):_0x184826;if(_0x29a66a[_0xdb4e34][_0x8870('0x6c')]){_0x1e2a1c[_0x8870('0x5e')](_0x184826);}_0x29a66a[_0xdb4e34][_0x8870('0x6d')]&&_0x1e2a1c[_0x8870('0x37')](_0x184826,_0x29a66a[_0xdb4e34]['orderBy']===_0x8870('0x6e')?![]:!![]);_0x1e2a1c['field'](_0x184826,_0x29a66a[_0xdb4e34][_0x8870('0x6f')]||_0x184826);}if(_0x1e3af0[_0x8870('0x70')]){_0x1e3af0['joins']=JSON[_0x8870('0x71')](_0x1e3af0[_0x8870('0x70')]);for(var _0x55c775=0x0;_0x55c775<_0x1e3af0['joins'][_0x8870('0x35')];_0x55c775+=0x1){if(_0x1e3af0[_0x8870('0x70')][_0x55c775][_0x8870('0x2b')]&&_[_0x8870('0x59')](_0x3a1872,_0x1e3af0[_0x8870('0x70')][_0x55c775][_0x8870('0x2b')])&&_0x1e3af0[_0x8870('0x70')][_0x55c775][_0x8870('0x72')]&&_0x1e3af0['joins'][_0x55c775][_0x8870('0x73')]&&_0x1e3af0[_0x8870('0x70')][_0x55c775]['foreignKey']){_0x1e2a1c[_0x1e3af0[_0x8870('0x70')][_0x55c775][_0x8870('0x2b')]](_0x1e3af0['joins'][_0x55c775][_0x8870('0x73')],null,util[_0x8870('0x74')](_0x8870('0x75'),_0x1e3af0[_0x8870('0x76')],_0x1e3af0['joins'][_0x55c775][_0x8870('0x72')],_0x1e3af0[_0x8870('0x70')][_0x55c775][_0x8870('0x73')],_0x1e3af0[_0x8870('0x70')][_0x55c775][_0x8870('0x77')]));}}}if(_0x1e3af0['conditions']){_0x1e3af0[_0x8870('0x78')]=JSON['parse'](_0x1e3af0[_0x8870('0x78')]);_0x1e2a1c[_0x8870('0x39')](_0x22e6b6(_0x1e3af0['conditions'][_0x8870('0x5e')]));}_0x48cb51=_0x1e2a1c['clone']();_0x1e2a1c[_0x8870('0x1b')](_0x31bf4b);_0x1e2a1c[_0x8870('0x1a')](0x0);logger[_0x8870('0x79')](_0x8870('0x7a'),_0x1e2a1c[_0x8870('0x7b')]());return db[_0x8870('0x7c')][_0x8870('0x2f')](_0x1e2a1c[_0x8870('0x7b')](),{'type':db[_0x8870('0x7c')][_0x8870('0x7d')][_0x8870('0x7e')]});}})[_0x8870('0x21')](respondWithResult(_0xdcf196,null))[_0x8870('0x42')](handleError(_0xdcf196,null));};function runReport(_0x45e670,_0x4b4314,_0x161bfb){var _0x19323a=_0x4b4314['name'];var _0x3dacee=0xa;var _0x530993=[_0x8870('0x4f'),_0x8870('0x7f'),_0x8870('0x50'),'cross_join'];var _0x43131c={'SUM':_0x8870('0x52'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x8870('0x80'),'MIN':_0x8870('0x81'),'AVG':_0x8870('0x82'),'GROUP_CONCAT':_0x8870('0x55'),'GROUP_CONCAT ASC':_0x8870('0x83'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0xf835fa={'SEC_TO_TIME':_0x8870('0x84'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0x8870('0x58'),'UNIX_TIMESTAMP':_0x8870('0x85')};var _0x42632a=function(_0x19e311){return!_[_0x8870('0x59')]([_0x8870('0x5a'),_0x8870('0x5b'),_0x8870('0x86'),'IS\x20NOT\x20EMPTY'],_0x19e311);};var _0x1857de=function(_0x39e17d){if(!_0x39e17d||!_0x39e17d[_0x8870('0x5d')]['length']){return'';}for(var _0x4a8238='(',_0x162031=0x0;_0x162031<_0x39e17d[_0x8870('0x5d')][_0x8870('0x35')];_0x162031+=0x1){_0x162031>0x0&&(_0x4a8238+='\x20'+_0x39e17d['operator']+'\x20');_0x4a8238+=_0x39e17d['rules'][_0x162031][_0x8870('0x5e')]?_0x1857de(_0x39e17d[_0x8870('0x5d')][_0x162031]['group']):_0x39e17d[_0x8870('0x5d')][_0x162031][_0x8870('0x69')]+'\x20'+_0x39e17d['rules'][_0x162031]['condition']+(_0x42632a(_0x39e17d['rules'][_0x162031][_0x8870('0x5f')])?'\x20'+_0x39e17d[_0x8870('0x5d')][_0x162031][_0x8870('0x60')]:'');}return _0x4a8238+')';};var _0x3cf10c={'where':{'id':_0x45e670['id']}},_0x1adc74,_0x26bf5e,_0x2e4e00,_0xf916f9,_0x53e5c0;_0x3cf10c=_[_0x8870('0x3c')]({},_0x3cf10c,_0x161bfb);return db['AnalyticCustomReport'][_0x8870('0x44')](_0x3cf10c)[_0x8870('0x21')](function(_0x6dfcf1){if(_0x6dfcf1){_0x1adc74=_0x6dfcf1;return _0x6dfcf1['getFields']();}return null;})[_0x8870('0x21')](function(_0x2d772b){if(_0x2d772b){if(!_0x2d772b[_0x8870('0x35')]){throw new db[(_0x8870('0x61'))]['ValidationErrorItem'](_0x8870('0x63'),0x193);}_0x26bf5e=_0x2d772b;return db[_0x8870('0x64')]['findAll']({'raw':!![]});}return null;})[_0x8870('0x21')](function(_0x291b47){if(_0x291b47){_0x2e4e00=_[_0x8870('0x66')](_0x291b47,'id');var _0x520421;var _0x18e311=squel['select']();_0x18e311[_0x8870('0x87')](_0x1adc74['table']);for(var _0x3566ab=0x0;_0x3566ab<_0x26bf5e[_0x8870('0x35')];_0x3566ab+=0x1){_0x520421=_0x26bf5e[_0x3566ab][_0x8870('0x68')]?_0x2e4e00[_0x26bf5e[_0x3566ab][_0x8870('0x68')]]['metric']:_0x26bf5e[_0x3566ab]['field'];_0x520421=_0x26bf5e[_0x3566ab][_0x8870('0x6a')]?_[_0x8870('0x6b')](_0x43131c[_0x26bf5e[_0x3566ab]['function']],'%s',_0x520421):_0x520421;_0x520421=_0x26bf5e[_0x3566ab][_0x8870('0x74')]?_[_0x8870('0x6b')](_0xf835fa[_0x26bf5e[_0x3566ab][_0x8870('0x74')]],'%s',_0x520421):_0x520421;if(_0x26bf5e[_0x3566ab][_0x8870('0x6c')]){_0x18e311[_0x8870('0x5e')](_0x520421);}_0x26bf5e[_0x3566ab][_0x8870('0x6d')]&&_0x18e311['order'](_0x520421,_0x26bf5e[_0x3566ab][_0x8870('0x6d')]===_0x8870('0x6e')?![]:!![]);_0x18e311[_0x8870('0x69')](_0x520421,_0x26bf5e[_0x3566ab][_0x8870('0x6f')]||_0x520421);}if(_0x1adc74[_0x8870('0x70')]){_0x1adc74[_0x8870('0x70')]=JSON[_0x8870('0x71')](_0x1adc74['joins']);for(var _0x1e47f9=0x0;_0x1e47f9<_0x1adc74[_0x8870('0x70')]['length'];_0x1e47f9+=0x1){if(_0x1adc74['joins'][_0x1e47f9][_0x8870('0x2b')]&&_[_0x8870('0x59')](_0x530993,_0x1adc74[_0x8870('0x70')][_0x1e47f9][_0x8870('0x2b')])&&_0x1adc74['joins'][_0x1e47f9][_0x8870('0x72')]&&_0x1adc74[_0x8870('0x70')][_0x1e47f9][_0x8870('0x73')]&&_0x1adc74[_0x8870('0x70')][_0x1e47f9][_0x8870('0x77')]){_0x18e311[_0x1adc74[_0x8870('0x70')][_0x1e47f9][_0x8870('0x2b')]](_0x1adc74['joins'][_0x1e47f9]['foreignTable'],null,util[_0x8870('0x74')]('%s.%s\x20=\x20%s.%s',_0x1adc74['table'],_0x1adc74[_0x8870('0x70')][_0x1e47f9][_0x8870('0x72')],_0x1adc74['joins'][_0x1e47f9][_0x8870('0x73')],_0x1adc74[_0x8870('0x70')][_0x1e47f9][_0x8870('0x77')]));}}}if(_0x1adc74['conditions']){_0x1adc74[_0x8870('0x78')]=JSON[_0x8870('0x71')](_0x1adc74[_0x8870('0x78')]);_0x18e311[_0x8870('0x39')](_0x1857de(_0x1adc74[_0x8870('0x78')][_0x8870('0x5e')]));}_0x53e5c0=_0x18e311[_0x8870('0x88')]();_0x18e311[_0x8870('0x1b')](_0x3dacee);_0x18e311[_0x8870('0x1a')](0x0);logger['debug'](_0x8870('0x7a'),_0x18e311[_0x8870('0x7b')]());return db[_0x8870('0x7c')][_0x8870('0x2f')](_0x18e311[_0x8870('0x7b')](),{'type':db['sequelize'][_0x8870('0x7d')][_0x8870('0x7e')]});}})[_0x8870('0x21')](function(_0x45f062){if(!_0x45f062['length']){throw new db['Sequelize']['ValidationErrorItem'](_0x8870('0x89'),0xcc);}if(_0x4b4314['output']===_0x8870('0x8a')){return null;}var _0x2d7f04=_[_0x8870('0x3c')](_0x4b4314,{'name':_0x4b4314[_0x8870('0x8b')]||_0x4b4314[_0x8870('0x26')]||_0x1adc74[_0x8870('0x26')],'basename':_0x19323a,'savename':util['format']('%s-%s.%s',_0x4b4314[_0x8870('0x26')]||_0x1adc74['name'],require(_0x8870('0x8c'))['generate'](0x4),_0x4b4314[_0x8870('0x8d')]||_0x8870('0x8e')),'reportId':_0x1adc74['id'],'reportType':_0x8870('0x8f')});return db[_0x8870('0x90')][_0x8870('0x45')](_0x2d7f04,{'raw':!![]});})[_0x8870('0x21')](function(_0x5bc8f1){if(_0x1adc74[_0x8870('0x76')]===_0x8870('0x91')){_0x53e5c0[_0x8870('0x39')](_0x1adc74[_0x8870('0x76')]+_0x8870('0x92'),_0x4b4314[_0x8870('0x93')],_0x4b4314[_0x8870('0x94')]);}else{_0x53e5c0[_0x8870('0x39')](_0x1adc74[_0x8870('0x76')]+_0x8870('0x95'),_0x4b4314[_0x8870('0x93')],_0x4b4314[_0x8870('0x94')]);}if(_0x5bc8f1){logger[_0x8870('0x96')](_0x8870('0x97'),_0x53e5c0[_0x8870('0x7b')]());require(_0x8870('0x98'))[_0x8870('0x99')](path['join'](__dirname,'../../components/export/',_0x5bc8f1[_0x8870('0x8d')]),[_0x5bc8f1['id'],_0x53e5c0[_0x8870('0x7b')](),path[_0x8870('0x4f')](__dirname,'../../files/reports',_0x5bc8f1[_0x8870('0x9a')]),_0x19323a]);return _0x5bc8f1;}else{var _0x400728=squel[_0x8870('0x67')]();_0x400728[_0x8870('0x87')]('('+_0x53e5c0[_0x8870('0x7b')]()+')',_0x8870('0x9b'));_0x400728[_0x8870('0x69')](_0x8870('0x9c'),_0x8870('0x19'));_0x53e5c0[_0x8870('0x1b')](_0x4b4314[_0x8870('0x1b')]||_0x3dacee);_0x53e5c0['offset'](_0x4b4314['offset']||0x0);return dbH[_0x8870('0x7c')][_0x8870('0x2f')](_0x400728['toString'](),{'type':dbH[_0x8870('0x7c')]['QueryTypes'][_0x8870('0x7e')]})['then'](function(_0x282606){if(!_0x282606['length']){_0xf916f9=0x0;}else{_0xf916f9=_0x282606[0x0][_0x8870('0x19')]||0x0;}return dbH[_0x8870('0x7c')][_0x8870('0x2f')](_0x53e5c0[_0x8870('0x7b')](),{'type':dbH[_0x8870('0x7c')]['QueryTypes'][_0x8870('0x7e')]});})[_0x8870('0x21')](function(_0x3ae97d){return{'rows':_0x3ae97d||[],'count':_0xf916f9};});}});}exports[_0x8870('0x9d')]=function(_0x36c8cd,_0x14970a){return runReport(_0x36c8cd[_0x8870('0x43')],_0x36c8cd[_0x8870('0x2f')],_0x36c8cd['options'])[_0x8870('0x21')](respondWithResult(_0x14970a,null))[_0x8870('0x42')](handleError(_0x14970a,null));};exports[_0x8870('0x9e')]=runReport;exports['query']=function(_0x440b44,_0x338260){var _0x1c1bef=0xa;var _0x35c6ba=[_0x8870('0x4f'),_0x8870('0x7f'),_0x8870('0x50'),_0x8870('0x51')];var _0x253fc8={'SUM':_0x8870('0x52'),'COUNT':_0x8870('0x53'),'COUNT DISTINCT':_0x8870('0x54'),'MAX':_0x8870('0x80'),'MIN':'MIN(%s)','AVG':_0x8870('0x82'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x8870('0x83'),'GROUP_CONCAT DESC':_0x8870('0x9f')};var _0x3f63e3={'SEC_TO_TIME':_0x8870('0x84'),'DATE':_0x8870('0x56'),'HOUR':_0x8870('0x57'),'ROUND':_0x8870('0x58'),'UNIX_TIMESTAMP':_0x8870('0x85')};var _0xcc2cb0=function(_0x43502b){return!_[_0x8870('0x59')]([_0x8870('0x5a'),_0x8870('0x5b'),'IS\x20EMPTY','IS\x20NOT\x20EMPTY'],_0x43502b);};var _0x29da89=function(_0x6e1582){if(!_0x6e1582||!_0x6e1582[_0x8870('0x5d')][_0x8870('0x35')]){return'';}for(var _0x141ca1='(',_0xcda70a=0x0;_0xcda70a<_0x6e1582[_0x8870('0x5d')]['length'];_0xcda70a+=0x1){_0xcda70a>0x0&&(_0x141ca1+='\x20'+_0x6e1582[_0x8870('0xa0')]+'\x20');_0x141ca1+=_0x6e1582[_0x8870('0x5d')][_0xcda70a]['group']?_0x29da89(_0x6e1582[_0x8870('0x5d')][_0xcda70a]['group']):_0x6e1582[_0x8870('0x5d')][_0xcda70a][_0x8870('0x69')]+'\x20'+_0x6e1582[_0x8870('0x5d')][_0xcda70a][_0x8870('0x5f')]+(_0xcc2cb0(_0x6e1582[_0x8870('0x5d')][_0xcda70a][_0x8870('0x5f')])?'\x20'+_0x6e1582[_0x8870('0x5d')][_0xcda70a][_0x8870('0x60')]:'');}return _0x141ca1+')';};var _0x14fb06={'where':{'id':_0x440b44['params']['id']}},_0x311cdb,_0x4a4fc9,_0x33cfb2,_0xe793c6,_0x40e4f5;_0x14fb06=_[_0x8870('0x3c')]({},_0x14fb06,_0x440b44['options']);return db[_0x8870('0x28')][_0x8870('0x44')](_0x14fb06)[_0x8870('0x21')](function(_0x5cfb97){if(_0x5cfb97){_0x311cdb=_0x5cfb97;return _0x5cfb97[_0x8870('0xa1')]();}return null;})['then'](function(_0x3f05e7){if(_0x3f05e7){if(!_0x3f05e7[_0x8870('0x35')]){throw new db[(_0x8870('0x61'))][(_0x8870('0x62'))](_0x8870('0x63'),0x193);}_0x4a4fc9=_0x3f05e7;return db[_0x8870('0x64')][_0x8870('0x65')]({'raw':!![]});}return null;})[_0x8870('0x21')](function(_0x104dac){if(_0x104dac){_0x33cfb2=_[_0x8870('0x66')](_0x104dac,'id');var _0x1c4de5;var _0x42b0b2=squel[_0x8870('0x67')]();_0x42b0b2[_0x8870('0x87')](_0x311cdb[_0x8870('0x76')]);for(var _0x22681c=0x0;_0x22681c<_0x4a4fc9[_0x8870('0x35')];_0x22681c+=0x1){_0x1c4de5=_0x4a4fc9[_0x22681c][_0x8870('0x68')]?_0x33cfb2[_0x4a4fc9[_0x22681c]['MetricId']]['metric']:_0x4a4fc9[_0x22681c]['field'];_0x1c4de5=_0x4a4fc9[_0x22681c][_0x8870('0x6a')]?_[_0x8870('0x6b')](_0x253fc8[_0x4a4fc9[_0x22681c][_0x8870('0x6a')]],'%s',_0x1c4de5):_0x1c4de5;_0x1c4de5=_0x4a4fc9[_0x22681c][_0x8870('0x74')]?_[_0x8870('0x6b')](_0x3f63e3[_0x4a4fc9[_0x22681c][_0x8870('0x74')]],'%s',_0x1c4de5):_0x1c4de5;if(_0x4a4fc9[_0x22681c][_0x8870('0x6c')]){_0x42b0b2[_0x8870('0x5e')](_0x1c4de5);}_0x4a4fc9[_0x22681c][_0x8870('0x6d')]&&_0x42b0b2[_0x8870('0x37')](_0x1c4de5,_0x4a4fc9[_0x22681c][_0x8870('0x6d')]===_0x8870('0x6e')?![]:!![]);_0x42b0b2[_0x8870('0x69')](_0x1c4de5,_0x4a4fc9[_0x22681c][_0x8870('0x6f')]||_0x1c4de5);}if(_0x311cdb[_0x8870('0x70')]){_0x311cdb[_0x8870('0x70')]=JSON[_0x8870('0x71')](_0x311cdb[_0x8870('0x70')]);for(var _0x2fc3e2=0x0;_0x2fc3e2<_0x311cdb['joins']['length'];_0x2fc3e2+=0x1){if(_0x311cdb[_0x8870('0x70')][_0x2fc3e2][_0x8870('0x2b')]&&_[_0x8870('0x59')](_0x35c6ba,_0x311cdb[_0x8870('0x70')][_0x2fc3e2][_0x8870('0x2b')])&&_0x311cdb[_0x8870('0x70')][_0x2fc3e2]['parentKey']&&_0x311cdb[_0x8870('0x70')][_0x2fc3e2][_0x8870('0x73')]&&_0x311cdb[_0x8870('0x70')][_0x2fc3e2][_0x8870('0x77')]){_0x42b0b2[_0x311cdb[_0x8870('0x70')][_0x2fc3e2][_0x8870('0x2b')]](_0x311cdb[_0x8870('0x70')][_0x2fc3e2]['foreignTable'],null,util['format']('%s.%s\x20=\x20%s.%s',_0x311cdb[_0x8870('0x76')],_0x311cdb[_0x8870('0x70')][_0x2fc3e2][_0x8870('0x72')],_0x311cdb['joins'][_0x2fc3e2][_0x8870('0x73')],_0x311cdb['joins'][_0x2fc3e2][_0x8870('0x77')]));}}}if(_0x311cdb['conditions']){_0x311cdb[_0x8870('0x78')]=JSON[_0x8870('0x71')](_0x311cdb[_0x8870('0x78')]);_0x42b0b2[_0x8870('0x39')](_0x29da89(_0x311cdb[_0x8870('0x78')]['group']));}_0x40e4f5=_0x42b0b2[_0x8870('0x88')]();_0x42b0b2[_0x8870('0x1b')](_0x1c1bef);_0x42b0b2[_0x8870('0x1a')](0x0);logger[_0x8870('0x79')](_0x8870('0x7a'),_0x42b0b2[_0x8870('0x7b')]());return db['sequelize'][_0x8870('0x2f')](_0x42b0b2[_0x8870('0x7b')](),{'type':db['sequelize']['QueryTypes'][_0x8870('0x7e')]});}})['then'](function(){return{'sql':_0x40e4f5[_0x8870('0x7b')]()};})[_0x8870('0x21')](respondWithResult(_0x338260,null))[_0x8870('0x42')](handleError(_0x338260,null));};