738ea3ee66484aa04370a3f2a093c8a2d7cf815c
[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 _0x0db9=['../model/faxQueue','agents','intervals','chatQueues','smsQueues','mailQueues','faxQueues','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','mapKeys','hasOwnProperty','prototype','mergeFromDatabase','length','isUndefined','initIntervals','initOpenchannelQueues','openchannelQueues','initChatQueues','updateRouting','updateRealtime','initMailQueues','bluebird','util','lodash','moment','../model/agent','../model/interval','../model/openchannelQueue','../model/chatQueue','../model/smsQueue','../model/mailQueue'];(function(_0x253476,_0x16b31a){var _0x134271=function(_0x20623c){while(--_0x20623c){_0x253476['push'](_0x253476['shift']());}};_0x134271(++_0x16b31a);}(_0x0db9,0x16c));var _0x90db=function(_0x53b133,_0x176261){_0x53b133=_0x53b133-0x0;var _0x5647e0=_0x0db9[_0x53b133];return _0x5647e0;};'use strict';var BPromise=require(_0x90db('0x0'));var util=require(_0x90db('0x1'));var _=require(_0x90db('0x2'));var moment=require(_0x90db('0x3'));var Agent=require(_0x90db('0x4'));var Interval=require(_0x90db('0x5'));var OpenchannelQueue=require(_0x90db('0x6'));var ChatQueue=require(_0x90db('0x7'));var SmsQueue=require(_0x90db('0x8'));var MailQueue=require(_0x90db('0x9'));var FaxQueue=require(_0x90db('0xa'));var Realtime=function(){this[_0x90db('0xb')]={};this[_0x90db('0xc')]={};this['openchannelQueues']={};this[_0x90db('0xd')]={};this[_0x90db('0xe')]={};this[_0x90db('0xf')]={};this[_0x90db('0x10')]={};this['chatQueuesWaitingInteractions']={};this[_0x90db('0x11')]={};this[_0x90db('0x12')]={};this[_0x90db('0x13')]={};this[_0x90db('0x14')]={};};function freeIsNotKey(_0x579eca,_0x1a6357,_0x415483){var _0xc7d98e=_[_0x90db('0x15')](_0x579eca,function(_0x4ea1c1,_0x3b6ce4){return _0x4ea1c1[_0x415483];});for(var _0x48ce40 in _0x1a6357){if(_0x1a6357[_0x90db('0x16')](_0x48ce40)){if(!_0xc7d98e[_0x48ce40]){delete _0x1a6357[_0x48ce40];}}}}Realtime[_0x90db('0x17')][_0x90db('0x18')]=function(_0x3a3231,_0x1218b9){for(var _0x11fd6f in _0x1218b9){if(_0x3a3231[_0x90db('0x16')](_0x11fd6f)){_0x3a3231[_0x11fd6f]=_0x1218b9[_0x11fd6f];}}};Realtime[_0x90db('0x17')]['initAgents']=function(){var _0x39907f=this;return function(_0x5d85dc){if(_0x5d85dc){freeIsNotKey(_0x5d85dc,_0x39907f['agents'],'id');for(var _0x3dc617=0x0,_0x4ab671={},_0x3c4c0c={};_0x3dc617<_0x5d85dc[_0x90db('0x19')];_0x3dc617+=0x1){_0x4ab671=_0x5d85dc[_0x3dc617];if(_[_0x90db('0x1a')](_0x39907f[_0x90db('0xb')][_0x4ab671['id']])){_0x39907f[_0x90db('0xb')][_0x4ab671['id']]=new Agent(_0x4ab671);}else{_0x39907f[_0x90db('0x18')](_0x39907f['agents'][_0x4ab671['id']],_0x4ab671);}}}return _0x39907f['agents'];};};Realtime['prototype'][_0x90db('0x1b')]=function(){var _0x1c02e0=this;return function(_0x2c8ac0){if(_0x2c8ac0){freeIsNotKey(_0x2c8ac0,_0x1c02e0['intervals'],'id');for(var _0x4d1fd1=0x0,_0x3b403f={},_0x4e76da={};_0x4d1fd1<_0x2c8ac0['length'];_0x4d1fd1+=0x1){_0x3b403f=_0x2c8ac0[_0x4d1fd1];if(_[_0x90db('0x1a')](_0x1c02e0[_0x90db('0xc')][_0x3b403f['id']])){_0x1c02e0[_0x90db('0xc')][_0x3b403f['id']]=new Interval(_0x3b403f);}else{_0x1c02e0[_0x90db('0x18')](_0x1c02e0['intervals'][_0x3b403f['id']],_0x3b403f);}}}return _0x1c02e0[_0x90db('0xc')];};};Realtime[_0x90db('0x17')][_0x90db('0x1c')]=function(){var _0x190ec8=this;return function(_0x50c29b){if(_0x50c29b){freeIsNotKey(_0x50c29b,_0x190ec8[_0x90db('0x1d')],'id');for(var _0x22e310=0x0,_0x2b4d6f={},_0x8489f3={};_0x22e310<_0x50c29b[_0x90db('0x19')];_0x22e310+=0x1){_0x2b4d6f=_0x50c29b[_0x22e310];if(_[_0x90db('0x1a')](_0x190ec8['openchannelQueues'][_0x2b4d6f['id']])){_0x190ec8[_0x90db('0x1d')][_0x2b4d6f['id']]=new OpenchannelQueue(_0x2b4d6f);}else{_0x190ec8[_0x90db('0x18')](_0x190ec8[_0x90db('0x1d')][_0x2b4d6f['id']],_0x2b4d6f);}_0x190ec8[_0x90db('0x1d')][_0x2b4d6f['id']]['updateRouting']();_0x190ec8['openchannelQueues'][_0x2b4d6f['id']]['updateRealtime']();}}return _0x190ec8['openchannelQueues'];};};Realtime[_0x90db('0x17')][_0x90db('0x1e')]=function(){var _0x1df5c8=this;return function(_0x143a86){if(_0x143a86){freeIsNotKey(_0x143a86,_0x1df5c8[_0x90db('0xd')],'id');for(var _0x130777=0x0,_0x5872fd={},_0x537ad6={};_0x130777<_0x143a86[_0x90db('0x19')];_0x130777+=0x1){_0x5872fd=_0x143a86[_0x130777];if(_[_0x90db('0x1a')](_0x1df5c8[_0x90db('0xd')][_0x5872fd['id']])){_0x1df5c8['chatQueues'][_0x5872fd['id']]=new ChatQueue(_0x5872fd);}else{_0x1df5c8['mergeFromDatabase'](_0x1df5c8['chatQueues'][_0x5872fd['id']],_0x5872fd);}_0x1df5c8[_0x90db('0xd')][_0x5872fd['id']][_0x90db('0x1f')]();_0x1df5c8['chatQueues'][_0x5872fd['id']][_0x90db('0x20')]();}}return _0x1df5c8[_0x90db('0xd')];};};Realtime[_0x90db('0x17')]['initSmsQueues']=function(){var _0x40a14c=this;return function(_0x1b0d19){if(_0x1b0d19){freeIsNotKey(_0x1b0d19,_0x40a14c[_0x90db('0xe')],'id');for(var _0x4cbb2b=0x0,_0x225c28={},_0x218107={};_0x4cbb2b<_0x1b0d19[_0x90db('0x19')];_0x4cbb2b+=0x1){_0x225c28=_0x1b0d19[_0x4cbb2b];if(_['isUndefined'](_0x40a14c['smsQueues'][_0x225c28['id']])){_0x40a14c[_0x90db('0xe')][_0x225c28['id']]=new SmsQueue(_0x225c28);}else{_0x40a14c['mergeFromDatabase'](_0x40a14c[_0x90db('0xe')][_0x225c28['id']],_0x225c28);}_0x40a14c[_0x90db('0xe')][_0x225c28['id']][_0x90db('0x1f')]();_0x40a14c[_0x90db('0xe')][_0x225c28['id']][_0x90db('0x20')]();}}return _0x40a14c[_0x90db('0xe')];};};Realtime['prototype'][_0x90db('0x21')]=function(){var _0x7ddbc1=this;return function(_0x2894e9){if(_0x2894e9){freeIsNotKey(_0x2894e9,_0x7ddbc1[_0x90db('0xf')],'id');for(var _0x433478=0x0,_0x819066={},_0x47b0d9={};_0x433478<_0x2894e9['length'];_0x433478+=0x1){_0x819066=_0x2894e9[_0x433478];if(_['isUndefined'](_0x7ddbc1[_0x90db('0xf')][_0x819066['id']])){_0x7ddbc1[_0x90db('0xf')][_0x819066['id']]=new MailQueue(_0x819066);}else{_0x7ddbc1[_0x90db('0x18')](_0x7ddbc1['mailQueues'][_0x819066['id']],_0x819066);}_0x7ddbc1[_0x90db('0xf')][_0x819066['id']]['updateRouting']();_0x7ddbc1[_0x90db('0xf')][_0x819066['id']]['updateRealtime']();}}return _0x7ddbc1[_0x90db('0xf')];};};Realtime['prototype']['initFaxQueues']=function(){var _0x2813a1=this;return function(_0x3eb130){if(_0x3eb130){freeIsNotKey(_0x3eb130,_0x2813a1['faxQueues'],'id');for(var _0x337402=0x0,_0x3c7287={},_0xa61792={};_0x337402<_0x3eb130['length'];_0x337402+=0x1){_0x3c7287=_0x3eb130[_0x337402];if(_[_0x90db('0x1a')](_0x2813a1[_0x90db('0x10')][_0x3c7287['id']])){_0x2813a1[_0x90db('0x10')][_0x3c7287['id']]=new FaxQueue(_0x3c7287);}else{_0x2813a1['mergeFromDatabase'](_0x2813a1['faxQueues'][_0x3c7287['id']],_0x3c7287);}_0x2813a1[_0x90db('0x10')][_0x3c7287['id']]['updateRouting']();_0x2813a1[_0x90db('0x10')][_0x3c7287['id']][_0x90db('0x20')]();}}return _0x2813a1[_0x90db('0x10')];};};module['exports']=Realtime;