Built motion from commit (unavailable).|2.4.18
[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 _0x6088=['exports','bluebird','util','moment','../model/agent','../model/interval','../model/chatQueue','agents','intervals','chatQueues','smsQueues','mailQueues','faxQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','hasOwnProperty','mergeFromDatabase','prototype','initAgents','isUndefined','initIntervals','length','initOpenchannelQueues','openchannelQueues','updateRouting','updateRealtime','initMailQueues','initFaxQueues'];(function(_0x1969a7,_0x5a133a){var _0x3d665f=function(_0x39c64b){while(--_0x39c64b){_0x1969a7['push'](_0x1969a7['shift']());}};_0x3d665f(++_0x5a133a);}(_0x6088,0x1a5));var _0x8608=function(_0x1dd8e2,_0x494742){_0x1dd8e2=_0x1dd8e2-0x0;var _0x403b93=_0x6088[_0x1dd8e2];return _0x403b93;};'use strict';var BPromise=require(_0x8608('0x0'));var util=require(_0x8608('0x1'));var _=require('lodash');var moment=require(_0x8608('0x2'));var Agent=require(_0x8608('0x3'));var Interval=require(_0x8608('0x4'));var OpenchannelQueue=require('../model/openchannelQueue');var ChatQueue=require(_0x8608('0x5'));var SmsQueue=require('../model/smsQueue');var MailQueue=require('../model/mailQueue');var FaxQueue=require('../model/faxQueue');var Realtime=function(){this[_0x8608('0x6')]={};this[_0x8608('0x7')]={};this['openchannelQueues']={};this[_0x8608('0x8')]={};this[_0x8608('0x9')]={};this[_0x8608('0xa')]={};this[_0x8608('0xb')]={};this[_0x8608('0xc')]={};this[_0x8608('0xd')]={};this[_0x8608('0xe')]={};this[_0x8608('0xf')]={};this['faxQueuesWaitingInteractions']={};};function freeIsNotKey(_0x33e43c,_0xad5a60,_0x5755fa){var _0x2685d9=_['mapKeys'](_0x33e43c,function(_0x239085,_0x5ac1cd){return _0x239085[_0x5755fa];});for(var _0x584da5 in _0xad5a60){if(_0xad5a60[_0x8608('0x10')](_0x584da5)){if(!_0x2685d9[_0x584da5]){delete _0xad5a60[_0x584da5];}}}}Realtime['prototype'][_0x8608('0x11')]=function(_0x402581,_0x57305e){for(var _0x3168ab in _0x57305e){if(_0x402581[_0x8608('0x10')](_0x3168ab)){_0x402581[_0x3168ab]=_0x57305e[_0x3168ab];}}};Realtime[_0x8608('0x12')][_0x8608('0x13')]=function(){var _0x1b5516=this;return function(_0x103c79){if(_0x103c79){freeIsNotKey(_0x103c79,_0x1b5516[_0x8608('0x6')],'id');for(var _0x889f12=0x0,_0x47aba9={},_0x3f67a4={};_0x889f12<_0x103c79['length'];_0x889f12+=0x1){_0x47aba9=_0x103c79[_0x889f12];if(_[_0x8608('0x14')](_0x1b5516[_0x8608('0x6')][_0x47aba9['id']])){_0x1b5516[_0x8608('0x6')][_0x47aba9['id']]=new Agent(_0x47aba9);}else{_0x1b5516[_0x8608('0x11')](_0x1b5516[_0x8608('0x6')][_0x47aba9['id']],_0x47aba9);}}}return _0x1b5516[_0x8608('0x6')];};};Realtime[_0x8608('0x12')][_0x8608('0x15')]=function(){var _0x137292=this;return function(_0x350e99){if(_0x350e99){freeIsNotKey(_0x350e99,_0x137292['intervals'],'id');for(var _0x565e5c=0x0,_0x56019b={},_0x4ffd67={};_0x565e5c<_0x350e99[_0x8608('0x16')];_0x565e5c+=0x1){_0x56019b=_0x350e99[_0x565e5c];if(_['isUndefined'](_0x137292['intervals'][_0x56019b['id']])){_0x137292['intervals'][_0x56019b['id']]=new Interval(_0x56019b);}else{_0x137292['mergeFromDatabase'](_0x137292[_0x8608('0x7')][_0x56019b['id']],_0x56019b);}}}return _0x137292[_0x8608('0x7')];};};Realtime['prototype'][_0x8608('0x17')]=function(){var _0x5bfd18=this;return function(_0x2b6660){if(_0x2b6660){freeIsNotKey(_0x2b6660,_0x5bfd18['openchannelQueues'],'id');for(var _0x54e365=0x0,_0x1a533d={},_0x11104f={};_0x54e365<_0x2b6660[_0x8608('0x16')];_0x54e365+=0x1){_0x1a533d=_0x2b6660[_0x54e365];if(_[_0x8608('0x14')](_0x5bfd18[_0x8608('0x18')][_0x1a533d['id']])){_0x5bfd18[_0x8608('0x18')][_0x1a533d['id']]=new OpenchannelQueue(_0x1a533d);}else{_0x5bfd18['mergeFromDatabase'](_0x5bfd18[_0x8608('0x18')][_0x1a533d['id']],_0x1a533d);}_0x5bfd18[_0x8608('0x18')][_0x1a533d['id']][_0x8608('0x19')]();_0x5bfd18['openchannelQueues'][_0x1a533d['id']]['updateRealtime']();}}return _0x5bfd18[_0x8608('0x18')];};};Realtime[_0x8608('0x12')]['initChatQueues']=function(){var _0x14e9e2=this;return function(_0x1f5f7f){if(_0x1f5f7f){freeIsNotKey(_0x1f5f7f,_0x14e9e2['chatQueues'],'id');for(var _0x5f52f0=0x0,_0x1ca201={},_0x1bbe36={};_0x5f52f0<_0x1f5f7f['length'];_0x5f52f0+=0x1){_0x1ca201=_0x1f5f7f[_0x5f52f0];if(_[_0x8608('0x14')](_0x14e9e2['chatQueues'][_0x1ca201['id']])){_0x14e9e2['chatQueues'][_0x1ca201['id']]=new ChatQueue(_0x1ca201);}else{_0x14e9e2['mergeFromDatabase'](_0x14e9e2['chatQueues'][_0x1ca201['id']],_0x1ca201);}_0x14e9e2[_0x8608('0x8')][_0x1ca201['id']]['updateRouting']();_0x14e9e2[_0x8608('0x8')][_0x1ca201['id']][_0x8608('0x1a')]();}}return _0x14e9e2[_0x8608('0x8')];};};Realtime['prototype']['initSmsQueues']=function(){var _0x50f013=this;return function(_0x1a1b01){if(_0x1a1b01){freeIsNotKey(_0x1a1b01,_0x50f013[_0x8608('0x9')],'id');for(var _0x3c1b37=0x0,_0x5ab659={},_0x4163b2={};_0x3c1b37<_0x1a1b01[_0x8608('0x16')];_0x3c1b37+=0x1){_0x5ab659=_0x1a1b01[_0x3c1b37];if(_[_0x8608('0x14')](_0x50f013[_0x8608('0x9')][_0x5ab659['id']])){_0x50f013[_0x8608('0x9')][_0x5ab659['id']]=new SmsQueue(_0x5ab659);}else{_0x50f013[_0x8608('0x11')](_0x50f013[_0x8608('0x9')][_0x5ab659['id']],_0x5ab659);}_0x50f013['smsQueues'][_0x5ab659['id']]['updateRouting']();_0x50f013['smsQueues'][_0x5ab659['id']][_0x8608('0x1a')]();}}return _0x50f013[_0x8608('0x9')];};};Realtime[_0x8608('0x12')][_0x8608('0x1b')]=function(){var _0x4a6c87=this;return function(_0x304bf2){if(_0x304bf2){freeIsNotKey(_0x304bf2,_0x4a6c87[_0x8608('0xa')],'id');for(var _0x543350=0x0,_0x2bdd51={},_0x204de7={};_0x543350<_0x304bf2['length'];_0x543350+=0x1){_0x2bdd51=_0x304bf2[_0x543350];if(_['isUndefined'](_0x4a6c87[_0x8608('0xa')][_0x2bdd51['id']])){_0x4a6c87[_0x8608('0xa')][_0x2bdd51['id']]=new MailQueue(_0x2bdd51);}else{_0x4a6c87[_0x8608('0x11')](_0x4a6c87[_0x8608('0xa')][_0x2bdd51['id']],_0x2bdd51);}_0x4a6c87['mailQueues'][_0x2bdd51['id']][_0x8608('0x19')]();_0x4a6c87[_0x8608('0xa')][_0x2bdd51['id']]['updateRealtime']();}}return _0x4a6c87['mailQueues'];};};Realtime[_0x8608('0x12')][_0x8608('0x1c')]=function(){var _0x4c9587=this;return function(_0x1b013e){if(_0x1b013e){freeIsNotKey(_0x1b013e,_0x4c9587[_0x8608('0xb')],'id');for(var _0x5bb9ef=0x0,_0x700f39={},_0x1e5f59={};_0x5bb9ef<_0x1b013e[_0x8608('0x16')];_0x5bb9ef+=0x1){_0x700f39=_0x1b013e[_0x5bb9ef];if(_['isUndefined'](_0x4c9587['faxQueues'][_0x700f39['id']])){_0x4c9587[_0x8608('0xb')][_0x700f39['id']]=new FaxQueue(_0x700f39);}else{_0x4c9587[_0x8608('0x11')](_0x4c9587['faxQueues'][_0x700f39['id']],_0x700f39);}_0x4c9587[_0x8608('0xb')][_0x700f39['id']][_0x8608('0x19')]();_0x4c9587[_0x8608('0xb')][_0x700f39['id']][_0x8608('0x1a')]();}}return _0x4c9587['faxQueues'];};};module[_0x8608('0x1d')]=Realtime;