Built motion from commit (unavailable).|2.4.4
[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 _0x0e35=['agents','intervals','openchannelQueues','chatQueues','smsQueues','faxQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','hasOwnProperty','mergeFromDatabase','initAgents','length','isUndefined','prototype','initIntervals','initOpenchannelQueues','updateRouting','updateRealtime','initChatQueues','initSmsQueues','initMailQueues','mailQueues','initFaxQueues','exports','util','lodash','moment','../model/agent','../model/openchannelQueue','../model/faxQueue'];(function(_0x741e19,_0x797454){var _0x16a55a=function(_0xc1b638){while(--_0xc1b638){_0x741e19['push'](_0x741e19['shift']());}};_0x16a55a(++_0x797454);}(_0x0e35,0x123));var _0x50e3=function(_0x599392,_0xea7cbc){_0x599392=_0x599392-0x0;var _0x417177=_0x0e35[_0x599392];return _0x417177;};'use strict';var BPromise=require('bluebird');var util=require(_0x50e3('0x0'));var _=require(_0x50e3('0x1'));var moment=require(_0x50e3('0x2'));var Agent=require(_0x50e3('0x3'));var Interval=require('../model/interval');var OpenchannelQueue=require(_0x50e3('0x4'));var ChatQueue=require('../model/chatQueue');var SmsQueue=require('../model/smsQueue');var MailQueue=require('../model/mailQueue');var FaxQueue=require(_0x50e3('0x5'));var Realtime=function(){this[_0x50e3('0x6')]={};this[_0x50e3('0x7')]={};this[_0x50e3('0x8')]={};this[_0x50e3('0x9')]={};this[_0x50e3('0xa')]={};this['mailQueues']={};this[_0x50e3('0xb')]={};this[_0x50e3('0xc')]={};this[_0x50e3('0xd')]={};this[_0x50e3('0xe')]={};this[_0x50e3('0xf')]={};this[_0x50e3('0x10')]={};};function freeIsNotKey(_0x22e37f,_0x562478,_0x479761){var _0x1d1ed2=_['mapKeys'](_0x22e37f,function(_0x404d31,_0x353066){return _0x404d31[_0x479761];});for(var _0x14cdcf in _0x562478){if(_0x562478[_0x50e3('0x11')](_0x14cdcf)){if(!_0x1d1ed2[_0x14cdcf]){delete _0x562478[_0x14cdcf];}}}}Realtime['prototype'][_0x50e3('0x12')]=function(_0x19d4d7,_0x21a3f9){for(var _0x51ac2a in _0x21a3f9){if(_0x19d4d7[_0x50e3('0x11')](_0x51ac2a)){_0x19d4d7[_0x51ac2a]=_0x21a3f9[_0x51ac2a];}}};Realtime['prototype'][_0x50e3('0x13')]=function(){var _0x481b52=this;return function(_0xd89521){if(_0xd89521){freeIsNotKey(_0xd89521,_0x481b52['agents'],'id');for(var _0x15e781=0x0,_0x38984f={},_0x248045={};_0x15e781<_0xd89521[_0x50e3('0x14')];_0x15e781+=0x1){_0x38984f=_0xd89521[_0x15e781];if(_[_0x50e3('0x15')](_0x481b52[_0x50e3('0x6')][_0x38984f['id']])){_0x481b52[_0x50e3('0x6')][_0x38984f['id']]=new Agent(_0x38984f);}else{_0x481b52['mergeFromDatabase'](_0x481b52[_0x50e3('0x6')][_0x38984f['id']],_0x38984f);}}}return _0x481b52[_0x50e3('0x6')];};};Realtime[_0x50e3('0x16')][_0x50e3('0x17')]=function(){var _0x2b90ea=this;return function(_0x551930){if(_0x551930){freeIsNotKey(_0x551930,_0x2b90ea[_0x50e3('0x7')],'id');for(var _0x23bf5e=0x0,_0x350679={},_0x458dbe={};_0x23bf5e<_0x551930['length'];_0x23bf5e+=0x1){_0x350679=_0x551930[_0x23bf5e];if(_[_0x50e3('0x15')](_0x2b90ea[_0x50e3('0x7')][_0x350679['id']])){_0x2b90ea[_0x50e3('0x7')][_0x350679['id']]=new Interval(_0x350679);}else{_0x2b90ea[_0x50e3('0x12')](_0x2b90ea['intervals'][_0x350679['id']],_0x350679);}}}return _0x2b90ea['intervals'];};};Realtime[_0x50e3('0x16')][_0x50e3('0x18')]=function(){var _0x409587=this;return function(_0x349e01){if(_0x349e01){freeIsNotKey(_0x349e01,_0x409587[_0x50e3('0x8')],'id');for(var _0x3caf56=0x0,_0x124719={},_0x407d64={};_0x3caf56<_0x349e01['length'];_0x3caf56+=0x1){_0x124719=_0x349e01[_0x3caf56];if(_[_0x50e3('0x15')](_0x409587[_0x50e3('0x8')][_0x124719['id']])){_0x409587[_0x50e3('0x8')][_0x124719['id']]=new OpenchannelQueue(_0x124719);}else{_0x409587[_0x50e3('0x12')](_0x409587[_0x50e3('0x8')][_0x124719['id']],_0x124719);}_0x409587[_0x50e3('0x8')][_0x124719['id']][_0x50e3('0x19')]();_0x409587[_0x50e3('0x8')][_0x124719['id']][_0x50e3('0x1a')]();}}return _0x409587[_0x50e3('0x8')];};};Realtime[_0x50e3('0x16')][_0x50e3('0x1b')]=function(){var _0x41cb39=this;return function(_0x3164b6){if(_0x3164b6){freeIsNotKey(_0x3164b6,_0x41cb39[_0x50e3('0x9')],'id');for(var _0x455566=0x0,_0x4992af={},_0x4a2945={};_0x455566<_0x3164b6[_0x50e3('0x14')];_0x455566+=0x1){_0x4992af=_0x3164b6[_0x455566];if(_[_0x50e3('0x15')](_0x41cb39['chatQueues'][_0x4992af['id']])){_0x41cb39['chatQueues'][_0x4992af['id']]=new ChatQueue(_0x4992af);}else{_0x41cb39['mergeFromDatabase'](_0x41cb39['chatQueues'][_0x4992af['id']],_0x4992af);}_0x41cb39[_0x50e3('0x9')][_0x4992af['id']][_0x50e3('0x19')]();_0x41cb39[_0x50e3('0x9')][_0x4992af['id']][_0x50e3('0x1a')]();}}return _0x41cb39[_0x50e3('0x9')];};};Realtime['prototype'][_0x50e3('0x1c')]=function(){var _0x598787=this;return function(_0x3757fd){if(_0x3757fd){freeIsNotKey(_0x3757fd,_0x598787['smsQueues'],'id');for(var _0xfc6b22=0x0,_0x382954={},_0x32eb38={};_0xfc6b22<_0x3757fd[_0x50e3('0x14')];_0xfc6b22+=0x1){_0x382954=_0x3757fd[_0xfc6b22];if(_['isUndefined'](_0x598787['smsQueues'][_0x382954['id']])){_0x598787[_0x50e3('0xa')][_0x382954['id']]=new SmsQueue(_0x382954);}else{_0x598787[_0x50e3('0x12')](_0x598787[_0x50e3('0xa')][_0x382954['id']],_0x382954);}_0x598787['smsQueues'][_0x382954['id']]['updateRouting']();_0x598787[_0x50e3('0xa')][_0x382954['id']][_0x50e3('0x1a')]();}}return _0x598787[_0x50e3('0xa')];};};Realtime['prototype'][_0x50e3('0x1d')]=function(){var _0x4b349b=this;return function(_0x11356b){if(_0x11356b){freeIsNotKey(_0x11356b,_0x4b349b[_0x50e3('0x1e')],'id');for(var _0x3a1b76=0x0,_0x2d5c55={},_0x25f04a={};_0x3a1b76<_0x11356b[_0x50e3('0x14')];_0x3a1b76+=0x1){_0x2d5c55=_0x11356b[_0x3a1b76];if(_[_0x50e3('0x15')](_0x4b349b[_0x50e3('0x1e')][_0x2d5c55['id']])){_0x4b349b[_0x50e3('0x1e')][_0x2d5c55['id']]=new MailQueue(_0x2d5c55);}else{_0x4b349b[_0x50e3('0x12')](_0x4b349b[_0x50e3('0x1e')][_0x2d5c55['id']],_0x2d5c55);}_0x4b349b[_0x50e3('0x1e')][_0x2d5c55['id']][_0x50e3('0x19')]();_0x4b349b[_0x50e3('0x1e')][_0x2d5c55['id']][_0x50e3('0x1a')]();}}return _0x4b349b[_0x50e3('0x1e')];};};Realtime[_0x50e3('0x16')][_0x50e3('0x1f')]=function(){var _0x1a953b=this;return function(_0x4be664){if(_0x4be664){freeIsNotKey(_0x4be664,_0x1a953b[_0x50e3('0xb')],'id');for(var _0x4e6bc7=0x0,_0x48078d={},_0x4aa9ac={};_0x4e6bc7<_0x4be664[_0x50e3('0x14')];_0x4e6bc7+=0x1){_0x48078d=_0x4be664[_0x4e6bc7];if(_[_0x50e3('0x15')](_0x1a953b['faxQueues'][_0x48078d['id']])){_0x1a953b[_0x50e3('0xb')][_0x48078d['id']]=new FaxQueue(_0x48078d);}else{_0x1a953b[_0x50e3('0x12')](_0x1a953b[_0x50e3('0xb')][_0x48078d['id']],_0x48078d);}_0x1a953b[_0x50e3('0xb')][_0x48078d['id']][_0x50e3('0x19')]();_0x1a953b[_0x50e3('0xb')][_0x48078d['id']][_0x50e3('0x1a')]();}}return _0x1a953b[_0x50e3('0xb')];};};module[_0x50e3('0x20')]=Realtime;