Built motion from commit 3c2ce842.|2.6.31
[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 _0xb77a=['sort','where','pick','filters','merge','filter','options','includeAll','include','findAll','show','params','keys','find','catch','create','body','user','Reports','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','select','from','table','MetricId','function','replace','format','groupBy','orderBy','DESC','alias','joins','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','parse','debug','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','SUM(%s)','AVG(%s)','HOUR(%s)','ROUND(%s)','keyBy','metric','clone','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','startDate','info','Run\x20Query:','fork','join','../../files/reports','savename','countTable','COUNT(*)','run','runReport','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','dbH','status','undefined','offset','count','limit','set','Content-Range','json','apply','reject','update','then','destroy','get','CustomReports','UserProfileResource','stack','name','send','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','order'];(function(_0x155faf,_0x55d3e7){var _0x3316b3=function(_0x4c7f6a){while(--_0x4c7f6a){_0x155faf['push'](_0x155faf['shift']());}};_0x3316b3(++_0x55d3e7);}(_0xb77a,0x10f));var _0xab77=function(_0x50b196,_0x1ed90a){_0x50b196=_0x50b196-0x0;var _0x2fd701=_0xb77a[_0x50b196];return _0x2fd701;};'use strict';var emlformat=require(_0xab77('0x0'));var rimraf=require(_0xab77('0x1'));var zipdir=require(_0xab77('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xab77('0x3'));var moment=require('moment');var BPromise=require(_0xab77('0x4'));var Mustache=require(_0xab77('0x5'));var util=require(_0xab77('0x6'));var path=require(_0xab77('0x7'));var sox=require(_0xab77('0x8'));var csv=require(_0xab77('0x9'));var ejs=require(_0xab77('0xa'));var fs=require('fs');var fs_extra=require(_0xab77('0xb'));var _=require(_0xab77('0xc'));var squel=require(_0xab77('0xd'));var crypto=require(_0xab77('0xe'));var jsforce=require(_0xab77('0xf'));var deskjs=require(_0xab77('0x10'));var toCsv=require(_0xab77('0x9'));var querystring=require(_0xab77('0x11'));var Papa=require(_0xab77('0x12'));var Redis=require(_0xab77('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xab77('0x14'));var logger=require(_0xab77('0x15'))('api');var utils=require(_0xab77('0x16'));var config=require(_0xab77('0x17'));var licenseUtil=require(_0xab77('0x18'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xab77('0x19')];function respondWithStatusCode(_0x3b6fbd,_0xc3af74){_0xc3af74=_0xc3af74||0xcc;return function(_0xc54371){if(_0xc54371){return _0x3b6fbd['sendStatus'](_0xc3af74);}return _0x3b6fbd[_0xab77('0x1a')](_0xc3af74)['end']();};}function respondWithResult(_0x24a5e8,_0xbb9eea){_0xbb9eea=_0xbb9eea||0xc8;return function(_0xdd4f05){if(_0xdd4f05){return _0x24a5e8['status'](_0xbb9eea)['json'](_0xdd4f05);}};}function respondWithFilteredResult(_0x91b67d,_0x51cff2){return function(_0x5756e5){if(_0x5756e5){var _0x45e2f7=typeof _0x51cff2['offset']===_0xab77('0x1b')&&typeof _0x51cff2['limit']==='undefined';var _0xc8183=_0x5756e5['count'];var _0x2714d0=_0x45e2f7?0x0:_0x51cff2[_0xab77('0x1c')];var _0x10ceab=_0x45e2f7?_0x5756e5[_0xab77('0x1d')]:_0x51cff2['offset']+_0x51cff2[_0xab77('0x1e')];var _0x32c85b;if(_0x10ceab>=_0xc8183){_0x10ceab=_0xc8183;_0x32c85b=0xc8;}else{_0x32c85b=0xce;}_0x91b67d['status'](_0x32c85b);return _0x91b67d[_0xab77('0x1f')](_0xab77('0x20'),_0x2714d0+'-'+_0x10ceab+'/'+_0xc8183)[_0xab77('0x21')](_0x5756e5);}return null;};}function patchUpdates(_0x3b1420){return function(_0x273fba){try{jsonpatch[_0xab77('0x22')](_0x273fba,_0x3b1420,!![]);}catch(_0x3fd9b5){return BPromise[_0xab77('0x23')](_0x3fd9b5);}return _0x273fba['save']();};}function saveUpdates(_0x3a7ae7,_0x205e11){return function(_0x174de6){if(_0x174de6){return _0x174de6[_0xab77('0x24')](_0x3a7ae7)[_0xab77('0x25')](function(_0x247c90){return _0x247c90;});}return null;};}function removeEntity(_0x2ea6d6,_0x4cfa7a){return function(_0x4b0f8a){if(_0x4b0f8a){return _0x4b0f8a[_0xab77('0x26')]()['then'](function(){var _0xe1dae0=_0x4b0f8a[_0xab77('0x27')]({'plain':!![]});var _0x48b8c5=_0xab77('0x28');return db[_0xab77('0x29')][_0xab77('0x26')]({'where':{'type':_0x48b8c5,'resourceId':_0xe1dae0['id']}})[_0xab77('0x25')](function(){return _0x4b0f8a;});})['then'](function(){_0x2ea6d6['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x285334,_0x43b983){return function(_0x489ef2){if(!_0x489ef2){_0x285334['sendStatus'](0x194);}return _0x489ef2;};}function handleError(_0x40133d,_0x30683c){_0x30683c=_0x30683c||0x1f4;return function(_0x258738){logger['error'](_0x258738[_0xab77('0x2a')]);if(_0x258738[_0xab77('0x2b')]){delete _0x258738[_0xab77('0x2b')];}_0x40133d['status'](_0x30683c)[_0xab77('0x2c')](_0x258738);};}exports['index']=function(_0x13459b,_0x20d9fe){var _0x2258ee={},_0xf1add1={},_0x58d61b={'count':0x0,'rows':[]};var _0x5cdcd1=_[_0xab77('0x2d')](db[_0xab77('0x2e')][_0xab77('0x2f')],function(_0x53c74b){return{'name':_0x53c74b[_0xab77('0x30')],'type':_0x53c74b[_0xab77('0x31')][_0xab77('0x32')]};});_0xf1add1[_0xab77('0x33')]=_[_0xab77('0x2d')](_0x5cdcd1,_0xab77('0x2b'));_0xf1add1[_0xab77('0x34')]=_['keys'](_0x13459b[_0xab77('0x34')]);_0xf1add1['filters']=_[_0xab77('0x35')](_0xf1add1[_0xab77('0x33')],_0xf1add1['query']);_0x2258ee[_0xab77('0x36')]=_[_0xab77('0x35')](_0xf1add1[_0xab77('0x33')],qs[_0xab77('0x37')](_0x13459b['query']['fields']));_0x2258ee['attributes']=_0x2258ee[_0xab77('0x36')][_0xab77('0x38')]?_0x2258ee[_0xab77('0x36')]:_0xf1add1[_0xab77('0x33')];if(!_0x13459b['query'][_0xab77('0x39')]('nolimit')){_0x2258ee['limit']=qs[_0xab77('0x1e')](_0x13459b[_0xab77('0x34')][_0xab77('0x1e')]);_0x2258ee[_0xab77('0x1c')]=qs[_0xab77('0x1c')](_0x13459b[_0xab77('0x34')]['offset']);}_0x2258ee[_0xab77('0x3a')]=qs[_0xab77('0x3b')](_0x13459b[_0xab77('0x34')][_0xab77('0x3b')]);_0x2258ee[_0xab77('0x3c')]=qs['filters'](_[_0xab77('0x3d')](_0x13459b[_0xab77('0x34')],_0xf1add1[_0xab77('0x3e')]),_0x5cdcd1);if(_0x13459b[_0xab77('0x34')]['filter']){_0x2258ee[_0xab77('0x3c')]=_[_0xab77('0x3f')](_0x2258ee['where'],{'$or':_[_0xab77('0x2d')](_0x5cdcd1,function(_0xc153d4){if(_0xc153d4[_0xab77('0x31')]!=='VIRTUAL'){var _0x56fecc={};_0x56fecc[_0xc153d4[_0xab77('0x2b')]]={'$like':'%'+_0x13459b[_0xab77('0x34')][_0xab77('0x40')]+'%'};return _0x56fecc;}})});}_0x2258ee=_['merge']({},_0x2258ee,_0x13459b[_0xab77('0x41')]);var _0x41db98={'where':_0x2258ee[_0xab77('0x3c')]};return db[_0xab77('0x2e')][_0xab77('0x1d')](_0x41db98)[_0xab77('0x25')](function(_0x7cb290){_0x58d61b[_0xab77('0x1d')]=_0x7cb290;if(_0x13459b[_0xab77('0x34')][_0xab77('0x42')]){_0x2258ee[_0xab77('0x43')]=[{'all':!![]}];}return db['AnalyticCustomReport'][_0xab77('0x44')](_0x2258ee);})[_0xab77('0x25')](function(_0x344ed7){_0x58d61b['rows']=_0x344ed7;return _0x58d61b;})[_0xab77('0x25')](respondWithFilteredResult(_0x20d9fe,_0x2258ee))['catch'](handleError(_0x20d9fe,null));};exports[_0xab77('0x45')]=function(_0x24dcf0,_0x4225f2){var _0xeebecd={'raw':![],'where':{'id':_0x24dcf0[_0xab77('0x46')]['id']}},_0x1e1a93={};_0x1e1a93[_0xab77('0x33')]=_[_0xab77('0x47')](db[_0xab77('0x2e')][_0xab77('0x2f')]);_0x1e1a93[_0xab77('0x34')]=_[_0xab77('0x47')](_0x24dcf0[_0xab77('0x34')]);_0x1e1a93['filters']=_[_0xab77('0x35')](_0x1e1a93[_0xab77('0x33')],_0x1e1a93[_0xab77('0x34')]);_0xeebecd['attributes']=_[_0xab77('0x35')](_0x1e1a93[_0xab77('0x33')],qs[_0xab77('0x37')](_0x24dcf0['query']['fields']));_0xeebecd[_0xab77('0x36')]=_0xeebecd['attributes']['length']?_0xeebecd[_0xab77('0x36')]:_0x1e1a93[_0xab77('0x33')];if(_0x24dcf0[_0xab77('0x34')]['includeAll']){_0xeebecd[_0xab77('0x43')]=[{'all':!![]}];}_0xeebecd=_['merge']({},_0xeebecd,_0x24dcf0[_0xab77('0x41')]);return db[_0xab77('0x2e')][_0xab77('0x48')](_0xeebecd)[_0xab77('0x25')](handleEntityNotFound(_0x4225f2,null))[_0xab77('0x25')](respondWithResult(_0x4225f2,null))[_0xab77('0x49')](handleError(_0x4225f2,null));};exports[_0xab77('0x4a')]=function(_0x8f66d2,_0x5eef79){return db[_0xab77('0x2e')][_0xab77('0x4a')](_0x8f66d2[_0xab77('0x4b')],{})[_0xab77('0x25')](function(_0x518c0c){var _0x439ba0=_0x8f66d2['user'][_0xab77('0x27')]({'plain':!![]});if(!_0x439ba0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x439ba0['role']===_0xab77('0x4c')){var _0x3f943e=_0x518c0c[_0xab77('0x27')]({'plain':!![]});var _0x370eaa=_0xab77('0x4d');return db[_0xab77('0x4e')][_0xab77('0x48')]({'where':{'name':_0x370eaa,'userProfileId':_0x439ba0[_0xab77('0x4f')]},'raw':!![]})[_0xab77('0x25')](function(_0x132d27){if(_0x132d27&&_0x132d27['autoAssociation']===0x0){return db[_0xab77('0x29')][_0xab77('0x4a')]({'name':_0x3f943e[_0xab77('0x2b')],'resourceId':_0x3f943e['id'],'type':_0xab77('0x28'),'sectionId':_0x132d27['id']},{})[_0xab77('0x25')](function(){return _0x518c0c;});}else{return _0x518c0c;}})[_0xab77('0x49')](function(_0x56be69){logger[_0xab77('0x50')](_0xab77('0x51'),_0x56be69);throw _0x56be69;});}return _0x518c0c;})[_0xab77('0x25')](respondWithResult(_0x5eef79,0xc9))['catch'](handleError(_0x5eef79,null));};exports[_0xab77('0x24')]=function(_0x3c7c4c,_0x58a4a5){if(_0x3c7c4c['body']['id']){delete _0x3c7c4c[_0xab77('0x4b')]['id'];}return db[_0xab77('0x2e')][_0xab77('0x48')]({'where':{'id':_0x3c7c4c[_0xab77('0x46')]['id']}})[_0xab77('0x25')](handleEntityNotFound(_0x58a4a5,null))[_0xab77('0x25')](saveUpdates(_0x3c7c4c[_0xab77('0x4b')],null))['then'](respondWithResult(_0x58a4a5,null))[_0xab77('0x49')](handleError(_0x58a4a5,null));};exports['destroy']=function(_0x2cab01,_0xb928e1){return db[_0xab77('0x2e')]['find']({'where':{'id':_0x2cab01[_0xab77('0x46')]['id']}})[_0xab77('0x25')](handleEntityNotFound(_0xb928e1,null))[_0xab77('0x25')](removeEntity(_0xb928e1,null))[_0xab77('0x49')](handleError(_0xb928e1,null));};exports[_0xab77('0x52')]=function(_0x2933cc,_0x18e071){var _0x5a0131=0xa;var _0x548250=['join',_0xab77('0x53'),_0xab77('0x54'),_0xab77('0x55')];var _0x4dda98={'SUM':'SUM(%s)','COUNT':_0xab77('0x56'),'COUNT DISTINCT':_0xab77('0x57'),'MAX':_0xab77('0x58'),'MIN':_0xab77('0x59'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xab77('0x5a'),'GROUP_CONCAT DESC':_0xab77('0x5b')};var _0x16c4a={'SEC_TO_TIME':_0xab77('0x5c'),'DATE':_0xab77('0x5d'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xab77('0x5e')};var _0x15c41d=function(_0x2d917d){return!_[_0xab77('0x5f')]([_0xab77('0x60'),_0xab77('0x61'),_0xab77('0x62'),_0xab77('0x63')],_0x2d917d);};var _0x492560=function(_0x206c01){if(!_0x206c01||!_0x206c01[_0xab77('0x64')][_0xab77('0x38')]){return'';}for(var _0x13e283='(',_0x31e211=0x0;_0x31e211<_0x206c01[_0xab77('0x64')][_0xab77('0x38')];_0x31e211+=0x1){_0x31e211>0x0&&(_0x13e283+='\x20'+_0x206c01[_0xab77('0x65')]+'\x20');_0x13e283+=_0x206c01[_0xab77('0x64')][_0x31e211][_0xab77('0x66')]?_0x492560(_0x206c01['rules'][_0x31e211]['group']):_0x206c01[_0xab77('0x64')][_0x31e211][_0xab77('0x67')]+'\x20'+_0x206c01[_0xab77('0x64')][_0x31e211][_0xab77('0x68')]+(_0x15c41d(_0x206c01[_0xab77('0x64')][_0x31e211][_0xab77('0x68')])?'\x20'+_0x206c01['rules'][_0x31e211][_0xab77('0x69')]:'');}return _0x13e283+')';};var _0x44c920={'where':{'id':_0x2933cc[_0xab77('0x46')]['id']}},_0x9b171f,_0x4d17b2,_0x5f2b83,_0x43904c,_0x3b8f35;_0x44c920=_['merge']({},_0x44c920,_0x2933cc['options']);return db['AnalyticCustomReport']['find'](_0x44c920)['then'](function(_0x23f30f){if(_0x23f30f){_0x9b171f=_0x23f30f;return _0x23f30f[_0xab77('0x6a')]();}return null;})[_0xab77('0x25')](function(_0xd56819){if(_0xd56819){if(!_0xd56819['length']){throw new db[(_0xab77('0x6b'))][(_0xab77('0x6c'))](_0xab77('0x6d'),0x193);}_0x4d17b2=_0xd56819;return db[_0xab77('0x6e')][_0xab77('0x44')]({'raw':!![]});}return null;})[_0xab77('0x25')](function(_0xf9d2d5){if(_0xf9d2d5){_0x5f2b83=_['keyBy'](_0xf9d2d5,'id');var _0x1ef768;var _0x38bfe2=squel[_0xab77('0x6f')]();_0x38bfe2[_0xab77('0x70')](_0x9b171f[_0xab77('0x71')]);for(var _0x40bdb9=0x0;_0x40bdb9<_0x4d17b2[_0xab77('0x38')];_0x40bdb9+=0x1){_0x1ef768=_0x4d17b2[_0x40bdb9][_0xab77('0x72')]?_0x5f2b83[_0x4d17b2[_0x40bdb9][_0xab77('0x72')]]['metric']:_0x4d17b2[_0x40bdb9][_0xab77('0x67')];_0x1ef768=_0x4d17b2[_0x40bdb9][_0xab77('0x73')]?_[_0xab77('0x74')](_0x4dda98[_0x4d17b2[_0x40bdb9][_0xab77('0x73')]],'%s',_0x1ef768):_0x1ef768;_0x1ef768=_0x4d17b2[_0x40bdb9][_0xab77('0x75')]?_['replace'](_0x16c4a[_0x4d17b2[_0x40bdb9][_0xab77('0x75')]],'%s',_0x1ef768):_0x1ef768;if(_0x4d17b2[_0x40bdb9][_0xab77('0x76')]){_0x38bfe2['group'](_0x1ef768);}_0x4d17b2[_0x40bdb9][_0xab77('0x77')]&&_0x38bfe2[_0xab77('0x3a')](_0x1ef768,_0x4d17b2[_0x40bdb9][_0xab77('0x77')]===_0xab77('0x78')?![]:!![]);_0x38bfe2['field'](_0x1ef768,_0x4d17b2[_0x40bdb9][_0xab77('0x79')]||_0x1ef768);}if(_0x9b171f[_0xab77('0x7a')]){_0x9b171f[_0xab77('0x7a')]=JSON['parse'](_0x9b171f['joins']);for(var _0x4cc0d4=0x0;_0x4cc0d4<_0x9b171f[_0xab77('0x7a')][_0xab77('0x38')];_0x4cc0d4+=0x1){if(_0x9b171f[_0xab77('0x7a')][_0x4cc0d4][_0xab77('0x31')]&&_[_0xab77('0x5f')](_0x548250,_0x9b171f[_0xab77('0x7a')][_0x4cc0d4][_0xab77('0x31')])&&_0x9b171f[_0xab77('0x7a')][_0x4cc0d4][_0xab77('0x7b')]&&_0x9b171f[_0xab77('0x7a')][_0x4cc0d4][_0xab77('0x7c')]&&_0x9b171f[_0xab77('0x7a')][_0x4cc0d4][_0xab77('0x7d')]){_0x38bfe2[_0x9b171f[_0xab77('0x7a')][_0x4cc0d4]['type']](_0x9b171f[_0xab77('0x7a')][_0x4cc0d4][_0xab77('0x7c')],null,util['format'](_0xab77('0x7e'),_0x9b171f[_0xab77('0x71')],_0x9b171f['joins'][_0x4cc0d4][_0xab77('0x7b')],_0x9b171f[_0xab77('0x7a')][_0x4cc0d4]['foreignTable'],_0x9b171f[_0xab77('0x7a')][_0x4cc0d4][_0xab77('0x7d')]));}}}if(_0x9b171f[_0xab77('0x7f')]){_0x9b171f[_0xab77('0x7f')]=JSON[_0xab77('0x80')](_0x9b171f['conditions']);_0x38bfe2[_0xab77('0x3c')](_0x492560(_0x9b171f[_0xab77('0x7f')][_0xab77('0x66')]));}_0x3b8f35=_0x38bfe2['clone']();_0x38bfe2[_0xab77('0x1e')](_0x5a0131);_0x38bfe2[_0xab77('0x1c')](0x0);logger[_0xab77('0x81')](_0xab77('0x82'),_0x38bfe2['toString']());return dbH[_0xab77('0x83')][_0xab77('0x34')](_0x38bfe2[_0xab77('0x84')](),{'type':dbH['sequelize'][_0xab77('0x85')][_0xab77('0x86')]});}})['then'](respondWithResult(_0x18e071,null))['catch'](handleError(_0x18e071,null));};function runReport(_0x5e4777,_0x504381,_0x344971){var _0x17dcf3=_0x504381[_0xab77('0x2b')];var _0x325363=0xa;var _0x116f5e=['join',_0xab77('0x53'),'right_join','cross_join'];var _0x3b3559={'SUM':_0xab77('0x87'),'COUNT':_0xab77('0x56'),'COUNT DISTINCT':_0xab77('0x57'),'MAX':_0xab77('0x58'),'MIN':'MIN(%s)','AVG':_0xab77('0x88'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xab77('0x5a'),'GROUP_CONCAT DESC':_0xab77('0x5b')};var _0x557c46={'SEC_TO_TIME':_0xab77('0x5c'),'DATE':_0xab77('0x5d'),'HOUR':_0xab77('0x89'),'ROUND':_0xab77('0x8a'),'UNIX_TIMESTAMP':_0xab77('0x5e')};var _0x2753a8=function(_0x3ab091){return!_[_0xab77('0x5f')](['IS\x20NULL',_0xab77('0x61'),_0xab77('0x62'),_0xab77('0x63')],_0x3ab091);};var _0x2397a9=function(_0x499d50){if(!_0x499d50||!_0x499d50['rules'][_0xab77('0x38')]){return'';}for(var _0x779645='(',_0x257167=0x0;_0x257167<_0x499d50[_0xab77('0x64')][_0xab77('0x38')];_0x257167+=0x1){_0x257167>0x0&&(_0x779645+='\x20'+_0x499d50[_0xab77('0x65')]+'\x20');_0x779645+=_0x499d50['rules'][_0x257167][_0xab77('0x66')]?_0x2397a9(_0x499d50[_0xab77('0x64')][_0x257167][_0xab77('0x66')]):_0x499d50[_0xab77('0x64')][_0x257167][_0xab77('0x67')]+'\x20'+_0x499d50[_0xab77('0x64')][_0x257167]['condition']+(_0x2753a8(_0x499d50['rules'][_0x257167][_0xab77('0x68')])?'\x20'+_0x499d50[_0xab77('0x64')][_0x257167][_0xab77('0x69')]:'');}return _0x779645+')';};var _0x3a2c95={'where':{'id':_0x5e4777['id']}},_0x496d3e,_0x306b82,_0x59ebe5,_0xc6ff31,_0x113ae2;_0x3a2c95=_[_0xab77('0x3f')]({},_0x3a2c95,_0x344971);return db['AnalyticCustomReport'][_0xab77('0x48')](_0x3a2c95)[_0xab77('0x25')](function(_0x7648d0){if(_0x7648d0){_0x496d3e=_0x7648d0;return _0x7648d0[_0xab77('0x6a')]();}return null;})[_0xab77('0x25')](function(_0x1e7541){if(_0x1e7541){if(!_0x1e7541[_0xab77('0x38')]){throw new db[(_0xab77('0x6b'))]['ValidationErrorItem'](_0xab77('0x6d'),0x193);}_0x306b82=_0x1e7541;return db[_0xab77('0x6e')][_0xab77('0x44')]({'raw':!![]});}return null;})['then'](function(_0x139543){if(_0x139543){_0x59ebe5=_[_0xab77('0x8b')](_0x139543,'id');var _0xce87e2;var _0x3c594a=squel[_0xab77('0x6f')]();_0x3c594a[_0xab77('0x70')](_0x496d3e['table']);for(var _0x46ae62=0x0;_0x46ae62<_0x306b82[_0xab77('0x38')];_0x46ae62+=0x1){_0xce87e2=_0x306b82[_0x46ae62][_0xab77('0x72')]?_0x59ebe5[_0x306b82[_0x46ae62]['MetricId']][_0xab77('0x8c')]:_0x306b82[_0x46ae62][_0xab77('0x67')];_0xce87e2=_0x306b82[_0x46ae62][_0xab77('0x73')]?_[_0xab77('0x74')](_0x3b3559[_0x306b82[_0x46ae62][_0xab77('0x73')]],'%s',_0xce87e2):_0xce87e2;_0xce87e2=_0x306b82[_0x46ae62]['format']?_[_0xab77('0x74')](_0x557c46[_0x306b82[_0x46ae62][_0xab77('0x75')]],'%s',_0xce87e2):_0xce87e2;if(_0x306b82[_0x46ae62][_0xab77('0x76')]){_0x3c594a[_0xab77('0x66')](_0xce87e2);}_0x306b82[_0x46ae62][_0xab77('0x77')]&&_0x3c594a[_0xab77('0x3a')](_0xce87e2,_0x306b82[_0x46ae62][_0xab77('0x77')]===_0xab77('0x78')?![]:!![]);_0x3c594a[_0xab77('0x67')](_0xce87e2,_0x306b82[_0x46ae62][_0xab77('0x79')]||_0xce87e2);}if(_0x496d3e[_0xab77('0x7a')]){_0x496d3e[_0xab77('0x7a')]=JSON[_0xab77('0x80')](_0x496d3e[_0xab77('0x7a')]);for(var _0x44f03c=0x0;_0x44f03c<_0x496d3e[_0xab77('0x7a')]['length'];_0x44f03c+=0x1){if(_0x496d3e['joins'][_0x44f03c][_0xab77('0x31')]&&_[_0xab77('0x5f')](_0x116f5e,_0x496d3e[_0xab77('0x7a')][_0x44f03c]['type'])&&_0x496d3e[_0xab77('0x7a')][_0x44f03c][_0xab77('0x7b')]&&_0x496d3e[_0xab77('0x7a')][_0x44f03c][_0xab77('0x7c')]&&_0x496d3e[_0xab77('0x7a')][_0x44f03c]['foreignKey']){_0x3c594a[_0x496d3e[_0xab77('0x7a')][_0x44f03c]['type']](_0x496d3e[_0xab77('0x7a')][_0x44f03c][_0xab77('0x7c')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x496d3e[_0xab77('0x71')],_0x496d3e['joins'][_0x44f03c][_0xab77('0x7b')],_0x496d3e['joins'][_0x44f03c][_0xab77('0x7c')],_0x496d3e[_0xab77('0x7a')][_0x44f03c][_0xab77('0x7d')]));}}}if(_0x496d3e['conditions']){_0x496d3e[_0xab77('0x7f')]=JSON[_0xab77('0x80')](_0x496d3e[_0xab77('0x7f')]);_0x3c594a['where'](_0x2397a9(_0x496d3e[_0xab77('0x7f')][_0xab77('0x66')]));}_0x113ae2=_0x3c594a[_0xab77('0x8d')]();_0x3c594a['limit'](_0x325363);_0x3c594a[_0xab77('0x1c')](0x0);return;}})['then'](function(){if(_0x504381[_0xab77('0x8e')]===_0xab77('0x8f')){return null;}var _0x1b50de=_[_0xab77('0x3f')](_0x504381,{'name':_0x504381[_0xab77('0x90')]||_0x504381[_0xab77('0x2b')]||_0x496d3e[_0xab77('0x2b')],'basename':_0x17dcf3,'savename':util['format'](_0xab77('0x91'),_0x504381[_0xab77('0x2b')]||_0x496d3e[_0xab77('0x2b')],require(_0xab77('0x92'))[_0xab77('0x93')](0x4),_0x504381['output']||_0xab77('0x94')),'reportId':_0x496d3e['id'],'reportType':_0xab77('0x95')});return db[_0xab77('0x96')][_0xab77('0x4a')](_0x1b50de,{'raw':!![]});})['then'](function(_0x2e7530){if(_0x496d3e[_0xab77('0x71')]===_0xab77('0x97')){_0x113ae2['where'](_0x496d3e[_0xab77('0x71')]+_0xab77('0x98'),_0x504381['startDate'],_0x504381[_0xab77('0x99')]);}else{_0x113ae2[_0xab77('0x3c')](_0x496d3e[_0xab77('0x71')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x504381[_0xab77('0x9a')],_0x504381[_0xab77('0x99')]);}if(_0x2e7530){logger[_0xab77('0x9b')](_0xab77('0x9c'),_0x113ae2[_0xab77('0x84')]());require('child_process')[_0xab77('0x9d')](path['join'](__dirname,'../../components/export/',_0x2e7530[_0xab77('0x8e')]),[_0x2e7530['id'],_0x113ae2[_0xab77('0x84')](),path[_0xab77('0x9e')](__dirname,_0xab77('0x9f'),_0x2e7530[_0xab77('0xa0')]),_0x17dcf3]);return _0x2e7530;}else{var _0x35be6f=squel[_0xab77('0x6f')]();_0x35be6f[_0xab77('0x70')]('('+_0x113ae2['toString']()+')',_0xab77('0xa1'));_0x35be6f[_0xab77('0x67')](_0xab77('0xa2'),_0xab77('0x1d'));_0x113ae2[_0xab77('0x1e')](_0x504381[_0xab77('0x1e')]||_0x325363);_0x113ae2['offset'](_0x504381['offset']||0x0);return dbH['sequelize']['query'](_0x35be6f[_0xab77('0x84')](),{'type':dbH[_0xab77('0x83')][_0xab77('0x85')][_0xab77('0x86')]})['then'](function(_0x3fd5d6){if(!_0x3fd5d6['length']){_0xc6ff31=0x0;}else{_0xc6ff31=_0x3fd5d6[0x0][_0xab77('0x1d')]||0x0;}return dbH[_0xab77('0x83')][_0xab77('0x34')](_0x113ae2[_0xab77('0x84')](),{'type':dbH[_0xab77('0x83')]['QueryTypes'][_0xab77('0x86')]});})[_0xab77('0x25')](function(_0x3a8cb1){return{'rows':_0x3a8cb1||[],'count':_0xc6ff31};});}});}exports[_0xab77('0xa3')]=function(_0x42007c,_0x4a1a79){return runReport(_0x42007c[_0xab77('0x46')],_0x42007c['query'],_0x42007c[_0xab77('0x41')])[_0xab77('0x25')](respondWithResult(_0x4a1a79,null))[_0xab77('0x49')](handleError(_0x4a1a79,null));};exports[_0xab77('0xa4')]=runReport;exports[_0xab77('0x34')]=function(_0x163bae,_0x3c1e12){var _0x2cfde5=0xa;var _0x125189=[_0xab77('0x9e'),_0xab77('0x53'),_0xab77('0x54'),_0xab77('0x55')];var _0x2e281f={'SUM':_0xab77('0x87'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0xab77('0x57'),'MAX':_0xab77('0x58'),'MIN':'MIN(%s)','AVG':_0xab77('0x88'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xab77('0x5a'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0xb538fc={'SEC_TO_TIME':_0xab77('0x5c'),'DATE':_0xab77('0x5d'),'HOUR':_0xab77('0x89'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xab77('0x5e')};var _0x4fa4ad=function(_0x4ebbe5){return!_[_0xab77('0x5f')]([_0xab77('0x60'),_0xab77('0x61'),'IS\x20EMPTY',_0xab77('0x63')],_0x4ebbe5);};var _0x2ba066=function(_0x41fd8a){if(!_0x41fd8a||!_0x41fd8a[_0xab77('0x64')][_0xab77('0x38')]){return'';}for(var _0x310473='(',_0x177118=0x0;_0x177118<_0x41fd8a['rules'][_0xab77('0x38')];_0x177118+=0x1){_0x177118>0x0&&(_0x310473+='\x20'+_0x41fd8a['operator']+'\x20');_0x310473+=_0x41fd8a[_0xab77('0x64')][_0x177118][_0xab77('0x66')]?_0x2ba066(_0x41fd8a[_0xab77('0x64')][_0x177118][_0xab77('0x66')]):_0x41fd8a[_0xab77('0x64')][_0x177118][_0xab77('0x67')]+'\x20'+_0x41fd8a[_0xab77('0x64')][_0x177118][_0xab77('0x68')]+(_0x4fa4ad(_0x41fd8a[_0xab77('0x64')][_0x177118]['condition'])?'\x20'+_0x41fd8a['rules'][_0x177118][_0xab77('0x69')]:'');}return _0x310473+')';};var _0xdc28b3={'where':{'id':_0x163bae[_0xab77('0x46')]['id']}},_0x41d515,_0x23ef2d,_0x3c488d,_0x3a5d1,_0x5eb9c1;_0xdc28b3=_['merge']({},_0xdc28b3,_0x163bae[_0xab77('0x41')]);return db[_0xab77('0x2e')][_0xab77('0x48')](_0xdc28b3)[_0xab77('0x25')](function(_0x15ba2e){if(_0x15ba2e){_0x41d515=_0x15ba2e;return _0x15ba2e[_0xab77('0x6a')]();}return null;})['then'](function(_0x110134){if(_0x110134){if(!_0x110134['length']){throw new db[(_0xab77('0x6b'))][(_0xab77('0x6c'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x23ef2d=_0x110134;return db[_0xab77('0x6e')][_0xab77('0x44')]({'raw':!![]});}return null;})[_0xab77('0x25')](function(_0x255b3c){if(_0x255b3c){_0x3c488d=_[_0xab77('0x8b')](_0x255b3c,'id');var _0x23ba43;var _0x17d2dc=squel[_0xab77('0x6f')]();_0x17d2dc[_0xab77('0x70')](_0x41d515['table']);for(var _0x3c8f7b=0x0;_0x3c8f7b<_0x23ef2d[_0xab77('0x38')];_0x3c8f7b+=0x1){_0x23ba43=_0x23ef2d[_0x3c8f7b][_0xab77('0x72')]?_0x3c488d[_0x23ef2d[_0x3c8f7b][_0xab77('0x72')]][_0xab77('0x8c')]:_0x23ef2d[_0x3c8f7b]['field'];_0x23ba43=_0x23ef2d[_0x3c8f7b][_0xab77('0x73')]?_['replace'](_0x2e281f[_0x23ef2d[_0x3c8f7b]['function']],'%s',_0x23ba43):_0x23ba43;_0x23ba43=_0x23ef2d[_0x3c8f7b]['format']?_[_0xab77('0x74')](_0xb538fc[_0x23ef2d[_0x3c8f7b][_0xab77('0x75')]],'%s',_0x23ba43):_0x23ba43;if(_0x23ef2d[_0x3c8f7b][_0xab77('0x76')]){_0x17d2dc[_0xab77('0x66')](_0x23ba43);}_0x23ef2d[_0x3c8f7b]['orderBy']&&_0x17d2dc[_0xab77('0x3a')](_0x23ba43,_0x23ef2d[_0x3c8f7b][_0xab77('0x77')]===_0xab77('0x78')?![]:!![]);_0x17d2dc[_0xab77('0x67')](_0x23ba43,_0x23ef2d[_0x3c8f7b][_0xab77('0x79')]||_0x23ba43);}if(_0x41d515[_0xab77('0x7a')]){_0x41d515['joins']=JSON[_0xab77('0x80')](_0x41d515[_0xab77('0x7a')]);for(var _0xa4828=0x0;_0xa4828<_0x41d515['joins'][_0xab77('0x38')];_0xa4828+=0x1){if(_0x41d515['joins'][_0xa4828][_0xab77('0x31')]&&_[_0xab77('0x5f')](_0x125189,_0x41d515[_0xab77('0x7a')][_0xa4828][_0xab77('0x31')])&&_0x41d515[_0xab77('0x7a')][_0xa4828]['parentKey']&&_0x41d515[_0xab77('0x7a')][_0xa4828][_0xab77('0x7c')]&&_0x41d515['joins'][_0xa4828][_0xab77('0x7d')]){_0x17d2dc[_0x41d515['joins'][_0xa4828][_0xab77('0x31')]](_0x41d515[_0xab77('0x7a')][_0xa4828]['foreignTable'],null,util[_0xab77('0x75')](_0xab77('0x7e'),_0x41d515[_0xab77('0x71')],_0x41d515['joins'][_0xa4828][_0xab77('0x7b')],_0x41d515[_0xab77('0x7a')][_0xa4828][_0xab77('0x7c')],_0x41d515[_0xab77('0x7a')][_0xa4828][_0xab77('0x7d')]));}}}if(_0x41d515[_0xab77('0x7f')]){_0x41d515[_0xab77('0x7f')]=JSON[_0xab77('0x80')](_0x41d515[_0xab77('0x7f')]);_0x17d2dc[_0xab77('0x3c')](_0x2ba066(_0x41d515[_0xab77('0x7f')][_0xab77('0x66')]));}_0x5eb9c1=_0x17d2dc['clone']();_0x17d2dc['limit'](_0x2cfde5);_0x17d2dc[_0xab77('0x1c')](0x0);logger[_0xab77('0x81')](_0xab77('0x82'),_0x17d2dc[_0xab77('0x84')]());return dbH[_0xab77('0x83')]['query'](_0x17d2dc[_0xab77('0x84')](),{'type':dbH[_0xab77('0x83')][_0xab77('0x85')][_0xab77('0x86')]});}})[_0xab77('0x25')](function(){return{'sql':_0x5eb9c1[_0xab77('0x84')]()};})[_0xab77('0x25')](respondWithResult(_0x3c1e12,null))[_0xab77('0x49')](handleError(_0x3c1e12,null));};