Built motion from commit (unavailable).|2.0.76
[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 _0x6494=['toString','sequelize','SELECT','outer_join','COUNT(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','QueryTypes','output','web','fullPath','randomstring','generate','AnalyticExtractedReport','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','info','child_process','fork','../../components/export/','../../files/reports','savename','countTable','runReport','ROUND(%s)','debug','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','sendStatus','end','status','json','offset','limit','reject','save','update','then','destroy','error','stack','name','send','index','AnalyticCustomReport','rawAttributes','model','keys','query','dateStart','dateEnd','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','add','day','merge','filter','options','count','includeAll','include','findAll','rows','show','params','find','catch','create','body','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationError','Please\x20insert\x20at\x20least\x20one\x20field!','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','format','replace','groupBy','orderBy','DESC','alias','joins','type','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','parentKey','conditions','parse','clone','Limited\x20Query:'];(function(_0x7e16fd,_0x19983d){var _0x92a919=function(_0x327b53){while(--_0x327b53){_0x7e16fd['push'](_0x7e16fd['shift']());}};_0x92a919(++_0x19983d);}(_0x6494,0x141));var _0x4649=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x6494[_0x20a584];return _0x4b41a8;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4649('0x0'));var rimraf=require(_0x4649('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4649('0x2'));var rp=require(_0x4649('0x3'));var moment=require(_0x4649('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4649('0x5'));var path=require(_0x4649('0x6'));var sox=require('sox');var csv=require(_0x4649('0x7'));var ejs=require(_0x4649('0x8'));var fs=require('fs');var _=require(_0x4649('0x9'));var squel=require(_0x4649('0xa'));var crypto=require('crypto');var jsforce=require(_0x4649('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x4649('0x7'));var querystring=require(_0x4649('0xc'));var Papa=require(_0x4649('0xd'));var qs=require(_0x4649('0xe'));var logger=require(_0x4649('0xf'))('api');var utils=require(_0x4649('0x10'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3a5a41,_0x4108e3){_0x4108e3=_0x4108e3||0xcc;return function(_0x45d82c){if(_0x45d82c){return _0x3a5a41[_0x4649('0x11')](_0x4108e3);}return _0x3a5a41['status'](_0x4108e3)[_0x4649('0x12')]();};}function respondWithResult(_0x1a6f97,_0x3f99f0){_0x3f99f0=_0x3f99f0||0xc8;return function(_0x5f1db4){if(_0x5f1db4){return _0x1a6f97[_0x4649('0x13')](_0x3f99f0)[_0x4649('0x14')](_0x5f1db4);}};}function respondWithFilteredResult(_0x222667,_0x281766){return function(_0x1b450f){if(_0x1b450f){var _0x3cbe33=_0x1b450f['count'],_0x18de69=_0x281766['offset'],_0x13463e=_0x281766[_0x4649('0x15')]+_0x281766[_0x4649('0x16')],_0x142bf7;if(_0x13463e>=_0x3cbe33){_0x13463e=_0x3cbe33;_0x142bf7=0xc8;}else{_0x142bf7=0xce;}_0x222667[_0x4649('0x13')](_0x142bf7);return _0x222667['set']('Content-Range',_0x18de69+'-'+_0x13463e+'/'+_0x3cbe33)['json'](_0x1b450f);}return null;};}function patchUpdates(_0x4136b4){return function(_0x4cd6a6){try{jsonpatch['apply'](_0x4cd6a6,_0x4136b4,!![]);}catch(_0x11a867){return BPromise[_0x4649('0x17')](_0x11a867);}return _0x4cd6a6[_0x4649('0x18')]();};}function saveUpdates(_0x19fad7,_0x103e03){return function(_0xa4f51a){if(_0xa4f51a){return _0xa4f51a[_0x4649('0x19')](_0x19fad7)[_0x4649('0x1a')](function(_0xdbbf2e){return _0xdbbf2e;});}return null;};}function removeEntity(_0x55d364,_0x3ac9d1){return function(_0x19d430){if(_0x19d430){return _0x19d430[_0x4649('0x1b')]()[_0x4649('0x1a')](function(){_0x55d364[_0x4649('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5bfb99,_0x31fdcb){return function(_0x4e28d9){if(!_0x4e28d9){_0x5bfb99[_0x4649('0x11')](0x194);}return _0x4e28d9;};}function handleError(_0x3d30ca,_0x5d4510){_0x5d4510=_0x5d4510||0x1f4;return function(_0x4bfbb4){logger[_0x4649('0x1c')](_0x4bfbb4[_0x4649('0x1d')]);if(_0x4bfbb4[_0x4649('0x1e')]){delete _0x4bfbb4[_0x4649('0x1e')];}_0x3d30ca[_0x4649('0x13')](_0x5d4510)[_0x4649('0x1f')](_0x4bfbb4);};}exports[_0x4649('0x20')]=function(_0x2c2e2c,_0x380203){var _0x4ef2cb={},_0x12a59a={},_0x3f88d7={'count':0x0,'rows':[]};var _0x5be441=db[_0x4649('0x21')][_0x4649('0x22')];_0x12a59a[_0x4649('0x23')]=_[_0x4649('0x24')](_0x5be441);var _0x1828da={'dateStart':_0x2c2e2c[_0x4649('0x25')][_0x4649('0x26')],'dateEnd':_0x2c2e2c[_0x4649('0x25')][_0x4649('0x27')]};delete _0x2c2e2c[_0x4649('0x25')]['dateStart'];delete _0x2c2e2c[_0x4649('0x25')][_0x4649('0x27')];_0x12a59a[_0x4649('0x25')]=_[_0x4649('0x24')](_0x2c2e2c[_0x4649('0x25')]);_0x12a59a['filters']=_[_0x4649('0x28')](_0x12a59a['model'],_0x12a59a[_0x4649('0x25')]);_0x4ef2cb[_0x4649('0x29')]=_[_0x4649('0x28')](_0x12a59a[_0x4649('0x23')],qs['fields'](_0x2c2e2c[_0x4649('0x25')][_0x4649('0x2a')]));_0x4ef2cb[_0x4649('0x29')]=_0x4ef2cb[_0x4649('0x29')][_0x4649('0x2b')]?_0x4ef2cb['attributes']:_0x12a59a[_0x4649('0x23')];if(!_0x2c2e2c['query'][_0x4649('0x2c')]('nolimit')){_0x4ef2cb[_0x4649('0x16')]=qs[_0x4649('0x16')](_0x2c2e2c[_0x4649('0x25')][_0x4649('0x16')]);_0x4ef2cb['offset']=qs[_0x4649('0x15')](_0x2c2e2c[_0x4649('0x25')][_0x4649('0x15')]);}_0x4ef2cb[_0x4649('0x2d')]=qs[_0x4649('0x2e')](_0x2c2e2c[_0x4649('0x25')][_0x4649('0x2e')]);_0x4ef2cb[_0x4649('0x2f')]=qs[_0x4649('0x30')](_[_0x4649('0x31')](_0x2c2e2c[_0x4649('0x25')],_0x12a59a['filters']));if(_0x1828da[_0x4649('0x26')]){if(_0x1828da[_0x4649('0x27')]){_0x1828da[_0x4649('0x27')]=moment(_0x1828da['dateEnd'])[_0x4649('0x32')](0x1,_0x4649('0x33'));}else{_0x1828da[_0x4649('0x27')]=moment(_0x1828da[_0x4649('0x26')])[_0x4649('0x32')](0x1,_0x4649('0x33'));}_[_0x4649('0x34')](_0x4ef2cb[_0x4649('0x2f')],{'createdAt':{'$gte':_0x1828da[_0x4649('0x26')],'$lte':_0x1828da[_0x4649('0x27')]}});}if(_0x2c2e2c[_0x4649('0x25')]['filter']){_0x4ef2cb[_0x4649('0x2f')]=_[_0x4649('0x34')](_0x4ef2cb[_0x4649('0x2f')],{'$or':_['map'](_0x4ef2cb[_0x4649('0x29')],function(_0x385c5f){var _0x35a05e={};_0x35a05e[_0x385c5f]={'$like':'%'+_0x2c2e2c[_0x4649('0x25')][_0x4649('0x35')]+'%'};return _0x35a05e;})});}_0x4ef2cb=_[_0x4649('0x34')]({},_0x4ef2cb,_0x2c2e2c[_0x4649('0x36')]);var _0x50e6a={'where':_0x4ef2cb['where']};return db[_0x4649('0x21')][_0x4649('0x37')](_0x50e6a)['then'](function(_0x5bdde8){_0x3f88d7[_0x4649('0x37')]=_0x5bdde8;if(_0x2c2e2c[_0x4649('0x25')][_0x4649('0x38')]){_0x4ef2cb[_0x4649('0x39')]=[{'all':!![]}];}return db[_0x4649('0x21')][_0x4649('0x3a')](_0x4ef2cb);})[_0x4649('0x1a')](function(_0x10be33){_0x3f88d7[_0x4649('0x3b')]=_0x10be33;return _0x3f88d7;})['then'](respondWithFilteredResult(_0x380203,_0x4ef2cb))['catch'](handleError(_0x380203,null));};exports[_0x4649('0x3c')]=function(_0x3d16b2,_0x5e27bf){var _0x2c681c={'raw':![],'where':{'id':_0x3d16b2[_0x4649('0x3d')]['id']}},_0x3f875c={};_0x3f875c[_0x4649('0x23')]=_['keys'](db[_0x4649('0x21')][_0x4649('0x22')]);_0x3f875c[_0x4649('0x25')]=_[_0x4649('0x24')](_0x3d16b2[_0x4649('0x25')]);_0x3f875c[_0x4649('0x30')]=_[_0x4649('0x28')](_0x3f875c[_0x4649('0x23')],_0x3f875c[_0x4649('0x25')]);_0x2c681c['attributes']=_[_0x4649('0x28')](_0x3f875c[_0x4649('0x23')],qs['fields'](_0x3d16b2[_0x4649('0x25')][_0x4649('0x2a')]));_0x2c681c[_0x4649('0x29')]=_0x2c681c['attributes'][_0x4649('0x2b')]?_0x2c681c['attributes']:_0x3f875c[_0x4649('0x23')];if(_0x3d16b2[_0x4649('0x25')][_0x4649('0x38')]){_0x2c681c[_0x4649('0x39')]=[{'all':!![]}];}_0x2c681c=_['merge']({},_0x2c681c,_0x3d16b2[_0x4649('0x36')]);return db['AnalyticCustomReport'][_0x4649('0x3e')](_0x2c681c)[_0x4649('0x1a')](handleEntityNotFound(_0x5e27bf,null))[_0x4649('0x1a')](respondWithResult(_0x5e27bf,null))[_0x4649('0x3f')](handleError(_0x5e27bf,null));};exports[_0x4649('0x40')]=function(_0x277af2,_0x2e0199){return db[_0x4649('0x21')][_0x4649('0x40')](_0x277af2[_0x4649('0x41')],{})[_0x4649('0x1a')](respondWithResult(_0x2e0199,0xc9))[_0x4649('0x3f')](handleError(_0x2e0199,null));};exports[_0x4649('0x19')]=function(_0x39b897,_0x3fb463){if(_0x39b897[_0x4649('0x41')]['id']){delete _0x39b897[_0x4649('0x41')]['id'];}return db[_0x4649('0x21')][_0x4649('0x3e')]({'where':{'id':_0x39b897[_0x4649('0x3d')]['id']}})[_0x4649('0x1a')](handleEntityNotFound(_0x3fb463,null))[_0x4649('0x1a')](saveUpdates(_0x39b897[_0x4649('0x41')],null))['then'](respondWithResult(_0x3fb463,null))['catch'](handleError(_0x3fb463,null));};exports[_0x4649('0x1b')]=function(_0x5693e4,_0x59dd79){return db[_0x4649('0x21')][_0x4649('0x3e')]({'where':{'id':_0x5693e4[_0x4649('0x3d')]['id']}})[_0x4649('0x1a')](handleEntityNotFound(_0x59dd79,null))[_0x4649('0x1a')](removeEntity(_0x59dd79,null))['catch'](handleError(_0x59dd79,null));};exports[_0x4649('0x42')]=function(_0x895b84,_0x16d373){var _0x4d5d84=0xa;var _0x15c53b=[_0x4649('0x43'),_0x4649('0x44'),_0x4649('0x45'),'outer_join',_0x4649('0x46')];var _0x95d7fd={'SUM':_0x4649('0x47'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x4649('0x48'),'MAX':_0x4649('0x49'),'MIN':_0x4649('0x4a'),'AVG':_0x4649('0x4b'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x4649('0x4c')};var _0x4af01e={'SEC_TO_TIME':_0x4649('0x4d'),'DATE':_0x4649('0x4e'),'HOUR':_0x4649('0x4f'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x4649('0x50')};var _0x49b6c7=function(_0x389506){return!_[_0x4649('0x51')]([_0x4649('0x52'),_0x4649('0x53'),_0x4649('0x54'),_0x4649('0x55')],_0x389506);};var _0x2502bb=function(_0x32ff48){if(!_0x32ff48||!_0x32ff48[_0x4649('0x56')][_0x4649('0x2b')]){return'';}for(var _0x2c7a09='(',_0xd0d967=0x0;_0xd0d967<_0x32ff48[_0x4649('0x56')]['length'];_0xd0d967+=0x1){_0xd0d967>0x0&&(_0x2c7a09+='\x20'+_0x32ff48[_0x4649('0x57')]+'\x20');_0x2c7a09+=_0x32ff48[_0x4649('0x56')][_0xd0d967]['group']?_0x2502bb(_0x32ff48[_0x4649('0x56')][_0xd0d967][_0x4649('0x58')]):_0x32ff48[_0x4649('0x56')][_0xd0d967][_0x4649('0x59')]+'\x20'+_0x32ff48['rules'][_0xd0d967][_0x4649('0x5a')]+(_0x49b6c7(_0x32ff48[_0x4649('0x56')][_0xd0d967][_0x4649('0x5a')])?'\x20'+_0x32ff48['rules'][_0xd0d967][_0x4649('0x5b')]:'');}return _0x2c7a09+')';};var _0x3f63af={'where':{'id':_0x895b84[_0x4649('0x3d')]['id']}},_0x51a8c4,_0x16c2c1,_0x2fd70a,_0x391454,_0x29ed67;_0x3f63af=_[_0x4649('0x34')]({},_0x3f63af,_0x895b84[_0x4649('0x36')]);return db[_0x4649('0x21')]['find'](_0x3f63af)[_0x4649('0x1a')](function(_0xf1850f){if(_0xf1850f){_0x51a8c4=_0xf1850f;return _0xf1850f[_0x4649('0x5c')]();}return null;})[_0x4649('0x1a')](function(_0x39f694){if(_0x39f694){if(!_0x39f694[_0x4649('0x2b')]){throw new db[(_0x4649('0x5d'))][(_0x4649('0x5e'))](_0x4649('0x5f'));}_0x16c2c1=_0x39f694;return db[_0x4649('0x60')]['findAll']({'raw':!![]});}return null;})[_0x4649('0x1a')](function(_0x22c6f7){if(_0x22c6f7){_0x2fd70a=_[_0x4649('0x61')](_0x22c6f7,'id');var _0x399050;var _0x5a9592=squel[_0x4649('0x62')]();_0x5a9592[_0x4649('0x63')](_0x51a8c4[_0x4649('0x64')]);for(var _0x200f2a=0x0;_0x200f2a<_0x16c2c1[_0x4649('0x2b')];_0x200f2a+=0x1){_0x399050=_0x16c2c1[_0x200f2a]['MetricId']?_0x2fd70a[_0x16c2c1[_0x200f2a][_0x4649('0x65')]][_0x4649('0x66')]:_0x16c2c1[_0x200f2a][_0x4649('0x59')];_0x399050=_0x16c2c1[_0x200f2a]['function']?_['replace'](_0x95d7fd[_0x16c2c1[_0x200f2a][_0x4649('0x67')]],'%s',_0x399050):_0x399050;_0x399050=_0x16c2c1[_0x200f2a][_0x4649('0x68')]?_[_0x4649('0x69')](_0x4af01e[_0x16c2c1[_0x200f2a][_0x4649('0x68')]],'%s',_0x399050):_0x399050;if(_0x16c2c1[_0x200f2a][_0x4649('0x6a')]){_0x5a9592[_0x4649('0x58')](_0x399050);}_0x16c2c1[_0x200f2a][_0x4649('0x6b')]&&_0x5a9592['order'](_0x399050,_0x16c2c1[_0x200f2a]['orderBy']===_0x4649('0x6c')?![]:!![]);_0x5a9592[_0x4649('0x59')](_0x399050,_0x16c2c1[_0x200f2a][_0x4649('0x6d')]||_0x399050);}if(_0x51a8c4[_0x4649('0x6e')]){_0x51a8c4[_0x4649('0x6e')]=JSON['parse'](_0x51a8c4[_0x4649('0x6e')]);for(var _0x1c6908=0x0;_0x1c6908<_0x51a8c4['joins'][_0x4649('0x2b')];_0x1c6908+=0x1){if(_0x51a8c4['joins'][_0x1c6908][_0x4649('0x6f')]&&_[_0x4649('0x51')](_0x15c53b,_0x51a8c4['joins'][_0x1c6908][_0x4649('0x6f')])&&_0x51a8c4[_0x4649('0x6e')][_0x1c6908]['parentKey']&&_0x51a8c4[_0x4649('0x6e')][_0x1c6908][_0x4649('0x70')]&&_0x51a8c4['joins'][_0x1c6908][_0x4649('0x71')]){_0x5a9592[_0x51a8c4[_0x4649('0x6e')][_0x1c6908][_0x4649('0x6f')]](_0x51a8c4['joins'][_0x1c6908][_0x4649('0x70')],null,util['format'](_0x4649('0x72'),_0x51a8c4[_0x4649('0x64')],_0x51a8c4['joins'][_0x1c6908][_0x4649('0x73')],_0x51a8c4[_0x4649('0x6e')][_0x1c6908][_0x4649('0x70')],_0x51a8c4[_0x4649('0x6e')][_0x1c6908]['foreignKey']));}}}if(_0x51a8c4[_0x4649('0x74')]){_0x51a8c4['conditions']=JSON[_0x4649('0x75')](_0x51a8c4[_0x4649('0x74')]);_0x5a9592[_0x4649('0x2f')](_0x2502bb(_0x51a8c4['conditions']['group']));}_0x29ed67=_0x5a9592[_0x4649('0x76')]();_0x5a9592[_0x4649('0x16')](_0x4d5d84);_0x5a9592['offset'](0x0);logger['debug'](_0x4649('0x77'),_0x5a9592[_0x4649('0x78')]());return db[_0x4649('0x79')]['query'](_0x5a9592[_0x4649('0x78')](),{'type':db[_0x4649('0x79')]['QueryTypes'][_0x4649('0x7a')]});}})[_0x4649('0x1a')](respondWithResult(_0x16d373,null))[_0x4649('0x3f')](handleError(_0x16d373,null));};function runReport(_0x21665c,_0x18a072,_0x3217d2){var _0x525c49=_0x18a072[_0x4649('0x1e')];var _0x3e77cd=0xa;var _0x303f4e=[_0x4649('0x43'),_0x4649('0x44'),_0x4649('0x45'),_0x4649('0x7b'),_0x4649('0x46')];var _0x10c217={'SUM':_0x4649('0x47'),'COUNT':_0x4649('0x7c'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x4649('0x49'),'MIN':_0x4649('0x4a'),'AVG':_0x4649('0x4b'),'GROUP_CONCAT':_0x4649('0x7d'),'GROUP_CONCAT ASC':_0x4649('0x7e'),'GROUP_CONCAT DESC':_0x4649('0x4c')};var _0x36ccdd={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x4649('0x4f'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x1ac6dc=function(_0x2c8bb4){return!_['includes']([_0x4649('0x52'),'IS\x20NOT\x20NULL','IS\x20EMPTY',_0x4649('0x55')],_0x2c8bb4);};var _0x1dee31=function(_0x7055db){if(!_0x7055db||!_0x7055db[_0x4649('0x56')][_0x4649('0x2b')]){return'';}for(var _0x581a4a='(',_0x4c9800=0x0;_0x4c9800<_0x7055db[_0x4649('0x56')][_0x4649('0x2b')];_0x4c9800+=0x1){_0x4c9800>0x0&&(_0x581a4a+='\x20'+_0x7055db['operator']+'\x20');_0x581a4a+=_0x7055db[_0x4649('0x56')][_0x4c9800][_0x4649('0x58')]?_0x1dee31(_0x7055db['rules'][_0x4c9800]['group']):_0x7055db[_0x4649('0x56')][_0x4c9800]['field']+'\x20'+_0x7055db[_0x4649('0x56')][_0x4c9800][_0x4649('0x5a')]+(_0x1ac6dc(_0x7055db[_0x4649('0x56')][_0x4c9800]['condition'])?'\x20'+_0x7055db['rules'][_0x4c9800][_0x4649('0x5b')]:'');}return _0x581a4a+')';};var _0x2376c7={'where':{'id':_0x21665c['id']}},_0x5216cb,_0x4902df,_0x5ae138,_0x150d04,_0x30ea6f;_0x2376c7=_[_0x4649('0x34')]({},_0x2376c7,_0x3217d2);return db[_0x4649('0x21')][_0x4649('0x3e')](_0x2376c7)[_0x4649('0x1a')](function(_0xabe0cf){if(_0xabe0cf){_0x5216cb=_0xabe0cf;return _0xabe0cf[_0x4649('0x5c')]();}return null;})[_0x4649('0x1a')](function(_0x3bba31){if(_0x3bba31){if(!_0x3bba31['length']){throw new db[(_0x4649('0x5d'))][(_0x4649('0x5e'))](_0x4649('0x5f'));}_0x4902df=_0x3bba31;return db['AnalyticMetric'][_0x4649('0x3a')]({'raw':!![]});}return null;})['then'](function(_0x468dbf){if(_0x468dbf){_0x5ae138=_['keyBy'](_0x468dbf,'id');var _0x1c8e3f;var _0x551683=squel[_0x4649('0x62')]();_0x551683['from'](_0x5216cb[_0x4649('0x64')]);for(var _0x4a39a7=0x0;_0x4a39a7<_0x4902df[_0x4649('0x2b')];_0x4a39a7+=0x1){_0x1c8e3f=_0x4902df[_0x4a39a7][_0x4649('0x65')]?_0x5ae138[_0x4902df[_0x4a39a7]['MetricId']][_0x4649('0x66')]:_0x4902df[_0x4a39a7][_0x4649('0x59')];_0x1c8e3f=_0x4902df[_0x4a39a7]['function']?_[_0x4649('0x69')](_0x10c217[_0x4902df[_0x4a39a7][_0x4649('0x67')]],'%s',_0x1c8e3f):_0x1c8e3f;_0x1c8e3f=_0x4902df[_0x4a39a7]['format']?_[_0x4649('0x69')](_0x36ccdd[_0x4902df[_0x4a39a7][_0x4649('0x68')]],'%s',_0x1c8e3f):_0x1c8e3f;if(_0x4902df[_0x4a39a7][_0x4649('0x6a')]){_0x551683[_0x4649('0x58')](_0x1c8e3f);}_0x4902df[_0x4a39a7][_0x4649('0x6b')]&&_0x551683[_0x4649('0x2d')](_0x1c8e3f,_0x4902df[_0x4a39a7][_0x4649('0x6b')]===_0x4649('0x6c')?![]:!![]);_0x551683[_0x4649('0x59')](_0x1c8e3f,_0x4902df[_0x4a39a7][_0x4649('0x6d')]||_0x1c8e3f);}if(_0x5216cb[_0x4649('0x6e')]){_0x5216cb[_0x4649('0x6e')]=JSON[_0x4649('0x75')](_0x5216cb[_0x4649('0x6e')]);for(var _0x3fe24c=0x0;_0x3fe24c<_0x5216cb[_0x4649('0x6e')][_0x4649('0x2b')];_0x3fe24c+=0x1){if(_0x5216cb[_0x4649('0x6e')][_0x3fe24c][_0x4649('0x6f')]&&_[_0x4649('0x51')](_0x303f4e,_0x5216cb[_0x4649('0x6e')][_0x3fe24c]['type'])&&_0x5216cb[_0x4649('0x6e')][_0x3fe24c][_0x4649('0x73')]&&_0x5216cb[_0x4649('0x6e')][_0x3fe24c]['foreignTable']&&_0x5216cb['joins'][_0x3fe24c][_0x4649('0x71')]){_0x551683[_0x5216cb['joins'][_0x3fe24c][_0x4649('0x6f')]](_0x5216cb['joins'][_0x3fe24c][_0x4649('0x70')],null,util[_0x4649('0x68')](_0x4649('0x72'),_0x5216cb[_0x4649('0x64')],_0x5216cb[_0x4649('0x6e')][_0x3fe24c]['parentKey'],_0x5216cb[_0x4649('0x6e')][_0x3fe24c][_0x4649('0x70')],_0x5216cb[_0x4649('0x6e')][_0x3fe24c]['foreignKey']));}}}if(_0x5216cb['conditions']){_0x5216cb[_0x4649('0x74')]=JSON['parse'](_0x5216cb[_0x4649('0x74')]);_0x551683[_0x4649('0x2f')](_0x1dee31(_0x5216cb['conditions']['group']));}_0x30ea6f=_0x551683['clone']();_0x551683[_0x4649('0x16')](_0x3e77cd);_0x551683['offset'](0x0);logger['debug'](_0x4649('0x77'),_0x551683[_0x4649('0x78')]());return db[_0x4649('0x79')]['query'](_0x551683[_0x4649('0x78')](),{'type':db[_0x4649('0x79')][_0x4649('0x7f')]['SELECT']});}})['then'](function(_0x3eae0a){if(!_0x3eae0a[_0x4649('0x2b')]){throw new db[(_0x4649('0x5d'))][(_0x4649('0x5e'))]('No\x20Data!');}if(_0x18a072[_0x4649('0x80')]===_0x4649('0x81')){return null;}var _0xc33c30=_['merge'](_0x18a072,{'name':_0x18a072[_0x4649('0x82')]||_0x18a072[_0x4649('0x1e')]||_0x5216cb[_0x4649('0x1e')],'basename':_0x525c49,'savename':util[_0x4649('0x68')]('%s-%s.%s',_0x18a072['name']||_0x5216cb[_0x4649('0x1e')],require(_0x4649('0x83'))[_0x4649('0x84')](0x4),_0x18a072[_0x4649('0x80')]||'csv')});return db[_0x4649('0x85')][_0x4649('0x40')](_0xc33c30,{'raw':!![]});})[_0x4649('0x1a')](function(_0x24956f){_0x30ea6f[_0x4649('0x2f')](_0x5216cb[_0x4649('0x64')]+_0x4649('0x86'),_0x18a072[_0x4649('0x87')],_0x18a072[_0x4649('0x88')]);if(_0x24956f){logger[_0x4649('0x89')]('Run\x20Query:',_0x30ea6f[_0x4649('0x78')]());require(_0x4649('0x8a'))[_0x4649('0x8b')](path['join'](__dirname,_0x4649('0x8c'),_0x24956f[_0x4649('0x80')]),[_0x24956f['id'],_0x30ea6f['toString'](),path[_0x4649('0x43')](__dirname,_0x4649('0x8d'),_0x24956f[_0x4649('0x8e')]),_0x525c49]);return _0x24956f;}else{var _0x288aa2=squel[_0x4649('0x62')]();_0x288aa2[_0x4649('0x63')]('('+_0x30ea6f[_0x4649('0x78')]()+')',_0x4649('0x8f'));_0x288aa2[_0x4649('0x59')]('COUNT(*)',_0x4649('0x37'));_0x30ea6f['limit'](_0x18a072['limit']||_0x3e77cd);_0x30ea6f[_0x4649('0x15')](_0x18a072[_0x4649('0x15')]||0x0);return db[_0x4649('0x79')][_0x4649('0x25')](_0x288aa2[_0x4649('0x78')](),{'type':db['sequelize']['QueryTypes']['SELECT']})['then'](function(_0x41b956){if(!_0x41b956['length']){_0x150d04=0x0;}else{_0x150d04=_0x41b956[0x0][_0x4649('0x37')]||0x0;}return db[_0x4649('0x79')][_0x4649('0x25')](_0x30ea6f[_0x4649('0x78')](),{'type':db[_0x4649('0x79')][_0x4649('0x7f')]['SELECT']});})['then'](function(_0x26ba99){return{'rows':_0x26ba99||[],'count':_0x150d04};});}});}exports['run']=function(_0x4a020f,_0x3ea6dc){return runReport(_0x4a020f[_0x4649('0x3d')],_0x4a020f[_0x4649('0x25')],_0x4a020f[_0x4649('0x36')])['then'](respondWithResult(_0x3ea6dc,null))['catch'](handleError(_0x3ea6dc,null));};exports[_0x4649('0x90')]=runReport;exports[_0x4649('0x25')]=function(_0xc87bbe,_0x838e3e){var _0x45f8d2=0xa;var _0x3268ca=[_0x4649('0x43'),'left_join',_0x4649('0x45'),'outer_join',_0x4649('0x46')];var _0x5a8026={'SUM':_0x4649('0x47'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x4649('0x49'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x4649('0x7d'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x3cd104={'SEC_TO_TIME':_0x4649('0x4d'),'DATE':_0x4649('0x4e'),'HOUR':_0x4649('0x4f'),'ROUND':_0x4649('0x91'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x497d8c=function(_0x45fa78){return!_[_0x4649('0x51')]([_0x4649('0x52'),'IS\x20NOT\x20NULL',_0x4649('0x54'),_0x4649('0x55')],_0x45fa78);};var _0x424601=function(_0x394adf){if(!_0x394adf||!_0x394adf[_0x4649('0x56')][_0x4649('0x2b')]){return'';}for(var _0x39a78d='(',_0x3b6004=0x0;_0x3b6004<_0x394adf[_0x4649('0x56')]['length'];_0x3b6004+=0x1){_0x3b6004>0x0&&(_0x39a78d+='\x20'+_0x394adf[_0x4649('0x57')]+'\x20');_0x39a78d+=_0x394adf[_0x4649('0x56')][_0x3b6004][_0x4649('0x58')]?_0x424601(_0x394adf[_0x4649('0x56')][_0x3b6004]['group']):_0x394adf['rules'][_0x3b6004][_0x4649('0x59')]+'\x20'+_0x394adf[_0x4649('0x56')][_0x3b6004][_0x4649('0x5a')]+(_0x497d8c(_0x394adf[_0x4649('0x56')][_0x3b6004][_0x4649('0x5a')])?'\x20'+_0x394adf['rules'][_0x3b6004][_0x4649('0x5b')]:'');}return _0x39a78d+')';};var _0x4141e5={'where':{'id':_0xc87bbe[_0x4649('0x3d')]['id']}},_0x1368a0,_0x1841e4,_0x2f537f,_0x53c658,_0x27f8dd;_0x4141e5=_[_0x4649('0x34')]({},_0x4141e5,_0xc87bbe[_0x4649('0x36')]);return db['AnalyticCustomReport'][_0x4649('0x3e')](_0x4141e5)[_0x4649('0x1a')](function(_0x301832){if(_0x301832){_0x1368a0=_0x301832;return _0x301832['getFields']();}return null;})[_0x4649('0x1a')](function(_0x448817){if(_0x448817){if(!_0x448817['length']){throw new db[(_0x4649('0x5d'))][(_0x4649('0x5e'))]('Please\x20insert\x20at\x20least\x20one\x20field!');}_0x1841e4=_0x448817;return db[_0x4649('0x60')][_0x4649('0x3a')]({'raw':!![]});}return null;})[_0x4649('0x1a')](function(_0x583241){if(_0x583241){_0x2f537f=_[_0x4649('0x61')](_0x583241,'id');var _0x528089;var _0xd3b9dc=squel['select']();_0xd3b9dc['from'](_0x1368a0[_0x4649('0x64')]);for(var _0x6d394a=0x0;_0x6d394a<_0x1841e4['length'];_0x6d394a+=0x1){_0x528089=_0x1841e4[_0x6d394a][_0x4649('0x65')]?_0x2f537f[_0x1841e4[_0x6d394a][_0x4649('0x65')]][_0x4649('0x66')]:_0x1841e4[_0x6d394a]['field'];_0x528089=_0x1841e4[_0x6d394a][_0x4649('0x67')]?_[_0x4649('0x69')](_0x5a8026[_0x1841e4[_0x6d394a]['function']],'%s',_0x528089):_0x528089;_0x528089=_0x1841e4[_0x6d394a][_0x4649('0x68')]?_[_0x4649('0x69')](_0x3cd104[_0x1841e4[_0x6d394a]['format']],'%s',_0x528089):_0x528089;if(_0x1841e4[_0x6d394a][_0x4649('0x6a')]){_0xd3b9dc[_0x4649('0x58')](_0x528089);}_0x1841e4[_0x6d394a][_0x4649('0x6b')]&&_0xd3b9dc['order'](_0x528089,_0x1841e4[_0x6d394a]['orderBy']===_0x4649('0x6c')?![]:!![]);_0xd3b9dc[_0x4649('0x59')](_0x528089,_0x1841e4[_0x6d394a]['alias']||_0x528089);}if(_0x1368a0[_0x4649('0x6e')]){_0x1368a0['joins']=JSON[_0x4649('0x75')](_0x1368a0[_0x4649('0x6e')]);for(var _0x5b3fba=0x0;_0x5b3fba<_0x1368a0[_0x4649('0x6e')]['length'];_0x5b3fba+=0x1){if(_0x1368a0[_0x4649('0x6e')][_0x5b3fba][_0x4649('0x6f')]&&_[_0x4649('0x51')](_0x3268ca,_0x1368a0[_0x4649('0x6e')][_0x5b3fba][_0x4649('0x6f')])&&_0x1368a0[_0x4649('0x6e')][_0x5b3fba][_0x4649('0x73')]&&_0x1368a0[_0x4649('0x6e')][_0x5b3fba]['foreignTable']&&_0x1368a0[_0x4649('0x6e')][_0x5b3fba][_0x4649('0x71')]){_0xd3b9dc[_0x1368a0['joins'][_0x5b3fba]['type']](_0x1368a0[_0x4649('0x6e')][_0x5b3fba][_0x4649('0x70')],null,util[_0x4649('0x68')](_0x4649('0x72'),_0x1368a0[_0x4649('0x64')],_0x1368a0['joins'][_0x5b3fba][_0x4649('0x73')],_0x1368a0[_0x4649('0x6e')][_0x5b3fba][_0x4649('0x70')],_0x1368a0[_0x4649('0x6e')][_0x5b3fba][_0x4649('0x71')]));}}}if(_0x1368a0[_0x4649('0x74')]){_0x1368a0[_0x4649('0x74')]=JSON[_0x4649('0x75')](_0x1368a0[_0x4649('0x74')]);_0xd3b9dc['where'](_0x424601(_0x1368a0[_0x4649('0x74')][_0x4649('0x58')]));}_0x27f8dd=_0xd3b9dc[_0x4649('0x76')]();_0xd3b9dc[_0x4649('0x16')](_0x45f8d2);_0xd3b9dc[_0x4649('0x15')](0x0);logger[_0x4649('0x92')](_0x4649('0x77'),_0xd3b9dc['toString']());return db[_0x4649('0x79')][_0x4649('0x25')](_0xd3b9dc['toString'](),{'type':db[_0x4649('0x79')][_0x4649('0x7f')][_0x4649('0x7a')]});}})[_0x4649('0x1a')](function(){return{'sql':_0x27f8dd[_0x4649('0x78')]()};})[_0x4649('0x1a')](respondWithResult(_0x838e3e,null))[_0x4649('0x3f')](handleError(_0x838e3e,null));};