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 _0xc277=['chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','mapKeys','prototype','hasOwnProperty','length','isUndefined','agents','mergeFromDatabase','initIntervals','intervals','initOpenchannelQueues','updateRouting','initChatQueues','updateRealtime','initSmsQueues','initFaxQueues','exports','moment','../model/agent','../model/interval','../model/chatQueue','../model/mailQueue','../model/faxQueue','openchannelQueues','chatQueues','smsQueues','mailQueues','faxQueues'];(function(_0x819464,_0x46fc91){var _0x49dcc0=function(_0x36b2b2){while(--_0x36b2b2){_0x819464['push'](_0x819464['shift']());}};_0x49dcc0(++_0x46fc91);}(_0xc277,0x155));var _0x7c27=function(_0x624d34,_0x56dbdb){_0x624d34=_0x624d34-0x0;var _0x4bc79d=_0xc277[_0x624d34];return _0x4bc79d;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require('lodash');var moment=require(_0x7c27('0x0'));var Agent=require(_0x7c27('0x1'));var Interval=require(_0x7c27('0x2'));var OpenchannelQueue=require('../model/openchannelQueue');var ChatQueue=require(_0x7c27('0x3'));var SmsQueue=require('../model/smsQueue');var MailQueue=require(_0x7c27('0x4'));var FaxQueue=require(_0x7c27('0x5'));var Realtime=function(){this['agents']={};this['intervals']={};this[_0x7c27('0x6')]={};this[_0x7c27('0x7')]={};this[_0x7c27('0x8')]={};this[_0x7c27('0x9')]={};this[_0x7c27('0xa')]={};this[_0x7c27('0xb')]={};this[_0x7c27('0xc')]={};this[_0x7c27('0xd')]={};this[_0x7c27('0xe')]={};this[_0x7c27('0xf')]={};};function freeIsNotKey(_0x459238,_0x1ad866,_0x319e8e){var _0x5a96f4=_[_0x7c27('0x10')](_0x459238,function(_0x51b2e1,_0x2f5ae2){return _0x51b2e1[_0x319e8e];});for(var _0x36a068 in _0x1ad866){if(_0x1ad866['hasOwnProperty'](_0x36a068)){if(!_0x5a96f4[_0x36a068]){delete _0x1ad866[_0x36a068];}}}}Realtime[_0x7c27('0x11')]['mergeFromDatabase']=function(_0x43658c,_0x5e58fa){for(var _0x57424c in _0x5e58fa){if(_0x43658c[_0x7c27('0x12')](_0x57424c)){_0x43658c[_0x57424c]=_0x5e58fa[_0x57424c];}}};Realtime[_0x7c27('0x11')]['initAgents']=function(){var _0x1847e3=this;return function(_0x40619d){if(_0x40619d){freeIsNotKey(_0x40619d,_0x1847e3['agents'],'id');for(var _0x54f4d2=0x0,_0x412761={},_0x237530={};_0x54f4d2<_0x40619d[_0x7c27('0x13')];_0x54f4d2+=0x1){_0x412761=_0x40619d[_0x54f4d2];if(_[_0x7c27('0x14')](_0x1847e3[_0x7c27('0x15')][_0x412761['id']])){_0x1847e3[_0x7c27('0x15')][_0x412761['id']]=new Agent(_0x412761);}else{_0x1847e3[_0x7c27('0x16')](_0x1847e3[_0x7c27('0x15')][_0x412761['id']],_0x412761);}}}return _0x1847e3['agents'];};};Realtime['prototype'][_0x7c27('0x17')]=function(){var _0x41d6e8=this;return function(_0x2e415e){if(_0x2e415e){freeIsNotKey(_0x2e415e,_0x41d6e8['intervals'],'id');for(var _0x76b74d=0x0,_0xe15c3c={},_0x2afc34={};_0x76b74d<_0x2e415e[_0x7c27('0x13')];_0x76b74d+=0x1){_0xe15c3c=_0x2e415e[_0x76b74d];if(_[_0x7c27('0x14')](_0x41d6e8[_0x7c27('0x18')][_0xe15c3c['id']])){_0x41d6e8['intervals'][_0xe15c3c['id']]=new Interval(_0xe15c3c);}else{_0x41d6e8[_0x7c27('0x16')](_0x41d6e8[_0x7c27('0x18')][_0xe15c3c['id']],_0xe15c3c);}}}return _0x41d6e8['intervals'];};};Realtime[_0x7c27('0x11')][_0x7c27('0x19')]=function(){var _0x14037e=this;return function(_0x16cdd8){if(_0x16cdd8){freeIsNotKey(_0x16cdd8,_0x14037e['openchannelQueues'],'id');for(var _0xbac579=0x0,_0x8c1675={},_0x52ead0={};_0xbac579<_0x16cdd8[_0x7c27('0x13')];_0xbac579+=0x1){_0x8c1675=_0x16cdd8[_0xbac579];if(_[_0x7c27('0x14')](_0x14037e[_0x7c27('0x6')][_0x8c1675['id']])){_0x14037e['openchannelQueues'][_0x8c1675['id']]=new OpenchannelQueue(_0x8c1675);}else{_0x14037e['mergeFromDatabase'](_0x14037e[_0x7c27('0x6')][_0x8c1675['id']],_0x8c1675);}_0x14037e[_0x7c27('0x6')][_0x8c1675['id']][_0x7c27('0x1a')]();_0x14037e[_0x7c27('0x6')][_0x8c1675['id']]['updateRealtime']();}}return _0x14037e[_0x7c27('0x6')];};};Realtime['prototype'][_0x7c27('0x1b')]=function(){var _0x3e3d4e=this;return function(_0x597a23){if(_0x597a23){freeIsNotKey(_0x597a23,_0x3e3d4e[_0x7c27('0x7')],'id');for(var _0x380e46=0x0,_0xe07f1a={},_0x499e28={};_0x380e46<_0x597a23[_0x7c27('0x13')];_0x380e46+=0x1){_0xe07f1a=_0x597a23[_0x380e46];if(_[_0x7c27('0x14')](_0x3e3d4e['chatQueues'][_0xe07f1a['id']])){_0x3e3d4e[_0x7c27('0x7')][_0xe07f1a['id']]=new ChatQueue(_0xe07f1a);}else{_0x3e3d4e[_0x7c27('0x16')](_0x3e3d4e[_0x7c27('0x7')][_0xe07f1a['id']],_0xe07f1a);}_0x3e3d4e[_0x7c27('0x7')][_0xe07f1a['id']][_0x7c27('0x1a')]();_0x3e3d4e['chatQueues'][_0xe07f1a['id']][_0x7c27('0x1c')]();}}return _0x3e3d4e['chatQueues'];};};Realtime[_0x7c27('0x11')][_0x7c27('0x1d')]=function(){var _0x809c39=this;return function(_0xbcdb9b){if(_0xbcdb9b){freeIsNotKey(_0xbcdb9b,_0x809c39[_0x7c27('0x8')],'id');for(var _0x18c1e5=0x0,_0x51708b={},_0x515c8d={};_0x18c1e5<_0xbcdb9b[_0x7c27('0x13')];_0x18c1e5+=0x1){_0x51708b=_0xbcdb9b[_0x18c1e5];if(_[_0x7c27('0x14')](_0x809c39[_0x7c27('0x8')][_0x51708b['id']])){_0x809c39[_0x7c27('0x8')][_0x51708b['id']]=new SmsQueue(_0x51708b);}else{_0x809c39['mergeFromDatabase'](_0x809c39[_0x7c27('0x8')][_0x51708b['id']],_0x51708b);}_0x809c39['smsQueues'][_0x51708b['id']]['updateRouting']();_0x809c39[_0x7c27('0x8')][_0x51708b['id']][_0x7c27('0x1c')]();}}return _0x809c39[_0x7c27('0x8')];};};Realtime[_0x7c27('0x11')]['initMailQueues']=function(){var _0x4e06cb=this;return function(_0xa4d4dc){if(_0xa4d4dc){freeIsNotKey(_0xa4d4dc,_0x4e06cb[_0x7c27('0x9')],'id');for(var _0x3cea7e=0x0,_0xa7a1ed={},_0x1a6b82={};_0x3cea7e<_0xa4d4dc['length'];_0x3cea7e+=0x1){_0xa7a1ed=_0xa4d4dc[_0x3cea7e];if(_[_0x7c27('0x14')](_0x4e06cb['mailQueues'][_0xa7a1ed['id']])){_0x4e06cb[_0x7c27('0x9')][_0xa7a1ed['id']]=new MailQueue(_0xa7a1ed);}else{_0x4e06cb[_0x7c27('0x16')](_0x4e06cb[_0x7c27('0x9')][_0xa7a1ed['id']],_0xa7a1ed);}_0x4e06cb['mailQueues'][_0xa7a1ed['id']][_0x7c27('0x1a')]();_0x4e06cb['mailQueues'][_0xa7a1ed['id']]['updateRealtime']();}}return _0x4e06cb[_0x7c27('0x9')];};};Realtime[_0x7c27('0x11')][_0x7c27('0x1e')]=function(){var _0x4cdcf5=this;return function(_0x2c5e9e){if(_0x2c5e9e){freeIsNotKey(_0x2c5e9e,_0x4cdcf5[_0x7c27('0xa')],'id');for(var _0xab9d90=0x0,_0x270663={},_0x2aef43={};_0xab9d90<_0x2c5e9e[_0x7c27('0x13')];_0xab9d90+=0x1){_0x270663=_0x2c5e9e[_0xab9d90];if(_[_0x7c27('0x14')](_0x4cdcf5[_0x7c27('0xa')][_0x270663['id']])){_0x4cdcf5[_0x7c27('0xa')][_0x270663['id']]=new FaxQueue(_0x270663);}else{_0x4cdcf5[_0x7c27('0x16')](_0x4cdcf5[_0x7c27('0xa')][_0x270663['id']],_0x270663);}_0x4cdcf5[_0x7c27('0xa')][_0x270663['id']][_0x7c27('0x1a')]();_0x4cdcf5[_0x7c27('0xa')][_0x270663['id']]['updateRealtime']();}}return _0x4cdcf5[_0x7c27('0xa')];};};module[_0x7c27('0x1f')]=Realtime;