Built motion from commit (unavailable).|2.4.18
[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 _0x560c=['initOpenchannelQueues','updateRealtime','initChatQueues','updateRouting','smsQueues','initMailQueues','initFaxQueues','faxQueues','exports','util','lodash','../model/interval','../model/openchannelQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','agents','intervals','openchannelQueues','chatQueues','mailQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','hasOwnProperty','prototype','mergeFromDatabase','initAgents','length','isUndefined','initIntervals'];(function(_0x36ed2e,_0x174f27){var _0xdda4e=function(_0x2d366f){while(--_0x2d366f){_0x36ed2e['push'](_0x36ed2e['shift']());}};_0xdda4e(++_0x174f27);}(_0x560c,0xf0));var _0xc560=function(_0x4136ee,_0x6c5917){_0x4136ee=_0x4136ee-0x0;var _0x4e6077=_0x560c[_0x4136ee];return _0x4e6077;};'use strict';var BPromise=require('bluebird');var util=require(_0xc560('0x0'));var _=require(_0xc560('0x1'));var moment=require('moment');var Agent=require('../model/agent');var Interval=require(_0xc560('0x2'));var OpenchannelQueue=require(_0xc560('0x3'));var ChatQueue=require('../model/chatQueue');var SmsQueue=require(_0xc560('0x4'));var MailQueue=require(_0xc560('0x5'));var FaxQueue=require(_0xc560('0x6'));var Realtime=function(){this[_0xc560('0x7')]={};this[_0xc560('0x8')]={};this[_0xc560('0x9')]={};this[_0xc560('0xa')]={};this['smsQueues']={};this[_0xc560('0xb')]={};this['faxQueues']={};this[_0xc560('0xc')]={};this[_0xc560('0xd')]={};this[_0xc560('0xe')]={};this[_0xc560('0xf')]={};this[_0xc560('0x10')]={};};function freeIsNotKey(_0x38877a,_0x6f4be5,_0x3cda6d){var _0x3eb174=_['mapKeys'](_0x38877a,function(_0x41d294,_0x100c0b){return _0x41d294[_0x3cda6d];});for(var _0x151372 in _0x6f4be5){if(_0x6f4be5[_0xc560('0x11')](_0x151372)){if(!_0x3eb174[_0x151372]){delete _0x6f4be5[_0x151372];}}}}Realtime[_0xc560('0x12')][_0xc560('0x13')]=function(_0x5019d0,_0x21d60a){for(var _0x153e56 in _0x21d60a){if(_0x5019d0['hasOwnProperty'](_0x153e56)){_0x5019d0[_0x153e56]=_0x21d60a[_0x153e56];}}};Realtime[_0xc560('0x12')][_0xc560('0x14')]=function(){var _0x39cb2c=this;return function(_0x4e35fa){if(_0x4e35fa){freeIsNotKey(_0x4e35fa,_0x39cb2c[_0xc560('0x7')],'id');for(var _0x354d78=0x0,_0x357d17={},_0x95f8f8={};_0x354d78<_0x4e35fa[_0xc560('0x15')];_0x354d78+=0x1){_0x357d17=_0x4e35fa[_0x354d78];if(_[_0xc560('0x16')](_0x39cb2c[_0xc560('0x7')][_0x357d17['id']])){_0x39cb2c['agents'][_0x357d17['id']]=new Agent(_0x357d17);}else{_0x39cb2c['mergeFromDatabase'](_0x39cb2c['agents'][_0x357d17['id']],_0x357d17);}}}return _0x39cb2c[_0xc560('0x7')];};};Realtime['prototype'][_0xc560('0x17')]=function(){var _0x5f2aea=this;return function(_0x12faf5){if(_0x12faf5){freeIsNotKey(_0x12faf5,_0x5f2aea[_0xc560('0x8')],'id');for(var _0x186c02=0x0,_0x324ab6={},_0x2231c7={};_0x186c02<_0x12faf5[_0xc560('0x15')];_0x186c02+=0x1){_0x324ab6=_0x12faf5[_0x186c02];if(_[_0xc560('0x16')](_0x5f2aea[_0xc560('0x8')][_0x324ab6['id']])){_0x5f2aea[_0xc560('0x8')][_0x324ab6['id']]=new Interval(_0x324ab6);}else{_0x5f2aea[_0xc560('0x13')](_0x5f2aea[_0xc560('0x8')][_0x324ab6['id']],_0x324ab6);}}}return _0x5f2aea[_0xc560('0x8')];};};Realtime['prototype'][_0xc560('0x18')]=function(){var _0x5b91f3=this;return function(_0x2ada68){if(_0x2ada68){freeIsNotKey(_0x2ada68,_0x5b91f3['openchannelQueues'],'id');for(var _0x2d6cf5=0x0,_0x5e85b5={},_0x1fafea={};_0x2d6cf5<_0x2ada68[_0xc560('0x15')];_0x2d6cf5+=0x1){_0x5e85b5=_0x2ada68[_0x2d6cf5];if(_[_0xc560('0x16')](_0x5b91f3[_0xc560('0x9')][_0x5e85b5['id']])){_0x5b91f3[_0xc560('0x9')][_0x5e85b5['id']]=new OpenchannelQueue(_0x5e85b5);}else{_0x5b91f3[_0xc560('0x13')](_0x5b91f3[_0xc560('0x9')][_0x5e85b5['id']],_0x5e85b5);}_0x5b91f3[_0xc560('0x9')][_0x5e85b5['id']]['updateRouting']();_0x5b91f3[_0xc560('0x9')][_0x5e85b5['id']][_0xc560('0x19')]();}}return _0x5b91f3[_0xc560('0x9')];};};Realtime[_0xc560('0x12')][_0xc560('0x1a')]=function(){var _0x1e6c0d=this;return function(_0x49ba67){if(_0x49ba67){freeIsNotKey(_0x49ba67,_0x1e6c0d[_0xc560('0xa')],'id');for(var _0x397192=0x0,_0x412d95={},_0x1a4599={};_0x397192<_0x49ba67[_0xc560('0x15')];_0x397192+=0x1){_0x412d95=_0x49ba67[_0x397192];if(_['isUndefined'](_0x1e6c0d[_0xc560('0xa')][_0x412d95['id']])){_0x1e6c0d[_0xc560('0xa')][_0x412d95['id']]=new ChatQueue(_0x412d95);}else{_0x1e6c0d[_0xc560('0x13')](_0x1e6c0d[_0xc560('0xa')][_0x412d95['id']],_0x412d95);}_0x1e6c0d[_0xc560('0xa')][_0x412d95['id']][_0xc560('0x1b')]();_0x1e6c0d[_0xc560('0xa')][_0x412d95['id']][_0xc560('0x19')]();}}return _0x1e6c0d[_0xc560('0xa')];};};Realtime[_0xc560('0x12')]['initSmsQueues']=function(){var _0x5bdc9f=this;return function(_0x30ab9b){if(_0x30ab9b){freeIsNotKey(_0x30ab9b,_0x5bdc9f[_0xc560('0x1c')],'id');for(var _0x481128=0x0,_0x166ad4={},_0x100e07={};_0x481128<_0x30ab9b[_0xc560('0x15')];_0x481128+=0x1){_0x166ad4=_0x30ab9b[_0x481128];if(_[_0xc560('0x16')](_0x5bdc9f['smsQueues'][_0x166ad4['id']])){_0x5bdc9f[_0xc560('0x1c')][_0x166ad4['id']]=new SmsQueue(_0x166ad4);}else{_0x5bdc9f['mergeFromDatabase'](_0x5bdc9f[_0xc560('0x1c')][_0x166ad4['id']],_0x166ad4);}_0x5bdc9f[_0xc560('0x1c')][_0x166ad4['id']][_0xc560('0x1b')]();_0x5bdc9f[_0xc560('0x1c')][_0x166ad4['id']][_0xc560('0x19')]();}}return _0x5bdc9f[_0xc560('0x1c')];};};Realtime[_0xc560('0x12')][_0xc560('0x1d')]=function(){var _0x370e3e=this;return function(_0x2238dc){if(_0x2238dc){freeIsNotKey(_0x2238dc,_0x370e3e[_0xc560('0xb')],'id');for(var _0x22814b=0x0,_0x5704fa={},_0x2a7cab={};_0x22814b<_0x2238dc['length'];_0x22814b+=0x1){_0x5704fa=_0x2238dc[_0x22814b];if(_[_0xc560('0x16')](_0x370e3e[_0xc560('0xb')][_0x5704fa['id']])){_0x370e3e[_0xc560('0xb')][_0x5704fa['id']]=new MailQueue(_0x5704fa);}else{_0x370e3e['mergeFromDatabase'](_0x370e3e[_0xc560('0xb')][_0x5704fa['id']],_0x5704fa);}_0x370e3e[_0xc560('0xb')][_0x5704fa['id']][_0xc560('0x1b')]();_0x370e3e[_0xc560('0xb')][_0x5704fa['id']][_0xc560('0x19')]();}}return _0x370e3e[_0xc560('0xb')];};};Realtime[_0xc560('0x12')][_0xc560('0x1e')]=function(){var _0x3d943c=this;return function(_0x43866b){if(_0x43866b){freeIsNotKey(_0x43866b,_0x3d943c[_0xc560('0x1f')],'id');for(var _0x36597f=0x0,_0x32c1ac={},_0x3fc2df={};_0x36597f<_0x43866b['length'];_0x36597f+=0x1){_0x32c1ac=_0x43866b[_0x36597f];if(_['isUndefined'](_0x3d943c['faxQueues'][_0x32c1ac['id']])){_0x3d943c[_0xc560('0x1f')][_0x32c1ac['id']]=new FaxQueue(_0x32c1ac);}else{_0x3d943c[_0xc560('0x13')](_0x3d943c['faxQueues'][_0x32c1ac['id']],_0x32c1ac);}_0x3d943c[_0xc560('0x1f')][_0x32c1ac['id']][_0xc560('0x1b')]();_0x3d943c[_0xc560('0x1f')][_0x32c1ac['id']][_0xc560('0x19')]();}}return _0x3d943c[_0xc560('0x1f')];};};module[_0xc560('0x20')]=Realtime;