Built motion from commit (unavailable).|2.3.1
[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 _0x0bad=['chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','hasOwnProperty','prototype','mergeFromDatabase','initAgents','length','isUndefined','initOpenchannelQueues','updateRealtime','initChatQueues','updateRouting','initMailQueues','mailQueues','initFaxQueues','faxQueues','exports','bluebird','util','lodash','../model/agent','../model/openchannelQueue','../model/chatQueue','../model/smsQueue','../model/faxQueue','agents','intervals','openchannelQueues','chatQueues','smsQueues'];(function(_0x2db667,_0x193cf5){var _0x83ff9=function(_0x5da022){while(--_0x5da022){_0x2db667['push'](_0x2db667['shift']());}};_0x83ff9(++_0x193cf5);}(_0x0bad,0x133));var _0xd0ba=function(_0x3f448b,_0x1c4055){_0x3f448b=_0x3f448b-0x0;var _0x104efd=_0x0bad[_0x3f448b];return _0x104efd;};'use strict';var BPromise=require(_0xd0ba('0x0'));var util=require(_0xd0ba('0x1'));var _=require(_0xd0ba('0x2'));var moment=require('moment');var Agent=require(_0xd0ba('0x3'));var Interval=require('../model/interval');var OpenchannelQueue=require(_0xd0ba('0x4'));var ChatQueue=require(_0xd0ba('0x5'));var SmsQueue=require(_0xd0ba('0x6'));var MailQueue=require('../model/mailQueue');var FaxQueue=require(_0xd0ba('0x7'));var Realtime=function(){this[_0xd0ba('0x8')]={};this[_0xd0ba('0x9')]={};this[_0xd0ba('0xa')]={};this[_0xd0ba('0xb')]={};this[_0xd0ba('0xc')]={};this['mailQueues']={};this['faxQueues']={};this[_0xd0ba('0xd')]={};this[_0xd0ba('0xe')]={};this['openchannelQueuesWaitingInteractions']={};this[_0xd0ba('0xf')]={};this[_0xd0ba('0x10')]={};};function freeIsNotKey(_0xb7ae02,_0x2045b3,_0x4ac1fa){var _0x53497d=_['mapKeys'](_0xb7ae02,function(_0x49ffbe,_0xbfc039){return _0x49ffbe[_0x4ac1fa];});for(var _0x521c83 in _0x2045b3){if(_0x2045b3[_0xd0ba('0x11')](_0x521c83)){if(!_0x53497d[_0x521c83]){delete _0x2045b3[_0x521c83];}}}}Realtime[_0xd0ba('0x12')][_0xd0ba('0x13')]=function(_0x4c16ce,_0x13c761){for(var _0x37bf68 in _0x13c761){if(_0x4c16ce['hasOwnProperty'](_0x37bf68)){_0x4c16ce[_0x37bf68]=_0x13c761[_0x37bf68];}}};Realtime[_0xd0ba('0x12')][_0xd0ba('0x14')]=function(){var _0x5681a3=this;return function(_0x525fa2){if(_0x525fa2){freeIsNotKey(_0x525fa2,_0x5681a3['agents'],'id');for(var _0x3208b2=0x0,_0x11bb78={},_0x2f11ff={};_0x3208b2<_0x525fa2[_0xd0ba('0x15')];_0x3208b2+=0x1){_0x11bb78=_0x525fa2[_0x3208b2];if(_[_0xd0ba('0x16')](_0x5681a3[_0xd0ba('0x8')][_0x11bb78['id']])){_0x5681a3[_0xd0ba('0x8')][_0x11bb78['id']]=new Agent(_0x11bb78);}else{_0x5681a3[_0xd0ba('0x13')](_0x5681a3[_0xd0ba('0x8')][_0x11bb78['id']],_0x11bb78);}}}return _0x5681a3[_0xd0ba('0x8')];};};Realtime['prototype']['initIntervals']=function(){var _0x3b87f6=this;return function(_0x42a71f){if(_0x42a71f){freeIsNotKey(_0x42a71f,_0x3b87f6[_0xd0ba('0x9')],'id');for(var _0x1fa938=0x0,_0x23e694={},_0x3fb6c4={};_0x1fa938<_0x42a71f[_0xd0ba('0x15')];_0x1fa938+=0x1){_0x23e694=_0x42a71f[_0x1fa938];if(_[_0xd0ba('0x16')](_0x3b87f6['intervals'][_0x23e694['id']])){_0x3b87f6['intervals'][_0x23e694['id']]=new Interval(_0x23e694);}else{_0x3b87f6[_0xd0ba('0x13')](_0x3b87f6[_0xd0ba('0x9')][_0x23e694['id']],_0x23e694);}}}return _0x3b87f6[_0xd0ba('0x9')];};};Realtime[_0xd0ba('0x12')][_0xd0ba('0x17')]=function(){var _0x287827=this;return function(_0x4c4ea8){if(_0x4c4ea8){freeIsNotKey(_0x4c4ea8,_0x287827['openchannelQueues'],'id');for(var _0x2a9602=0x0,_0x458883={},_0x409d4b={};_0x2a9602<_0x4c4ea8[_0xd0ba('0x15')];_0x2a9602+=0x1){_0x458883=_0x4c4ea8[_0x2a9602];if(_[_0xd0ba('0x16')](_0x287827[_0xd0ba('0xa')][_0x458883['id']])){_0x287827[_0xd0ba('0xa')][_0x458883['id']]=new OpenchannelQueue(_0x458883);}else{_0x287827[_0xd0ba('0x13')](_0x287827[_0xd0ba('0xa')][_0x458883['id']],_0x458883);}_0x287827[_0xd0ba('0xa')][_0x458883['id']]['updateRouting']();_0x287827['openchannelQueues'][_0x458883['id']][_0xd0ba('0x18')]();}}return _0x287827[_0xd0ba('0xa')];};};Realtime['prototype'][_0xd0ba('0x19')]=function(){var _0x319714=this;return function(_0x785c59){if(_0x785c59){freeIsNotKey(_0x785c59,_0x319714['chatQueues'],'id');for(var _0x4fffd4=0x0,_0x5d0afb={},_0x5230b4={};_0x4fffd4<_0x785c59[_0xd0ba('0x15')];_0x4fffd4+=0x1){_0x5d0afb=_0x785c59[_0x4fffd4];if(_['isUndefined'](_0x319714[_0xd0ba('0xb')][_0x5d0afb['id']])){_0x319714[_0xd0ba('0xb')][_0x5d0afb['id']]=new ChatQueue(_0x5d0afb);}else{_0x319714[_0xd0ba('0x13')](_0x319714[_0xd0ba('0xb')][_0x5d0afb['id']],_0x5d0afb);}_0x319714[_0xd0ba('0xb')][_0x5d0afb['id']]['updateRouting']();_0x319714['chatQueues'][_0x5d0afb['id']][_0xd0ba('0x18')]();}}return _0x319714[_0xd0ba('0xb')];};};Realtime[_0xd0ba('0x12')]['initSmsQueues']=function(){var _0x43103c=this;return function(_0x269d62){if(_0x269d62){freeIsNotKey(_0x269d62,_0x43103c[_0xd0ba('0xc')],'id');for(var _0x650fad=0x0,_0xe620fd={},_0x490df1={};_0x650fad<_0x269d62[_0xd0ba('0x15')];_0x650fad+=0x1){_0xe620fd=_0x269d62[_0x650fad];if(_[_0xd0ba('0x16')](_0x43103c[_0xd0ba('0xc')][_0xe620fd['id']])){_0x43103c[_0xd0ba('0xc')][_0xe620fd['id']]=new SmsQueue(_0xe620fd);}else{_0x43103c[_0xd0ba('0x13')](_0x43103c[_0xd0ba('0xc')][_0xe620fd['id']],_0xe620fd);}_0x43103c[_0xd0ba('0xc')][_0xe620fd['id']][_0xd0ba('0x1a')]();_0x43103c[_0xd0ba('0xc')][_0xe620fd['id']][_0xd0ba('0x18')]();}}return _0x43103c[_0xd0ba('0xc')];};};Realtime[_0xd0ba('0x12')][_0xd0ba('0x1b')]=function(){var _0x3d4d32=this;return function(_0x20b3e6){if(_0x20b3e6){freeIsNotKey(_0x20b3e6,_0x3d4d32['mailQueues'],'id');for(var _0x31b3a7=0x0,_0x550e0f={},_0x23bc40={};_0x31b3a7<_0x20b3e6[_0xd0ba('0x15')];_0x31b3a7+=0x1){_0x550e0f=_0x20b3e6[_0x31b3a7];if(_[_0xd0ba('0x16')](_0x3d4d32['mailQueues'][_0x550e0f['id']])){_0x3d4d32[_0xd0ba('0x1c')][_0x550e0f['id']]=new MailQueue(_0x550e0f);}else{_0x3d4d32[_0xd0ba('0x13')](_0x3d4d32['mailQueues'][_0x550e0f['id']],_0x550e0f);}_0x3d4d32[_0xd0ba('0x1c')][_0x550e0f['id']][_0xd0ba('0x1a')]();_0x3d4d32[_0xd0ba('0x1c')][_0x550e0f['id']][_0xd0ba('0x18')]();}}return _0x3d4d32[_0xd0ba('0x1c')];};};Realtime[_0xd0ba('0x12')][_0xd0ba('0x1d')]=function(){var _0x221409=this;return function(_0x2cf05b){if(_0x2cf05b){freeIsNotKey(_0x2cf05b,_0x221409['faxQueues'],'id');for(var _0x442b65=0x0,_0x40c105={},_0x4f04f7={};_0x442b65<_0x2cf05b[_0xd0ba('0x15')];_0x442b65+=0x1){_0x40c105=_0x2cf05b[_0x442b65];if(_[_0xd0ba('0x16')](_0x221409['faxQueues'][_0x40c105['id']])){_0x221409[_0xd0ba('0x1e')][_0x40c105['id']]=new FaxQueue(_0x40c105);}else{_0x221409[_0xd0ba('0x13')](_0x221409[_0xd0ba('0x1e')][_0x40c105['id']],_0x40c105);}_0x221409[_0xd0ba('0x1e')][_0x40c105['id']][_0xd0ba('0x1a')]();_0x221409['faxQueues'][_0x40c105['id']][_0xd0ba('0x18')]();}}return _0x221409['faxQueues'];};};module[_0xd0ba('0x1f')]=Realtime;