5a3d7b4475ad198d01bac7db1173c3a976010101
[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 _0x34e8=['smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','mapKeys','hasOwnProperty','mergeFromDatabase','prototype','initAgents','length','isUndefined','agents','initIntervals','openchannelQueues','updateRealtime','initChatQueues','updateRouting','initSmsQueues','initMailQueues','initWhatsappQueues','exports','bluebird','util','lodash','moment','../model/interval','../model/openchannelQueue','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','chatQueues','smsQueues','mailQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions'];(function(_0x80fc9b,_0x2baa63){var _0x3d0189=function(_0x2bf2fe){while(--_0x2bf2fe){_0x80fc9b['push'](_0x80fc9b['shift']());}};_0x3d0189(++_0x2baa63);}(_0x34e8,0x12c));var _0x834e=function(_0x292b1f,_0x43ed7e){_0x292b1f=_0x292b1f-0x0;var _0x1e60a2=_0x34e8[_0x292b1f];return _0x1e60a2;};'use strict';var BPromise=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var _=require(_0x834e('0x2'));var moment=require(_0x834e('0x3'));var Agent=require('../model/agent');var Interval=require(_0x834e('0x4'));var OpenchannelQueue=require(_0x834e('0x5'));var ChatQueue=require(_0x834e('0x6'));var SmsQueue=require(_0x834e('0x7'));var MailQueue=require(_0x834e('0x8'));var FaxQueue=require(_0x834e('0x9'));var WhatsappQueue=require(_0x834e('0xa'));var Realtime=function(){this['agents']={};this[_0x834e('0xb')]={};this['openchannelQueues']={};this[_0x834e('0xc')]={};this[_0x834e('0xd')]={};this[_0x834e('0xe')]={};this[_0x834e('0xf')]={};this[_0x834e('0x10')]={};this[_0x834e('0x11')]={};this[_0x834e('0x12')]={};this[_0x834e('0x13')]={};this[_0x834e('0x14')]={};this[_0x834e('0x15')]={};this[_0x834e('0x16')]={};};function freeIsNotKey(_0x36e124,_0x14038b,_0x2e1a37){var _0x293514=_[_0x834e('0x17')](_0x36e124,function(_0x2fd95c,_0x538bb3){return _0x2fd95c[_0x2e1a37];});for(var _0x5e5b6d in _0x14038b){if(_0x14038b[_0x834e('0x18')](_0x5e5b6d)){if(!_0x293514[_0x5e5b6d]){delete _0x14038b[_0x5e5b6d];}}}}Realtime['prototype'][_0x834e('0x19')]=function(_0x2d95f2,_0x28e659){for(var _0x21cc0a in _0x28e659){if(_0x2d95f2['hasOwnProperty'](_0x21cc0a)){_0x2d95f2[_0x21cc0a]=_0x28e659[_0x21cc0a];}}};Realtime[_0x834e('0x1a')][_0x834e('0x1b')]=function(){var _0x57274a=this;return function(_0x316205){if(_0x316205){freeIsNotKey(_0x316205,_0x57274a['agents'],'id');for(var _0x38a8cd=0x0,_0x36d443={},_0x478afe={};_0x38a8cd<_0x316205[_0x834e('0x1c')];_0x38a8cd+=0x1){_0x36d443=_0x316205[_0x38a8cd];if(_[_0x834e('0x1d')](_0x57274a[_0x834e('0x1e')][_0x36d443['id']])){_0x57274a['agents'][_0x36d443['id']]=new Agent(_0x36d443);}else{_0x57274a[_0x834e('0x19')](_0x57274a[_0x834e('0x1e')][_0x36d443['id']],_0x36d443);}}}return _0x57274a[_0x834e('0x1e')];};};Realtime[_0x834e('0x1a')][_0x834e('0x1f')]=function(){var _0x254677=this;return function(_0x1dd214){if(_0x1dd214){freeIsNotKey(_0x1dd214,_0x254677['intervals'],'id');for(var _0x2545b4=0x0,_0x1fd2c6={},_0x113ff4={};_0x2545b4<_0x1dd214[_0x834e('0x1c')];_0x2545b4+=0x1){_0x1fd2c6=_0x1dd214[_0x2545b4];if(_['isUndefined'](_0x254677[_0x834e('0xb')][_0x1fd2c6['id']])){_0x254677[_0x834e('0xb')][_0x1fd2c6['id']]=new Interval(_0x1fd2c6);}else{_0x254677['mergeFromDatabase'](_0x254677[_0x834e('0xb')][_0x1fd2c6['id']],_0x1fd2c6);}}}return _0x254677[_0x834e('0xb')];};};Realtime[_0x834e('0x1a')]['initOpenchannelQueues']=function(){var _0x4e3f48=this;return function(_0x231619){if(_0x231619){freeIsNotKey(_0x231619,_0x4e3f48[_0x834e('0x20')],'id');for(var _0x589dde=0x0,_0x25ee1d={},_0x1dc1e0={};_0x589dde<_0x231619['length'];_0x589dde+=0x1){_0x25ee1d=_0x231619[_0x589dde];if(_[_0x834e('0x1d')](_0x4e3f48[_0x834e('0x20')][_0x25ee1d['id']])){_0x4e3f48[_0x834e('0x20')][_0x25ee1d['id']]=new OpenchannelQueue(_0x25ee1d);}else{_0x4e3f48['mergeFromDatabase'](_0x4e3f48[_0x834e('0x20')][_0x25ee1d['id']],_0x25ee1d);}_0x4e3f48[_0x834e('0x20')][_0x25ee1d['id']]['updateRouting']();_0x4e3f48['openchannelQueues'][_0x25ee1d['id']][_0x834e('0x21')]();}}return _0x4e3f48['openchannelQueues'];};};Realtime[_0x834e('0x1a')][_0x834e('0x22')]=function(){var _0x3db026=this;return function(_0x2cc2eb){if(_0x2cc2eb){freeIsNotKey(_0x2cc2eb,_0x3db026[_0x834e('0xc')],'id');for(var _0x130cc5=0x0,_0x491919={},_0x510780={};_0x130cc5<_0x2cc2eb['length'];_0x130cc5+=0x1){_0x491919=_0x2cc2eb[_0x130cc5];if(_['isUndefined'](_0x3db026[_0x834e('0xc')][_0x491919['id']])){_0x3db026[_0x834e('0xc')][_0x491919['id']]=new ChatQueue(_0x491919);}else{_0x3db026[_0x834e('0x19')](_0x3db026['chatQueues'][_0x491919['id']],_0x491919);}_0x3db026[_0x834e('0xc')][_0x491919['id']][_0x834e('0x23')]();_0x3db026[_0x834e('0xc')][_0x491919['id']][_0x834e('0x21')]();}}return _0x3db026[_0x834e('0xc')];};};Realtime[_0x834e('0x1a')][_0x834e('0x24')]=function(){var _0xfaf716=this;return function(_0x278db3){if(_0x278db3){freeIsNotKey(_0x278db3,_0xfaf716['smsQueues'],'id');for(var _0xef9ec2=0x0,_0x5cad11={},_0x2c75c2={};_0xef9ec2<_0x278db3[_0x834e('0x1c')];_0xef9ec2+=0x1){_0x5cad11=_0x278db3[_0xef9ec2];if(_[_0x834e('0x1d')](_0xfaf716[_0x834e('0xd')][_0x5cad11['id']])){_0xfaf716[_0x834e('0xd')][_0x5cad11['id']]=new SmsQueue(_0x5cad11);}else{_0xfaf716[_0x834e('0x19')](_0xfaf716[_0x834e('0xd')][_0x5cad11['id']],_0x5cad11);}_0xfaf716[_0x834e('0xd')][_0x5cad11['id']][_0x834e('0x23')]();_0xfaf716[_0x834e('0xd')][_0x5cad11['id']]['updateRealtime']();}}return _0xfaf716[_0x834e('0xd')];};};Realtime[_0x834e('0x1a')][_0x834e('0x25')]=function(){var _0xaf01f4=this;return function(_0x595cc0){if(_0x595cc0){freeIsNotKey(_0x595cc0,_0xaf01f4[_0x834e('0xe')],'id');for(var _0x379d60=0x0,_0x4b12f5={},_0x496533={};_0x379d60<_0x595cc0['length'];_0x379d60+=0x1){_0x4b12f5=_0x595cc0[_0x379d60];if(_[_0x834e('0x1d')](_0xaf01f4[_0x834e('0xe')][_0x4b12f5['id']])){_0xaf01f4[_0x834e('0xe')][_0x4b12f5['id']]=new MailQueue(_0x4b12f5);}else{_0xaf01f4[_0x834e('0x19')](_0xaf01f4[_0x834e('0xe')][_0x4b12f5['id']],_0x4b12f5);}_0xaf01f4[_0x834e('0xe')][_0x4b12f5['id']]['updateRouting']();_0xaf01f4[_0x834e('0xe')][_0x4b12f5['id']]['updateRealtime']();}}return _0xaf01f4[_0x834e('0xe')];};};Realtime[_0x834e('0x1a')]['initFaxQueues']=function(){var _0x18ac3b=this;return function(_0x2f56c7){if(_0x2f56c7){freeIsNotKey(_0x2f56c7,_0x18ac3b['faxQueues'],'id');for(var _0x481f70=0x0,_0x388711={},_0xd0d43a={};_0x481f70<_0x2f56c7[_0x834e('0x1c')];_0x481f70+=0x1){_0x388711=_0x2f56c7[_0x481f70];if(_[_0x834e('0x1d')](_0x18ac3b[_0x834e('0xf')][_0x388711['id']])){_0x18ac3b['faxQueues'][_0x388711['id']]=new FaxQueue(_0x388711);}else{_0x18ac3b[_0x834e('0x19')](_0x18ac3b['faxQueues'][_0x388711['id']],_0x388711);}_0x18ac3b['faxQueues'][_0x388711['id']][_0x834e('0x23')]();_0x18ac3b['faxQueues'][_0x388711['id']][_0x834e('0x21')]();}}return _0x18ac3b[_0x834e('0xf')];};};Realtime[_0x834e('0x1a')][_0x834e('0x26')]=function(){var _0x2b7933=this;return function(_0x574ea8){if(_0x574ea8){freeIsNotKey(_0x574ea8,_0x2b7933[_0x834e('0x10')],'id');for(var _0x26b847=0x0,_0x38f266={},_0x58c5fb={};_0x26b847<_0x574ea8[_0x834e('0x1c')];_0x26b847+=0x1){_0x38f266=_0x574ea8[_0x26b847];if(_[_0x834e('0x1d')](_0x2b7933['whatsappQueues'][_0x38f266['id']])){_0x2b7933[_0x834e('0x10')][_0x38f266['id']]=new WhatsappQueue(_0x38f266);}else{_0x2b7933['mergeFromDatabase'](_0x2b7933[_0x834e('0x10')][_0x38f266['id']],_0x38f266);}_0x2b7933[_0x834e('0x10')][_0x38f266['id']]['updateRouting']();_0x2b7933['whatsappQueues'][_0x38f266['id']][_0x834e('0x21')]();}}return _0x2b7933[_0x834e('0x10')];};};module[_0x834e('0x27')]=Realtime;