dc4497b68fd7662f827c828e3819b6d9965dc5dd
[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 _0x2c5b=['MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','table','MetricId','metric','function','replace','groupBy','orderBy','DESC','alias','joins','parentKey','foreignTable','foreignKey','format','%s.%s\x20=\x20%s.%s','conditions','parse','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','SUM(%s)','HOUR(%s)','ROUND(%s)','IS\x20NOT\x20EMPTY','from','output','fullPath','randomstring','generate','csv','custom','AnalyticExtractedReport','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','run','runReport','debug','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','then','get','CustomReports','UserProfileResource','error','stack','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','key','model','name','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','type','VIRTUAL','options','rows','catch','show','includeAll','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','destroy','preview','join','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)'];(function(_0x93046d,_0x2f007c){var _0x260519=function(_0x11eb0e){while(--_0x11eb0e){_0x93046d['push'](_0x93046d['shift']());}};_0x260519(++_0x2f007c);}(_0x2c5b,0x193));var _0xb2c5=function(_0x48dea1,_0x1baaa6){_0x48dea1=_0x48dea1-0x0;var _0x598d7c=_0x2c5b[_0x48dea1];return _0x598d7c;};'use strict';var emlformat=require(_0xb2c5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb2c5('0x1'));var jsonpatch=require(_0xb2c5('0x2'));var rp=require(_0xb2c5('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xb2c5('0x4'));var util=require(_0xb2c5('0x5'));var path=require(_0xb2c5('0x6'));var sox=require(_0xb2c5('0x7'));var csv=require('to-csv');var ejs=require(_0xb2c5('0x8'));var fs=require('fs');var fs_extra=require(_0xb2c5('0x9'));var _=require(_0xb2c5('0xa'));var squel=require(_0xb2c5('0xb'));var crypto=require(_0xb2c5('0xc'));var jsforce=require(_0xb2c5('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb2c5('0xe'));var Papa=require(_0xb2c5('0xf'));var Redis=require(_0xb2c5('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xb2c5('0x11'));var as=require(_0xb2c5('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb2c5('0x13'));var utils=require(_0xb2c5('0x14'));var config=require(_0xb2c5('0x15'));var licenseUtil=require(_0xb2c5('0x16'));var db=require('../../mysqldb')['db'];var dbH=require(_0xb2c5('0x17'))[_0xb2c5('0x18')];function respondWithStatusCode(_0x250f0d,_0x17de7b){_0x17de7b=_0x17de7b||0xcc;return function(_0x49dc99){if(_0x49dc99){return _0x250f0d['sendStatus'](_0x17de7b);}return _0x250f0d[_0xb2c5('0x19')](_0x17de7b)[_0xb2c5('0x1a')]();};}function respondWithResult(_0x409398,_0xd516b8){_0xd516b8=_0xd516b8||0xc8;return function(_0xf88cde){if(_0xf88cde){return _0x409398[_0xb2c5('0x19')](_0xd516b8)[_0xb2c5('0x1b')](_0xf88cde);}};}function respondWithFilteredResult(_0x1fffa7,_0x6ede6){return function(_0x53e60b){if(_0x53e60b){var _0xb6a3ea=typeof _0x6ede6[_0xb2c5('0x1c')]===_0xb2c5('0x1d')&&typeof _0x6ede6['limit']===_0xb2c5('0x1d');var _0x5f061d=_0x53e60b[_0xb2c5('0x1e')];var _0x47f579=_0xb6a3ea?0x0:_0x6ede6['offset'];var _0x1978f6=_0xb6a3ea?_0x53e60b[_0xb2c5('0x1e')]:_0x6ede6[_0xb2c5('0x1c')]+_0x6ede6[_0xb2c5('0x1f')];var _0x24f752;if(_0x1978f6>=_0x5f061d){_0x1978f6=_0x5f061d;_0x24f752=0xc8;}else{_0x24f752=0xce;}_0x1fffa7[_0xb2c5('0x19')](_0x24f752);return _0x1fffa7[_0xb2c5('0x20')](_0xb2c5('0x21'),_0x47f579+'-'+_0x1978f6+'/'+_0x5f061d)[_0xb2c5('0x1b')](_0x53e60b);}return null;};}function patchUpdates(_0xcb297b){return function(_0x2d3aea){try{jsonpatch['apply'](_0x2d3aea,_0xcb297b,!![]);}catch(_0x14b490){return BPromise[_0xb2c5('0x22')](_0x14b490);}return _0x2d3aea[_0xb2c5('0x23')]();};}function saveUpdates(_0x50cc75,_0xddc170){return function(_0x27e1d6){if(_0x27e1d6){return _0x27e1d6['update'](_0x50cc75)[_0xb2c5('0x24')](function(_0x290a0b){return _0x290a0b;});}return null;};}function removeEntity(_0x7e3814,_0x48d61d){return function(_0x817101){if(_0x817101){return _0x817101['destroy']()[_0xb2c5('0x24')](function(){var _0x45f38e=_0x817101[_0xb2c5('0x25')]({'plain':!![]});var _0x123b7c=_0xb2c5('0x26');return db[_0xb2c5('0x27')]['destroy']({'where':{'type':_0x123b7c,'resourceId':_0x45f38e['id']}})[_0xb2c5('0x24')](function(){return _0x817101;});})[_0xb2c5('0x24')](function(){_0x7e3814['status'](0xcc)[_0xb2c5('0x1a')]();});}};}function handleEntityNotFound(_0x5799fe,_0x5bd7e2){return function(_0x5cfacc){if(!_0x5cfacc){_0x5799fe['sendStatus'](0x194);}return _0x5cfacc;};}function handleError(_0xe69b01,_0x19d5b9){_0x19d5b9=_0x19d5b9||0x1f4;return function(_0x4f0f0f){logger[_0xb2c5('0x28')](_0x4f0f0f[_0xb2c5('0x29')]);if(_0x4f0f0f['name']){delete _0x4f0f0f['name'];}_0xe69b01[_0xb2c5('0x19')](_0x19d5b9)[_0xb2c5('0x2a')](_0x4f0f0f);};}exports[_0xb2c5('0x2b')]=function(_0x3efc71,_0x524c93){var _0x5ce606={},_0x1ea585={},_0x31e695={'count':0x0,'rows':[]};var _0x35c365=_[_0xb2c5('0x2c')](db[_0xb2c5('0x2d')][_0xb2c5('0x2e')],function(_0xa3de3f){return{'name':_0xa3de3f[_0xb2c5('0x2f')],'type':_0xa3de3f['type'][_0xb2c5('0x30')]};});_0x1ea585[_0xb2c5('0x31')]=_['map'](_0x35c365,_0xb2c5('0x32'));_0x1ea585[_0xb2c5('0x33')]=_[_0xb2c5('0x34')](_0x3efc71[_0xb2c5('0x33')]);_0x1ea585[_0xb2c5('0x35')]=_['intersection'](_0x1ea585['model'],_0x1ea585['query']);_0x5ce606[_0xb2c5('0x36')]=_[_0xb2c5('0x37')](_0x1ea585[_0xb2c5('0x31')],qs[_0xb2c5('0x38')](_0x3efc71['query'][_0xb2c5('0x38')]));_0x5ce606[_0xb2c5('0x36')]=_0x5ce606[_0xb2c5('0x36')][_0xb2c5('0x39')]?_0x5ce606[_0xb2c5('0x36')]:_0x1ea585['model'];if(!_0x3efc71[_0xb2c5('0x33')][_0xb2c5('0x3a')](_0xb2c5('0x3b'))){_0x5ce606[_0xb2c5('0x1f')]=qs['limit'](_0x3efc71[_0xb2c5('0x33')][_0xb2c5('0x1f')]);_0x5ce606[_0xb2c5('0x1c')]=qs[_0xb2c5('0x1c')](_0x3efc71[_0xb2c5('0x33')][_0xb2c5('0x1c')]);}_0x5ce606[_0xb2c5('0x3c')]=qs['sort'](_0x3efc71[_0xb2c5('0x33')][_0xb2c5('0x3d')]);_0x5ce606['where']=qs['filters'](_['pick'](_0x3efc71[_0xb2c5('0x33')],_0x1ea585[_0xb2c5('0x35')]),_0x35c365);if(_0x3efc71[_0xb2c5('0x33')]['filter']){_0x5ce606[_0xb2c5('0x3e')]=_[_0xb2c5('0x3f')](_0x5ce606['where'],{'$or':_[_0xb2c5('0x2c')](_0x35c365,function(_0x3ac325){if(_0x3ac325[_0xb2c5('0x40')]!==_0xb2c5('0x41')){var _0x592ae6={};_0x592ae6[_0x3ac325['name']]={'$like':'%'+_0x3efc71['query']['filter']+'%'};return _0x592ae6;}})});}_0x5ce606=_['merge']({},_0x5ce606,_0x3efc71[_0xb2c5('0x42')]);var _0x3b7098={'where':_0x5ce606[_0xb2c5('0x3e')]};return db[_0xb2c5('0x2d')][_0xb2c5('0x1e')](_0x3b7098)['then'](function(_0x186203){_0x31e695[_0xb2c5('0x1e')]=_0x186203;if(_0x3efc71[_0xb2c5('0x33')]['includeAll']){_0x5ce606['include']=[{'all':!![]}];}return db['AnalyticCustomReport']['findAll'](_0x5ce606);})[_0xb2c5('0x24')](function(_0x1eab78){_0x31e695[_0xb2c5('0x43')]=_0x1eab78;return _0x31e695;})[_0xb2c5('0x24')](respondWithFilteredResult(_0x524c93,_0x5ce606))[_0xb2c5('0x44')](handleError(_0x524c93,null));};exports[_0xb2c5('0x45')]=function(_0x48f87e,_0x25e75b){var _0x22ea24={'raw':![],'where':{'id':_0x48f87e['params']['id']}},_0x4892ca={};_0x4892ca[_0xb2c5('0x31')]=_['keys'](db[_0xb2c5('0x2d')][_0xb2c5('0x2e')]);_0x4892ca[_0xb2c5('0x33')]=_[_0xb2c5('0x34')](_0x48f87e['query']);_0x4892ca[_0xb2c5('0x35')]=_[_0xb2c5('0x37')](_0x4892ca['model'],_0x4892ca[_0xb2c5('0x33')]);_0x22ea24[_0xb2c5('0x36')]=_[_0xb2c5('0x37')](_0x4892ca[_0xb2c5('0x31')],qs[_0xb2c5('0x38')](_0x48f87e[_0xb2c5('0x33')]['fields']));_0x22ea24[_0xb2c5('0x36')]=_0x22ea24[_0xb2c5('0x36')][_0xb2c5('0x39')]?_0x22ea24['attributes']:_0x4892ca[_0xb2c5('0x31')];if(_0x48f87e[_0xb2c5('0x33')][_0xb2c5('0x46')]){_0x22ea24['include']=[{'all':!![]}];}_0x22ea24=_[_0xb2c5('0x3f')]({},_0x22ea24,_0x48f87e[_0xb2c5('0x42')]);return db['AnalyticCustomReport'][_0xb2c5('0x47')](_0x22ea24)[_0xb2c5('0x24')](handleEntityNotFound(_0x25e75b,null))[_0xb2c5('0x24')](respondWithResult(_0x25e75b,null))[_0xb2c5('0x44')](handleError(_0x25e75b,null));};exports[_0xb2c5('0x48')]=function(_0x4edf93,_0x2dce2d){return db['AnalyticCustomReport']['create'](_0x4edf93['body'],{})[_0xb2c5('0x24')](function(_0x1ac9be){var _0x246122=_0x4edf93['user'][_0xb2c5('0x25')]({'plain':!![]});if(!_0x246122)throw new Error(_0xb2c5('0x49'));if(_0x246122[_0xb2c5('0x4a')]===_0xb2c5('0x4b')){var _0xcee529=_0x1ac9be[_0xb2c5('0x25')]({'plain':!![]});var _0x3f750f='Reports';return db[_0xb2c5('0x4c')][_0xb2c5('0x47')]({'where':{'name':_0x3f750f,'userProfileId':_0x246122[_0xb2c5('0x4d')]},'raw':!![]})[_0xb2c5('0x24')](function(_0x360ec1){if(_0x360ec1&&_0x360ec1[_0xb2c5('0x4e')]===0x0){return db[_0xb2c5('0x27')][_0xb2c5('0x48')]({'name':_0xcee529['name'],'resourceId':_0xcee529['id'],'type':_0xb2c5('0x26'),'sectionId':_0x360ec1['id']},{})[_0xb2c5('0x24')](function(){return _0x1ac9be;});}else{return _0x1ac9be;}})[_0xb2c5('0x44')](function(_0x47ea0e){logger['error'](_0xb2c5('0x4f'),_0x47ea0e);throw _0x47ea0e;});}return _0x1ac9be;})[_0xb2c5('0x24')](respondWithResult(_0x2dce2d,0xc9))['catch'](handleError(_0x2dce2d,null));};exports[_0xb2c5('0x50')]=function(_0x4ce871,_0x24f21c){if(_0x4ce871[_0xb2c5('0x51')]['id']){delete _0x4ce871[_0xb2c5('0x51')]['id'];}return db[_0xb2c5('0x2d')][_0xb2c5('0x47')]({'where':{'id':_0x4ce871[_0xb2c5('0x52')]['id']}})[_0xb2c5('0x24')](handleEntityNotFound(_0x24f21c,null))['then'](saveUpdates(_0x4ce871[_0xb2c5('0x51')],null))['then'](respondWithResult(_0x24f21c,null))['catch'](handleError(_0x24f21c,null));};exports[_0xb2c5('0x53')]=function(_0x3fe8f5,_0xf3e328){return db[_0xb2c5('0x2d')][_0xb2c5('0x47')]({'where':{'id':_0x3fe8f5[_0xb2c5('0x52')]['id']}})[_0xb2c5('0x24')](handleEntityNotFound(_0xf3e328,null))['then'](removeEntity(_0xf3e328,null))[_0xb2c5('0x44')](handleError(_0xf3e328,null));};exports[_0xb2c5('0x54')]=function(_0x593a0d,_0x4a6708){var _0x423366=0xa;var _0x20df40=[_0xb2c5('0x55'),_0xb2c5('0x56'),_0xb2c5('0x57'),_0xb2c5('0x58')];var _0x43aa27={'SUM':'SUM(%s)','COUNT':_0xb2c5('0x59'),'COUNT DISTINCT':_0xb2c5('0x5a'),'MAX':_0xb2c5('0x5b'),'MIN':_0xb2c5('0x5c'),'AVG':_0xb2c5('0x5d'),'GROUP_CONCAT':_0xb2c5('0x5e'),'GROUP_CONCAT ASC':_0xb2c5('0x5f'),'GROUP_CONCAT DESC':_0xb2c5('0x60')};var _0x7ed7c={'SEC_TO_TIME':_0xb2c5('0x61'),'DATE':_0xb2c5('0x62'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xb2c5('0x63')};var _0x2a4680=function(_0x411835){return!_[_0xb2c5('0x64')]([_0xb2c5('0x65'),_0xb2c5('0x66'),_0xb2c5('0x67'),'IS\x20NOT\x20EMPTY'],_0x411835);};var _0x54127a=function(_0x4bc5ed){if(!_0x4bc5ed||!_0x4bc5ed[_0xb2c5('0x68')][_0xb2c5('0x39')]){return'';}for(var _0x3a959e='(',_0x9da6c9=0x0;_0x9da6c9<_0x4bc5ed[_0xb2c5('0x68')]['length'];_0x9da6c9+=0x1){_0x9da6c9>0x0&&(_0x3a959e+='\x20'+_0x4bc5ed[_0xb2c5('0x69')]+'\x20');_0x3a959e+=_0x4bc5ed[_0xb2c5('0x68')][_0x9da6c9]['group']?_0x54127a(_0x4bc5ed[_0xb2c5('0x68')][_0x9da6c9][_0xb2c5('0x6a')]):_0x4bc5ed[_0xb2c5('0x68')][_0x9da6c9][_0xb2c5('0x6b')]+'\x20'+_0x4bc5ed[_0xb2c5('0x68')][_0x9da6c9][_0xb2c5('0x6c')]+(_0x2a4680(_0x4bc5ed['rules'][_0x9da6c9][_0xb2c5('0x6c')])?'\x20'+_0x4bc5ed[_0xb2c5('0x68')][_0x9da6c9][_0xb2c5('0x6d')]:'');}return _0x3a959e+')';};var _0x16274c={'where':{'id':_0x593a0d[_0xb2c5('0x52')]['id']}},_0x1da677,_0x22a9d4,_0x2aa318,_0x349a97,_0x57a818;_0x16274c=_[_0xb2c5('0x3f')]({},_0x16274c,_0x593a0d[_0xb2c5('0x42')]);return db[_0xb2c5('0x2d')][_0xb2c5('0x47')](_0x16274c)[_0xb2c5('0x24')](function(_0x1fc07c){if(_0x1fc07c){_0x1da677=_0x1fc07c;return _0x1fc07c[_0xb2c5('0x6e')]();}return null;})[_0xb2c5('0x24')](function(_0x22f39f){if(_0x22f39f){if(!_0x22f39f['length']){throw new db[(_0xb2c5('0x6f'))][(_0xb2c5('0x70'))](_0xb2c5('0x71'),0x193);}_0x22a9d4=_0x22f39f;return db[_0xb2c5('0x72')][_0xb2c5('0x73')]({'raw':!![]});}return null;})[_0xb2c5('0x24')](function(_0x32e631){if(_0x32e631){_0x2aa318=_[_0xb2c5('0x74')](_0x32e631,'id');var _0x32201a;var _0x253776=squel[_0xb2c5('0x75')]();_0x253776['from'](_0x1da677[_0xb2c5('0x76')]);for(var _0x1a09c4=0x0;_0x1a09c4<_0x22a9d4[_0xb2c5('0x39')];_0x1a09c4+=0x1){_0x32201a=_0x22a9d4[_0x1a09c4][_0xb2c5('0x77')]?_0x2aa318[_0x22a9d4[_0x1a09c4][_0xb2c5('0x77')]][_0xb2c5('0x78')]:_0x22a9d4[_0x1a09c4]['field'];_0x32201a=_0x22a9d4[_0x1a09c4][_0xb2c5('0x79')]?_[_0xb2c5('0x7a')](_0x43aa27[_0x22a9d4[_0x1a09c4]['function']],'%s',_0x32201a):_0x32201a;_0x32201a=_0x22a9d4[_0x1a09c4]['format']?_[_0xb2c5('0x7a')](_0x7ed7c[_0x22a9d4[_0x1a09c4]['format']],'%s',_0x32201a):_0x32201a;if(_0x22a9d4[_0x1a09c4][_0xb2c5('0x7b')]){_0x253776[_0xb2c5('0x6a')](_0x32201a);}_0x22a9d4[_0x1a09c4][_0xb2c5('0x7c')]&&_0x253776[_0xb2c5('0x3c')](_0x32201a,_0x22a9d4[_0x1a09c4][_0xb2c5('0x7c')]===_0xb2c5('0x7d')?![]:!![]);_0x253776[_0xb2c5('0x6b')](_0x32201a,_0x22a9d4[_0x1a09c4][_0xb2c5('0x7e')]||_0x32201a);}if(_0x1da677[_0xb2c5('0x7f')]){_0x1da677[_0xb2c5('0x7f')]=JSON['parse'](_0x1da677['joins']);for(var _0x6c21f7=0x0;_0x6c21f7<_0x1da677[_0xb2c5('0x7f')][_0xb2c5('0x39')];_0x6c21f7+=0x1){if(_0x1da677[_0xb2c5('0x7f')][_0x6c21f7]['type']&&_['includes'](_0x20df40,_0x1da677['joins'][_0x6c21f7]['type'])&&_0x1da677[_0xb2c5('0x7f')][_0x6c21f7][_0xb2c5('0x80')]&&_0x1da677[_0xb2c5('0x7f')][_0x6c21f7][_0xb2c5('0x81')]&&_0x1da677[_0xb2c5('0x7f')][_0x6c21f7][_0xb2c5('0x82')]){_0x253776[_0x1da677[_0xb2c5('0x7f')][_0x6c21f7][_0xb2c5('0x40')]](_0x1da677[_0xb2c5('0x7f')][_0x6c21f7][_0xb2c5('0x81')],null,util[_0xb2c5('0x83')](_0xb2c5('0x84'),_0x1da677[_0xb2c5('0x76')],_0x1da677[_0xb2c5('0x7f')][_0x6c21f7][_0xb2c5('0x80')],_0x1da677['joins'][_0x6c21f7]['foreignTable'],_0x1da677['joins'][_0x6c21f7][_0xb2c5('0x82')]));}}}if(_0x1da677[_0xb2c5('0x85')]){_0x1da677[_0xb2c5('0x85')]=JSON[_0xb2c5('0x86')](_0x1da677[_0xb2c5('0x85')]);_0x253776[_0xb2c5('0x3e')](_0x54127a(_0x1da677[_0xb2c5('0x85')]['group']));}_0x57a818=_0x253776['clone']();_0x253776['limit'](_0x423366);_0x253776['offset'](0x0);logger['debug'](_0xb2c5('0x87'),_0x253776[_0xb2c5('0x88')]());return dbH[_0xb2c5('0x89')][_0xb2c5('0x33')](_0x253776[_0xb2c5('0x88')](),{'type':dbH[_0xb2c5('0x89')][_0xb2c5('0x8a')][_0xb2c5('0x8b')]});}})[_0xb2c5('0x24')](respondWithResult(_0x4a6708,null))[_0xb2c5('0x44')](handleError(_0x4a6708,null));};function runReport(_0x500943,_0x5e7ab9,_0x1a13cd){var _0xe4ff7=_0x5e7ab9[_0xb2c5('0x32')];var _0x4148b5=0xa;var _0x2b0af1=['join',_0xb2c5('0x56'),_0xb2c5('0x57'),_0xb2c5('0x58')];var _0x46f1cc={'SUM':_0xb2c5('0x8c'),'COUNT':_0xb2c5('0x59'),'COUNT DISTINCT':_0xb2c5('0x5a'),'MAX':_0xb2c5('0x5b'),'MIN':_0xb2c5('0x5c'),'AVG':_0xb2c5('0x5d'),'GROUP_CONCAT':_0xb2c5('0x5e'),'GROUP_CONCAT ASC':_0xb2c5('0x5f'),'GROUP_CONCAT DESC':_0xb2c5('0x60')};var _0x52aaba={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xb2c5('0x62'),'HOUR':_0xb2c5('0x8d'),'ROUND':_0xb2c5('0x8e'),'UNIX_TIMESTAMP':_0xb2c5('0x63')};var _0x151db1=function(_0x37a375){return!_[_0xb2c5('0x64')]([_0xb2c5('0x65'),'IS\x20NOT\x20NULL',_0xb2c5('0x67'),_0xb2c5('0x8f')],_0x37a375);};var _0x2c02dd=function(_0x39e01b){if(!_0x39e01b||!_0x39e01b[_0xb2c5('0x68')][_0xb2c5('0x39')]){return'';}for(var _0x43486e='(',_0xf30dfc=0x0;_0xf30dfc<_0x39e01b['rules'][_0xb2c5('0x39')];_0xf30dfc+=0x1){_0xf30dfc>0x0&&(_0x43486e+='\x20'+_0x39e01b['operator']+'\x20');_0x43486e+=_0x39e01b[_0xb2c5('0x68')][_0xf30dfc][_0xb2c5('0x6a')]?_0x2c02dd(_0x39e01b['rules'][_0xf30dfc][_0xb2c5('0x6a')]):_0x39e01b[_0xb2c5('0x68')][_0xf30dfc]['field']+'\x20'+_0x39e01b['rules'][_0xf30dfc][_0xb2c5('0x6c')]+(_0x151db1(_0x39e01b[_0xb2c5('0x68')][_0xf30dfc][_0xb2c5('0x6c')])?'\x20'+_0x39e01b['rules'][_0xf30dfc][_0xb2c5('0x6d')]:'');}return _0x43486e+')';};var _0x296317={'where':{'id':_0x500943['id']}},_0x3bf846,_0x304954,_0x477923,_0x433b29,_0x51bd7c;_0x296317=_['merge']({},_0x296317,_0x1a13cd);return db['AnalyticCustomReport']['find'](_0x296317)[_0xb2c5('0x24')](function(_0x3732c5){if(_0x3732c5){_0x3bf846=_0x3732c5;return _0x3732c5[_0xb2c5('0x6e')]();}return null;})['then'](function(_0x2dbc7e){if(_0x2dbc7e){if(!_0x2dbc7e[_0xb2c5('0x39')]){throw new db[(_0xb2c5('0x6f'))][(_0xb2c5('0x70'))](_0xb2c5('0x71'),0x193);}_0x304954=_0x2dbc7e;return db['AnalyticMetric'][_0xb2c5('0x73')]({'raw':!![]});}return null;})[_0xb2c5('0x24')](function(_0x4bddaf){if(_0x4bddaf){_0x477923=_['keyBy'](_0x4bddaf,'id');var _0x57c1b5;var _0x5c4f4a=squel[_0xb2c5('0x75')]();_0x5c4f4a[_0xb2c5('0x90')](_0x3bf846[_0xb2c5('0x76')]);for(var _0x282207=0x0;_0x282207<_0x304954[_0xb2c5('0x39')];_0x282207+=0x1){_0x57c1b5=_0x304954[_0x282207][_0xb2c5('0x77')]?_0x477923[_0x304954[_0x282207][_0xb2c5('0x77')]][_0xb2c5('0x78')]:_0x304954[_0x282207][_0xb2c5('0x6b')];_0x57c1b5=_0x304954[_0x282207][_0xb2c5('0x79')]?_[_0xb2c5('0x7a')](_0x46f1cc[_0x304954[_0x282207][_0xb2c5('0x79')]],'%s',_0x57c1b5):_0x57c1b5;_0x57c1b5=_0x304954[_0x282207][_0xb2c5('0x83')]?_['replace'](_0x52aaba[_0x304954[_0x282207][_0xb2c5('0x83')]],'%s',_0x57c1b5):_0x57c1b5;if(_0x304954[_0x282207]['groupBy']){_0x5c4f4a[_0xb2c5('0x6a')](_0x57c1b5);}_0x304954[_0x282207][_0xb2c5('0x7c')]&&_0x5c4f4a[_0xb2c5('0x3c')](_0x57c1b5,_0x304954[_0x282207][_0xb2c5('0x7c')]===_0xb2c5('0x7d')?![]:!![]);_0x5c4f4a[_0xb2c5('0x6b')](_0x57c1b5,_0x304954[_0x282207][_0xb2c5('0x7e')]||_0x57c1b5);}if(_0x3bf846[_0xb2c5('0x7f')]){_0x3bf846[_0xb2c5('0x7f')]=JSON[_0xb2c5('0x86')](_0x3bf846[_0xb2c5('0x7f')]);for(var _0x1bdf0c=0x0;_0x1bdf0c<_0x3bf846['joins'][_0xb2c5('0x39')];_0x1bdf0c+=0x1){if(_0x3bf846[_0xb2c5('0x7f')][_0x1bdf0c][_0xb2c5('0x40')]&&_[_0xb2c5('0x64')](_0x2b0af1,_0x3bf846[_0xb2c5('0x7f')][_0x1bdf0c][_0xb2c5('0x40')])&&_0x3bf846[_0xb2c5('0x7f')][_0x1bdf0c]['parentKey']&&_0x3bf846[_0xb2c5('0x7f')][_0x1bdf0c]['foreignTable']&&_0x3bf846['joins'][_0x1bdf0c]['foreignKey']){_0x5c4f4a[_0x3bf846[_0xb2c5('0x7f')][_0x1bdf0c]['type']](_0x3bf846[_0xb2c5('0x7f')][_0x1bdf0c][_0xb2c5('0x81')],null,util[_0xb2c5('0x83')](_0xb2c5('0x84'),_0x3bf846['table'],_0x3bf846[_0xb2c5('0x7f')][_0x1bdf0c][_0xb2c5('0x80')],_0x3bf846['joins'][_0x1bdf0c][_0xb2c5('0x81')],_0x3bf846[_0xb2c5('0x7f')][_0x1bdf0c]['foreignKey']));}}}if(_0x3bf846[_0xb2c5('0x85')]){_0x3bf846[_0xb2c5('0x85')]=JSON[_0xb2c5('0x86')](_0x3bf846[_0xb2c5('0x85')]);_0x5c4f4a['where'](_0x2c02dd(_0x3bf846[_0xb2c5('0x85')]['group']));}_0x51bd7c=_0x5c4f4a['clone']();_0x5c4f4a['limit'](_0x4148b5);_0x5c4f4a[_0xb2c5('0x1c')](0x0);return;}})['then'](function(){if(_0x5e7ab9[_0xb2c5('0x91')]==='web'){return null;}var _0x2ec915=_[_0xb2c5('0x3f')](_0x5e7ab9,{'name':_0x5e7ab9[_0xb2c5('0x92')]||_0x5e7ab9[_0xb2c5('0x32')]||_0x3bf846['name'],'basename':_0xe4ff7,'savename':util[_0xb2c5('0x83')]('%s-%s.%s',_0x5e7ab9[_0xb2c5('0x32')]||_0x3bf846[_0xb2c5('0x32')],require(_0xb2c5('0x93'))[_0xb2c5('0x94')](0x4),_0x5e7ab9[_0xb2c5('0x91')]||_0xb2c5('0x95')),'reportId':_0x3bf846['id'],'reportType':_0xb2c5('0x96')});return db[_0xb2c5('0x97')][_0xb2c5('0x48')](_0x2ec915,{'raw':!![]});})['then'](function(_0x53506a){if(_0x3bf846['table']==='cdr'){_0x51bd7c[_0xb2c5('0x3e')](_0x3bf846[_0xb2c5('0x76')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x5e7ab9[_0xb2c5('0x98')],_0x5e7ab9[_0xb2c5('0x99')]);}else{_0x51bd7c[_0xb2c5('0x3e')](_0x3bf846[_0xb2c5('0x76')]+_0xb2c5('0x9a'),_0x5e7ab9['startDate'],_0x5e7ab9[_0xb2c5('0x99')]);}if(_0x53506a){logger['info'](_0xb2c5('0x9b'),_0x51bd7c[_0xb2c5('0x88')]());require(_0xb2c5('0x9c'))[_0xb2c5('0x9d')](path[_0xb2c5('0x55')](__dirname,_0xb2c5('0x9e'),_0x53506a[_0xb2c5('0x91')]),[_0x53506a['id'],_0x51bd7c[_0xb2c5('0x88')](),path[_0xb2c5('0x55')](__dirname,_0xb2c5('0x9f'),_0x53506a[_0xb2c5('0xa0')]),_0xe4ff7]);return _0x53506a;}else{var _0x27a963=squel[_0xb2c5('0x75')]();_0x27a963[_0xb2c5('0x90')]('('+_0x51bd7c[_0xb2c5('0x88')]()+')',_0xb2c5('0xa1'));_0x27a963['field']('COUNT(*)',_0xb2c5('0x1e'));_0x51bd7c[_0xb2c5('0x1f')](_0x5e7ab9[_0xb2c5('0x1f')]||_0x4148b5);_0x51bd7c[_0xb2c5('0x1c')](_0x5e7ab9[_0xb2c5('0x1c')]||0x0);return dbH['sequelize'][_0xb2c5('0x33')](_0x27a963['toString'](),{'type':dbH[_0xb2c5('0x89')]['QueryTypes'][_0xb2c5('0x8b')]})[_0xb2c5('0x24')](function(_0x48bb68){if(!_0x48bb68['length']){_0x433b29=0x0;}else{_0x433b29=_0x48bb68[0x0][_0xb2c5('0x1e')]||0x0;}return dbH[_0xb2c5('0x89')]['query'](_0x51bd7c[_0xb2c5('0x88')](),{'type':dbH[_0xb2c5('0x89')]['QueryTypes']['SELECT']});})['then'](function(_0x26f378){return{'rows':_0x26f378||[],'count':_0x433b29};});}});}exports[_0xb2c5('0xa2')]=function(_0x510532,_0x3fd535){return runReport(_0x510532['params'],_0x510532[_0xb2c5('0x33')],_0x510532[_0xb2c5('0x42')])['then'](respondWithResult(_0x3fd535,null))[_0xb2c5('0x44')](handleError(_0x3fd535,null));};exports[_0xb2c5('0xa3')]=runReport;exports[_0xb2c5('0x33')]=function(_0xef84f,_0x2ff106){var _0x1dab71=0xa;var _0x2fed42=['join',_0xb2c5('0x56'),_0xb2c5('0x57'),'cross_join'];var _0x1dddaa={'SUM':_0xb2c5('0x8c'),'COUNT':_0xb2c5('0x59'),'COUNT DISTINCT':_0xb2c5('0x5a'),'MAX':_0xb2c5('0x5b'),'MIN':_0xb2c5('0x5c'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xb2c5('0x5f'),'GROUP_CONCAT DESC':_0xb2c5('0x60')};var _0x5e15a1={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0xb2c5('0x8d'),'ROUND':_0xb2c5('0x8e'),'UNIX_TIMESTAMP':_0xb2c5('0x63')};var _0x27ab96=function(_0x407329){return!_[_0xb2c5('0x64')](['IS\x20NULL',_0xb2c5('0x66'),'IS\x20EMPTY',_0xb2c5('0x8f')],_0x407329);};var _0xc00f66=function(_0x35449e){if(!_0x35449e||!_0x35449e[_0xb2c5('0x68')][_0xb2c5('0x39')]){return'';}for(var _0x350c99='(',_0x2f2847=0x0;_0x2f2847<_0x35449e[_0xb2c5('0x68')][_0xb2c5('0x39')];_0x2f2847+=0x1){_0x2f2847>0x0&&(_0x350c99+='\x20'+_0x35449e['operator']+'\x20');_0x350c99+=_0x35449e[_0xb2c5('0x68')][_0x2f2847][_0xb2c5('0x6a')]?_0xc00f66(_0x35449e[_0xb2c5('0x68')][_0x2f2847][_0xb2c5('0x6a')]):_0x35449e[_0xb2c5('0x68')][_0x2f2847][_0xb2c5('0x6b')]+'\x20'+_0x35449e['rules'][_0x2f2847][_0xb2c5('0x6c')]+(_0x27ab96(_0x35449e[_0xb2c5('0x68')][_0x2f2847][_0xb2c5('0x6c')])?'\x20'+_0x35449e['rules'][_0x2f2847]['value']:'');}return _0x350c99+')';};var _0x4a0592={'where':{'id':_0xef84f[_0xb2c5('0x52')]['id']}},_0x14f532,_0x3f9216,_0x455441,_0x47dec0,_0x3d306a;_0x4a0592=_[_0xb2c5('0x3f')]({},_0x4a0592,_0xef84f[_0xb2c5('0x42')]);return db[_0xb2c5('0x2d')][_0xb2c5('0x47')](_0x4a0592)[_0xb2c5('0x24')](function(_0x133da9){if(_0x133da9){_0x14f532=_0x133da9;return _0x133da9[_0xb2c5('0x6e')]();}return null;})['then'](function(_0x1a343f){if(_0x1a343f){if(!_0x1a343f['length']){throw new db[(_0xb2c5('0x6f'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x3f9216=_0x1a343f;return db[_0xb2c5('0x72')]['findAll']({'raw':!![]});}return null;})[_0xb2c5('0x24')](function(_0x21c111){if(_0x21c111){_0x455441=_[_0xb2c5('0x74')](_0x21c111,'id');var _0x18b26d;var _0x1254dc=squel[_0xb2c5('0x75')]();_0x1254dc[_0xb2c5('0x90')](_0x14f532['table']);for(var _0x2beb91=0x0;_0x2beb91<_0x3f9216[_0xb2c5('0x39')];_0x2beb91+=0x1){_0x18b26d=_0x3f9216[_0x2beb91]['MetricId']?_0x455441[_0x3f9216[_0x2beb91][_0xb2c5('0x77')]]['metric']:_0x3f9216[_0x2beb91][_0xb2c5('0x6b')];_0x18b26d=_0x3f9216[_0x2beb91][_0xb2c5('0x79')]?_[_0xb2c5('0x7a')](_0x1dddaa[_0x3f9216[_0x2beb91][_0xb2c5('0x79')]],'%s',_0x18b26d):_0x18b26d;_0x18b26d=_0x3f9216[_0x2beb91][_0xb2c5('0x83')]?_[_0xb2c5('0x7a')](_0x5e15a1[_0x3f9216[_0x2beb91][_0xb2c5('0x83')]],'%s',_0x18b26d):_0x18b26d;if(_0x3f9216[_0x2beb91][_0xb2c5('0x7b')]){_0x1254dc[_0xb2c5('0x6a')](_0x18b26d);}_0x3f9216[_0x2beb91]['orderBy']&&_0x1254dc[_0xb2c5('0x3c')](_0x18b26d,_0x3f9216[_0x2beb91][_0xb2c5('0x7c')]===_0xb2c5('0x7d')?![]:!![]);_0x1254dc['field'](_0x18b26d,_0x3f9216[_0x2beb91][_0xb2c5('0x7e')]||_0x18b26d);}if(_0x14f532['joins']){_0x14f532[_0xb2c5('0x7f')]=JSON['parse'](_0x14f532[_0xb2c5('0x7f')]);for(var _0x2d4bcb=0x0;_0x2d4bcb<_0x14f532['joins'][_0xb2c5('0x39')];_0x2d4bcb+=0x1){if(_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb]['type']&&_[_0xb2c5('0x64')](_0x2fed42,_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb][_0xb2c5('0x40')])&&_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb]['parentKey']&&_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb][_0xb2c5('0x81')]&&_0x14f532['joins'][_0x2d4bcb][_0xb2c5('0x82')]){_0x1254dc[_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb][_0xb2c5('0x40')]](_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb][_0xb2c5('0x81')],null,util[_0xb2c5('0x83')](_0xb2c5('0x84'),_0x14f532[_0xb2c5('0x76')],_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb][_0xb2c5('0x80')],_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb]['foreignTable'],_0x14f532[_0xb2c5('0x7f')][_0x2d4bcb][_0xb2c5('0x82')]));}}}if(_0x14f532[_0xb2c5('0x85')]){_0x14f532['conditions']=JSON[_0xb2c5('0x86')](_0x14f532['conditions']);_0x1254dc[_0xb2c5('0x3e')](_0xc00f66(_0x14f532[_0xb2c5('0x85')][_0xb2c5('0x6a')]));}_0x3d306a=_0x1254dc['clone']();_0x1254dc[_0xb2c5('0x1f')](_0x1dab71);_0x1254dc[_0xb2c5('0x1c')](0x0);logger[_0xb2c5('0xa4')](_0xb2c5('0x87'),_0x1254dc[_0xb2c5('0x88')]());return dbH[_0xb2c5('0x89')][_0xb2c5('0x33')](_0x1254dc[_0xb2c5('0x88')](),{'type':dbH[_0xb2c5('0x89')][_0xb2c5('0x8a')][_0xb2c5('0x8b')]});}})[_0xb2c5('0x24')](function(){return{'sql':_0x3d306a[_0xb2c5('0x88')]()};})['then'](respondWithResult(_0x2ff106,null))[_0xb2c5('0x44')](handleError(_0x2ff106,null));};