Built motion from commit (unavailable).|2.3.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 _0x56b8=['chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','hasOwnProperty','mergeFromDatabase','prototype','initAgents','agents','length','isUndefined','initIntervals','initOpenchannelQueues','updateRouting','updateRealtime','initChatQueues','smsQueues','initFaxQueues','bluebird','util','lodash','../model/openchannelQueue','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','intervals','openchannelQueues','chatQueues','mailQueues','faxQueues'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x56b8,0x73));var _0x856b=function(_0xc9396b,_0x734ceb){_0xc9396b=_0xc9396b-0x0;var _0x56d6ee=_0x56b8[_0xc9396b];return _0x56d6ee;};'use strict';var BPromise=require(_0x856b('0x0'));var util=require(_0x856b('0x1'));var _=require(_0x856b('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Interval=require('../model/interval');var OpenchannelQueue=require(_0x856b('0x3'));var ChatQueue=require(_0x856b('0x4'));var SmsQueue=require(_0x856b('0x5'));var MailQueue=require(_0x856b('0x6'));var FaxQueue=require(_0x856b('0x7'));var Realtime=function(){this['agents']={};this[_0x856b('0x8')]={};this[_0x856b('0x9')]={};this[_0x856b('0xa')]={};this['smsQueues']={};this[_0x856b('0xb')]={};this[_0x856b('0xc')]={};this[_0x856b('0xd')]={};this[_0x856b('0xe')]={};this[_0x856b('0xf')]={};this[_0x856b('0x10')]={};this[_0x856b('0x11')]={};};function freeIsNotKey(_0x379da1,_0xfae325,_0x16e1ad){var _0x2c6016=_['mapKeys'](_0x379da1,function(_0x40355e,_0x2223d5){return _0x40355e[_0x16e1ad];});for(var _0x5837d6 in _0xfae325){if(_0xfae325[_0x856b('0x12')](_0x5837d6)){if(!_0x2c6016[_0x5837d6]){delete _0xfae325[_0x5837d6];}}}}Realtime['prototype'][_0x856b('0x13')]=function(_0x518b8f,_0x57f762){for(var _0x228134 in _0x57f762){if(_0x518b8f['hasOwnProperty'](_0x228134)){_0x518b8f[_0x228134]=_0x57f762[_0x228134];}}};Realtime[_0x856b('0x14')][_0x856b('0x15')]=function(){var _0x4a0e56=this;return function(_0x54e63b){if(_0x54e63b){freeIsNotKey(_0x54e63b,_0x4a0e56[_0x856b('0x16')],'id');for(var _0x166a57=0x0,_0x118d98={},_0x2eea55={};_0x166a57<_0x54e63b[_0x856b('0x17')];_0x166a57+=0x1){_0x118d98=_0x54e63b[_0x166a57];if(_[_0x856b('0x18')](_0x4a0e56['agents'][_0x118d98['id']])){_0x4a0e56[_0x856b('0x16')][_0x118d98['id']]=new Agent(_0x118d98);}else{_0x4a0e56['mergeFromDatabase'](_0x4a0e56[_0x856b('0x16')][_0x118d98['id']],_0x118d98);}}}return _0x4a0e56[_0x856b('0x16')];};};Realtime[_0x856b('0x14')][_0x856b('0x19')]=function(){var _0x3415ef=this;return function(_0x9fe9b0){if(_0x9fe9b0){freeIsNotKey(_0x9fe9b0,_0x3415ef['intervals'],'id');for(var _0x2fcb6b=0x0,_0x444839={},_0x22c5c4={};_0x2fcb6b<_0x9fe9b0[_0x856b('0x17')];_0x2fcb6b+=0x1){_0x444839=_0x9fe9b0[_0x2fcb6b];if(_[_0x856b('0x18')](_0x3415ef[_0x856b('0x8')][_0x444839['id']])){_0x3415ef['intervals'][_0x444839['id']]=new Interval(_0x444839);}else{_0x3415ef[_0x856b('0x13')](_0x3415ef['intervals'][_0x444839['id']],_0x444839);}}}return _0x3415ef[_0x856b('0x8')];};};Realtime[_0x856b('0x14')][_0x856b('0x1a')]=function(){var _0x2ac30d=this;return function(_0x331095){if(_0x331095){freeIsNotKey(_0x331095,_0x2ac30d[_0x856b('0x9')],'id');for(var _0x1b57cb=0x0,_0x980978={},_0xd5a7f6={};_0x1b57cb<_0x331095[_0x856b('0x17')];_0x1b57cb+=0x1){_0x980978=_0x331095[_0x1b57cb];if(_[_0x856b('0x18')](_0x2ac30d[_0x856b('0x9')][_0x980978['id']])){_0x2ac30d[_0x856b('0x9')][_0x980978['id']]=new OpenchannelQueue(_0x980978);}else{_0x2ac30d[_0x856b('0x13')](_0x2ac30d[_0x856b('0x9')][_0x980978['id']],_0x980978);}_0x2ac30d[_0x856b('0x9')][_0x980978['id']][_0x856b('0x1b')]();_0x2ac30d[_0x856b('0x9')][_0x980978['id']][_0x856b('0x1c')]();}}return _0x2ac30d['openchannelQueues'];};};Realtime[_0x856b('0x14')][_0x856b('0x1d')]=function(){var _0x77278e=this;return function(_0x182d26){if(_0x182d26){freeIsNotKey(_0x182d26,_0x77278e[_0x856b('0xa')],'id');for(var _0x4213a4=0x0,_0x59b8f7={},_0x295e84={};_0x4213a4<_0x182d26[_0x856b('0x17')];_0x4213a4+=0x1){_0x59b8f7=_0x182d26[_0x4213a4];if(_[_0x856b('0x18')](_0x77278e[_0x856b('0xa')][_0x59b8f7['id']])){_0x77278e['chatQueues'][_0x59b8f7['id']]=new ChatQueue(_0x59b8f7);}else{_0x77278e[_0x856b('0x13')](_0x77278e[_0x856b('0xa')][_0x59b8f7['id']],_0x59b8f7);}_0x77278e[_0x856b('0xa')][_0x59b8f7['id']][_0x856b('0x1b')]();_0x77278e['chatQueues'][_0x59b8f7['id']][_0x856b('0x1c')]();}}return _0x77278e['chatQueues'];};};Realtime[_0x856b('0x14')]['initSmsQueues']=function(){var _0x279ba3=this;return function(_0x1ee385){if(_0x1ee385){freeIsNotKey(_0x1ee385,_0x279ba3[_0x856b('0x1e')],'id');for(var _0x4772ad=0x0,_0x5287c6={},_0x9af777={};_0x4772ad<_0x1ee385[_0x856b('0x17')];_0x4772ad+=0x1){_0x5287c6=_0x1ee385[_0x4772ad];if(_[_0x856b('0x18')](_0x279ba3[_0x856b('0x1e')][_0x5287c6['id']])){_0x279ba3[_0x856b('0x1e')][_0x5287c6['id']]=new SmsQueue(_0x5287c6);}else{_0x279ba3[_0x856b('0x13')](_0x279ba3[_0x856b('0x1e')][_0x5287c6['id']],_0x5287c6);}_0x279ba3['smsQueues'][_0x5287c6['id']]['updateRouting']();_0x279ba3[_0x856b('0x1e')][_0x5287c6['id']][_0x856b('0x1c')]();}}return _0x279ba3['smsQueues'];};};Realtime[_0x856b('0x14')]['initMailQueues']=function(){var _0x1242c2=this;return function(_0x7afcbe){if(_0x7afcbe){freeIsNotKey(_0x7afcbe,_0x1242c2['mailQueues'],'id');for(var _0x4fbf49=0x0,_0x3a42fc={},_0x27a387={};_0x4fbf49<_0x7afcbe[_0x856b('0x17')];_0x4fbf49+=0x1){_0x3a42fc=_0x7afcbe[_0x4fbf49];if(_['isUndefined'](_0x1242c2[_0x856b('0xb')][_0x3a42fc['id']])){_0x1242c2[_0x856b('0xb')][_0x3a42fc['id']]=new MailQueue(_0x3a42fc);}else{_0x1242c2['mergeFromDatabase'](_0x1242c2[_0x856b('0xb')][_0x3a42fc['id']],_0x3a42fc);}_0x1242c2['mailQueues'][_0x3a42fc['id']][_0x856b('0x1b')]();_0x1242c2[_0x856b('0xb')][_0x3a42fc['id']][_0x856b('0x1c')]();}}return _0x1242c2[_0x856b('0xb')];};};Realtime[_0x856b('0x14')][_0x856b('0x1f')]=function(){var _0x2b843e=this;return function(_0x4781e5){if(_0x4781e5){freeIsNotKey(_0x4781e5,_0x2b843e[_0x856b('0xc')],'id');for(var _0x347639=0x0,_0x307062={},_0x1dc469={};_0x347639<_0x4781e5['length'];_0x347639+=0x1){_0x307062=_0x4781e5[_0x347639];if(_[_0x856b('0x18')](_0x2b843e[_0x856b('0xc')][_0x307062['id']])){_0x2b843e[_0x856b('0xc')][_0x307062['id']]=new FaxQueue(_0x307062);}else{_0x2b843e[_0x856b('0x13')](_0x2b843e[_0x856b('0xc')][_0x307062['id']],_0x307062);}_0x2b843e['faxQueues'][_0x307062['id']][_0x856b('0x1b')]();_0x2b843e[_0x856b('0xc')][_0x307062['id']][_0x856b('0x1c')]();}}return _0x2b843e['faxQueues'];};};module['exports']=Realtime;