Built motion from commit (unavailable).|2.4.17
[motion2.git] / server / services / routing / realtime / index.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 _0x5fd6=['chatQueues','smsQueues','mailQueues','faxQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','hasOwnProperty','mergeFromDatabase','initAgents','isUndefined','prototype','initIntervals','length','initOpenchannelQueues','updateRouting','updateRealtime','initChatQueues','initSmsQueues','initMailQueues','initFaxQueues','exports','bluebird','lodash','moment','../model/agent','../model/interval','../model/openchannelQueue','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','agents','intervals','openchannelQueues'];(function(_0x244c7c,_0x3ad328){var _0x5d09ee=function(_0x549b0b){while(--_0x549b0b){_0x244c7c['push'](_0x244c7c['shift']());}};_0x5d09ee(++_0x3ad328);}(_0x5fd6,0x1af));var _0x65fd=function(_0xedcc2b,_0x2e853f){_0xedcc2b=_0xedcc2b-0x0;var _0x2da012=_0x5fd6[_0xedcc2b];return _0x2da012;};'use strict';var BPromise=require(_0x65fd('0x0'));var util=require('util');var _=require(_0x65fd('0x1'));var moment=require(_0x65fd('0x2'));var Agent=require(_0x65fd('0x3'));var Interval=require(_0x65fd('0x4'));var OpenchannelQueue=require(_0x65fd('0x5'));var ChatQueue=require(_0x65fd('0x6'));var SmsQueue=require(_0x65fd('0x7'));var MailQueue=require(_0x65fd('0x8'));var FaxQueue=require(_0x65fd('0x9'));var Realtime=function(){this[_0x65fd('0xa')]={};this[_0x65fd('0xb')]={};this[_0x65fd('0xc')]={};this[_0x65fd('0xd')]={};this[_0x65fd('0xe')]={};this[_0x65fd('0xf')]={};this[_0x65fd('0x10')]={};this[_0x65fd('0x11')]={};this[_0x65fd('0x12')]={};this[_0x65fd('0x13')]={};this[_0x65fd('0x14')]={};this[_0x65fd('0x15')]={};};function freeIsNotKey(_0x3cdd7c,_0xea1574,_0x2d1c1b){var _0x19183e=_['mapKeys'](_0x3cdd7c,function(_0x4e330f,_0x3a38f4){return _0x4e330f[_0x2d1c1b];});for(var _0xe30f58 in _0xea1574){if(_0xea1574[_0x65fd('0x16')](_0xe30f58)){if(!_0x19183e[_0xe30f58]){delete _0xea1574[_0xe30f58];}}}}Realtime['prototype'][_0x65fd('0x17')]=function(_0x53c43e,_0x273ac1){for(var _0x2aa4ba in _0x273ac1){if(_0x53c43e[_0x65fd('0x16')](_0x2aa4ba)){_0x53c43e[_0x2aa4ba]=_0x273ac1[_0x2aa4ba];}}};Realtime['prototype'][_0x65fd('0x18')]=function(){var _0x76f3fd=this;return function(_0xed3629){if(_0xed3629){freeIsNotKey(_0xed3629,_0x76f3fd[_0x65fd('0xa')],'id');for(var _0x316865=0x0,_0x13b23b={},_0x1fd0e9={};_0x316865<_0xed3629['length'];_0x316865+=0x1){_0x13b23b=_0xed3629[_0x316865];if(_[_0x65fd('0x19')](_0x76f3fd[_0x65fd('0xa')][_0x13b23b['id']])){_0x76f3fd[_0x65fd('0xa')][_0x13b23b['id']]=new Agent(_0x13b23b);}else{_0x76f3fd[_0x65fd('0x17')](_0x76f3fd['agents'][_0x13b23b['id']],_0x13b23b);}}}return _0x76f3fd[_0x65fd('0xa')];};};Realtime[_0x65fd('0x1a')][_0x65fd('0x1b')]=function(){var _0x195a20=this;return function(_0xe5ff6c){if(_0xe5ff6c){freeIsNotKey(_0xe5ff6c,_0x195a20['intervals'],'id');for(var _0x48f8a1=0x0,_0x2f6042={},_0x4b81b1={};_0x48f8a1<_0xe5ff6c[_0x65fd('0x1c')];_0x48f8a1+=0x1){_0x2f6042=_0xe5ff6c[_0x48f8a1];if(_[_0x65fd('0x19')](_0x195a20[_0x65fd('0xb')][_0x2f6042['id']])){_0x195a20[_0x65fd('0xb')][_0x2f6042['id']]=new Interval(_0x2f6042);}else{_0x195a20['mergeFromDatabase'](_0x195a20[_0x65fd('0xb')][_0x2f6042['id']],_0x2f6042);}}}return _0x195a20['intervals'];};};Realtime['prototype'][_0x65fd('0x1d')]=function(){var _0x29ccd8=this;return function(_0x335511){if(_0x335511){freeIsNotKey(_0x335511,_0x29ccd8['openchannelQueues'],'id');for(var _0x265639=0x0,_0x1aec28={},_0x24d108={};_0x265639<_0x335511[_0x65fd('0x1c')];_0x265639+=0x1){_0x1aec28=_0x335511[_0x265639];if(_['isUndefined'](_0x29ccd8[_0x65fd('0xc')][_0x1aec28['id']])){_0x29ccd8[_0x65fd('0xc')][_0x1aec28['id']]=new OpenchannelQueue(_0x1aec28);}else{_0x29ccd8['mergeFromDatabase'](_0x29ccd8[_0x65fd('0xc')][_0x1aec28['id']],_0x1aec28);}_0x29ccd8[_0x65fd('0xc')][_0x1aec28['id']][_0x65fd('0x1e')]();_0x29ccd8[_0x65fd('0xc')][_0x1aec28['id']][_0x65fd('0x1f')]();}}return _0x29ccd8[_0x65fd('0xc')];};};Realtime[_0x65fd('0x1a')][_0x65fd('0x20')]=function(){var _0x2ceb07=this;return function(_0x4f80d8){if(_0x4f80d8){freeIsNotKey(_0x4f80d8,_0x2ceb07[_0x65fd('0xd')],'id');for(var _0x357591=0x0,_0x2c750d={},_0x17b05d={};_0x357591<_0x4f80d8[_0x65fd('0x1c')];_0x357591+=0x1){_0x2c750d=_0x4f80d8[_0x357591];if(_[_0x65fd('0x19')](_0x2ceb07['chatQueues'][_0x2c750d['id']])){_0x2ceb07[_0x65fd('0xd')][_0x2c750d['id']]=new ChatQueue(_0x2c750d);}else{_0x2ceb07[_0x65fd('0x17')](_0x2ceb07[_0x65fd('0xd')][_0x2c750d['id']],_0x2c750d);}_0x2ceb07['chatQueues'][_0x2c750d['id']][_0x65fd('0x1e')]();_0x2ceb07['chatQueues'][_0x2c750d['id']][_0x65fd('0x1f')]();}}return _0x2ceb07['chatQueues'];};};Realtime[_0x65fd('0x1a')][_0x65fd('0x21')]=function(){var _0x1fa7cd=this;return function(_0x58c11e){if(_0x58c11e){freeIsNotKey(_0x58c11e,_0x1fa7cd['smsQueues'],'id');for(var _0x4ccf01=0x0,_0x59562b={},_0x17396c={};_0x4ccf01<_0x58c11e[_0x65fd('0x1c')];_0x4ccf01+=0x1){_0x59562b=_0x58c11e[_0x4ccf01];if(_['isUndefined'](_0x1fa7cd['smsQueues'][_0x59562b['id']])){_0x1fa7cd[_0x65fd('0xe')][_0x59562b['id']]=new SmsQueue(_0x59562b);}else{_0x1fa7cd['mergeFromDatabase'](_0x1fa7cd[_0x65fd('0xe')][_0x59562b['id']],_0x59562b);}_0x1fa7cd['smsQueues'][_0x59562b['id']][_0x65fd('0x1e')]();_0x1fa7cd[_0x65fd('0xe')][_0x59562b['id']]['updateRealtime']();}}return _0x1fa7cd['smsQueues'];};};Realtime[_0x65fd('0x1a')][_0x65fd('0x22')]=function(){var _0x31780b=this;return function(_0x307773){if(_0x307773){freeIsNotKey(_0x307773,_0x31780b[_0x65fd('0xf')],'id');for(var _0x1a10e6=0x0,_0x1c3b28={},_0x10e68c={};_0x1a10e6<_0x307773[_0x65fd('0x1c')];_0x1a10e6+=0x1){_0x1c3b28=_0x307773[_0x1a10e6];if(_['isUndefined'](_0x31780b[_0x65fd('0xf')][_0x1c3b28['id']])){_0x31780b[_0x65fd('0xf')][_0x1c3b28['id']]=new MailQueue(_0x1c3b28);}else{_0x31780b[_0x65fd('0x17')](_0x31780b[_0x65fd('0xf')][_0x1c3b28['id']],_0x1c3b28);}_0x31780b[_0x65fd('0xf')][_0x1c3b28['id']][_0x65fd('0x1e')]();_0x31780b[_0x65fd('0xf')][_0x1c3b28['id']]['updateRealtime']();}}return _0x31780b['mailQueues'];};};Realtime['prototype'][_0x65fd('0x23')]=function(){var _0x49eaf9=this;return function(_0x51d534){if(_0x51d534){freeIsNotKey(_0x51d534,_0x49eaf9[_0x65fd('0x10')],'id');for(var _0x1f5d8e=0x0,_0x5cfdc0={},_0x3a983e={};_0x1f5d8e<_0x51d534[_0x65fd('0x1c')];_0x1f5d8e+=0x1){_0x5cfdc0=_0x51d534[_0x1f5d8e];if(_[_0x65fd('0x19')](_0x49eaf9['faxQueues'][_0x5cfdc0['id']])){_0x49eaf9[_0x65fd('0x10')][_0x5cfdc0['id']]=new FaxQueue(_0x5cfdc0);}else{_0x49eaf9['mergeFromDatabase'](_0x49eaf9[_0x65fd('0x10')][_0x5cfdc0['id']],_0x5cfdc0);}_0x49eaf9[_0x65fd('0x10')][_0x5cfdc0['id']][_0x65fd('0x1e')]();_0x49eaf9[_0x65fd('0x10')][_0x5cfdc0['id']][_0x65fd('0x1f')]();}}return _0x49eaf9[_0x65fd('0x10')];};};module[_0x65fd('0x24')]=Realtime;