Built motion from commit (unavailable).|2.5.25
[motion2.git] / server / services / routing / server / applications / strategy / rrmemory.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 _0xa0c7=['routing','notificationId','queue','intervals','squeue','push','handleRun','bind','module','timeout','handleTimeout','drained','handleDrained','prototype','handleCheckReject','isAgentAvailable','realtime','agents','channel','info','[%s][QUEUE]\x20available\x20again\x20%s','agentId','done','[%s][QUEUE]\x20try\x20with\x20%s','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','busyQueue','showNotification','writeLog','RINGING','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','isNil','TIMEOUT','busy','exports','lodash','uuid','./util','../../../../../config/logger'];(function(_0x4d0c85,_0xcf9ada){var _0x22aa66=function(_0x3e7b19){while(--_0x3e7b19){_0x4d0c85['push'](_0x4d0c85['shift']());}};_0x22aa66(++_0xcf9ada);}(_0xa0c7,0x71));var _0x7a0c=function(_0x40fc25,_0x4436b8){_0x40fc25=_0x40fc25-0x0;var _0x1d5bd7=_0xa0c7[_0x40fc25];return _0x1d5bd7;};'use strict';var rr=require('rr');var _=require(_0x7a0c('0x0'));var uuid=require(_0x7a0c('0x1'));var util=require(_0x7a0c('0x2'));var logger=require(_0x7a0c('0x3'))(_0x7a0c('0x4'));var RRMemory=function(_0x1f59ec,_0x3774b3,_0x4460c4,_0x24523c){this[_0x7a0c('0x5')]=uuid['v4']();this['squeue']=_0x1f59ec;this[_0x7a0c('0x6')]=_0x3774b3;this['realtime']=_0x4460c4;this['routing']=_0x24523c;this[_0x7a0c('0x7')]={};this[_0x7a0c('0x8')][_0x7a0c('0x9')](this[_0x7a0c('0xa')][_0x7a0c('0xb')](this),this['handleTimeout'][_0x7a0c('0xb')](this),this[_0x7a0c('0xc')]);this[_0x7a0c('0x8')]['on'](_0x7a0c('0xd'),this[_0x7a0c('0xe')][_0x7a0c('0xb')](this));this[_0x7a0c('0x8')]['on'](_0x7a0c('0xf'),this[_0x7a0c('0x10')][_0x7a0c('0xb')](this));};RRMemory[_0x7a0c('0x11')]['push']=function(){this[_0x7a0c('0x8')]['push'](this[_0x7a0c('0xa')]['bind'](this),this[_0x7a0c('0xe')][_0x7a0c('0xb')](this));};RRMemory[_0x7a0c('0x11')][_0x7a0c('0x10')]=function(_0x31cc58){this[_0x7a0c('0xe')](!![]);};RRMemory['prototype'][_0x7a0c('0x12')]=function(_0x148a02){if(util[_0x7a0c('0x13')](this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x14')][_0x7a0c('0x15')][this['agentId']],this['squeue'][_0x7a0c('0x16')],!![])){logger[_0x7a0c('0x17')](_0x7a0c('0x18'),this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x19')]);clearInterval(this[_0x7a0c('0x7')][this[_0x7a0c('0x19')]]);_0x148a02[_0x7a0c('0x1a')]();setTimeout(this[_0x7a0c('0x9')][_0x7a0c('0xb')](this),0x3e8);}};RRMemory[_0x7a0c('0x11')][_0x7a0c('0xa')]=function(_0x25685f){this[_0x7a0c('0x19')]=rr(this['queue']['mapAgentsId']);logger[_0x7a0c('0x17')](_0x7a0c('0x1b'),this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x19')]);if(_['isNil'](this['realtime'][_0x7a0c('0x15')][this[_0x7a0c('0x19')]])){logger[_0x7a0c('0x17')](_0x7a0c('0x1c'),this['squeue']['id'],this[_0x7a0c('0x19')]);_0x25685f['done']();setTimeout(this[_0x7a0c('0x9')][_0x7a0c('0xb')](this),0x3e8);}else{if(util[_0x7a0c('0x13')](this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x14')]['agents'][this[_0x7a0c('0x19')]],this[_0x7a0c('0x8')][_0x7a0c('0x16')],!![])){this[_0x7a0c('0x14')][_0x7a0c('0x15')][this['agentId']]['busy']=!![];this['realtime'][_0x7a0c('0x15')][this[_0x7a0c('0x19')]][_0x7a0c('0x1d')]=this[_0x7a0c('0x6')]['name'];util[_0x7a0c('0x1e')](this['notificationId'],this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x14')]['agents'][this[_0x7a0c('0x19')]],this[_0x7a0c('0x6')],this[_0x7a0c('0x4')]);util[_0x7a0c('0x1f')](this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x14')]['agents'][this[_0x7a0c('0x19')]],_0x7a0c('0x20'));this[_0x7a0c('0x7')][this[_0x7a0c('0x19')]]=setInterval(this[_0x7a0c('0x12')][_0x7a0c('0xb')](this,_0x25685f),0x3e8);}else{logger[_0x7a0c('0x17')](_0x7a0c('0x21'),this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x19')]);_0x25685f[_0x7a0c('0x1a')]();setTimeout(this['push']['bind'](this),0x3e8);}}};RRMemory['prototype'][_0x7a0c('0xe')]=function(_0x205725){logger[_0x7a0c('0x17')](_0x7a0c('0x22'),this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x19')]);if(_[_0x7a0c('0x23')](this[_0x7a0c('0x14')][_0x7a0c('0x15')][this[_0x7a0c('0x19')]])){logger[_0x7a0c('0x17')](_0x7a0c('0x1c'),this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x19')]);}else{clearInterval(this['intervals'][this[_0x7a0c('0x19')]]);util['hideNotification'](this['notificationId'],this[_0x7a0c('0x8')]['id'],this[_0x7a0c('0x14')]['agents'][this[_0x7a0c('0x19')]],this['queue'],this[_0x7a0c('0x4')]);util['writeLog'](this[_0x7a0c('0x8')]['id'],this['realtime']['agents'][this[_0x7a0c('0x19')]],_0x7a0c('0x24'));this[_0x7a0c('0x14')][_0x7a0c('0x15')][this[_0x7a0c('0x19')]][_0x7a0c('0x25')]=![];this[_0x7a0c('0x14')][_0x7a0c('0x15')][this[_0x7a0c('0x19')]][_0x7a0c('0x1d')]=undefined;}if(!_0x205725){setTimeout(this[_0x7a0c('0x9')][_0x7a0c('0xb')](this),0x3e8);}};function rrmemory(_0x320cc8,_0x315685,_0x2d3b90,_0xa12343){return new RRMemory(_0x320cc8,_0x315685,_0x2d3b90,_0xa12343);}module[_0x7a0c('0x26')]=rrmemory;