970ffee1ba8ea0f33dcdf4b0c5ca29a5d5a7494f
[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 _0x9fbf=['bind','drained','handleDrained','prototype','handleCheckReject','isAgentAvailable','realtime','agents','agentId','channel','[%s][QUEUE]\x20available\x20again\x20%s','handleRun','mapAgentsId','info','[%s][QUEUE]\x20try\x20with\x20%s','isNil','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','busy','busyQueue','writeLog','RINGING','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','done','TIMEOUT','exports','lodash','../../../../../config/logger','routing','notificationId','squeue','queue','intervals','push','handleTimeout','module','timeout'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9fbf,0x1c9));var _0xf9fb=function(_0x24bbb0,_0x58c137){_0x24bbb0=_0x24bbb0-0x0;var _0x3000d7=_0x9fbf[_0x24bbb0];return _0x3000d7;};'use strict';var rr=require('rr');var _=require(_0xf9fb('0x0'));var uuid=require('uuid');var util=require('./util');var logger=require(_0xf9fb('0x1'))(_0xf9fb('0x2'));var RRMemory=function(_0x132212,_0x29cfcc,_0xb2464e,_0x5afe16){this[_0xf9fb('0x3')]=uuid['v4']();this[_0xf9fb('0x4')]=_0x132212;this[_0xf9fb('0x5')]=_0x29cfcc;this['realtime']=_0xb2464e;this[_0xf9fb('0x2')]=_0x5afe16;this[_0xf9fb('0x6')]={};this[_0xf9fb('0x4')][_0xf9fb('0x7')](this['handleRun']['bind'](this),this[_0xf9fb('0x8')]['bind'](this),this[_0xf9fb('0x9')]);this['squeue']['on'](_0xf9fb('0xa'),this[_0xf9fb('0x8')][_0xf9fb('0xb')](this));this[_0xf9fb('0x4')]['on'](_0xf9fb('0xc'),this[_0xf9fb('0xd')][_0xf9fb('0xb')](this));};RRMemory[_0xf9fb('0xe')][_0xf9fb('0x7')]=function(){this[_0xf9fb('0x4')]['push'](this['handleRun'][_0xf9fb('0xb')](this),this['handleTimeout'][_0xf9fb('0xb')](this));};RRMemory[_0xf9fb('0xe')][_0xf9fb('0xd')]=function(_0x30bebd){this[_0xf9fb('0x8')](!![]);};RRMemory['prototype'][_0xf9fb('0xf')]=function(_0x4adb98){if(util[_0xf9fb('0x10')](this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x11')][_0xf9fb('0x12')][this[_0xf9fb('0x13')]],this[_0xf9fb('0x4')][_0xf9fb('0x14')],!![])){logger['info'](_0xf9fb('0x15'),this[_0xf9fb('0x4')]['id'],this['agentId']);clearInterval(this[_0xf9fb('0x6')][this['agentId']]);_0x4adb98['done']();setTimeout(this[_0xf9fb('0x7')][_0xf9fb('0xb')](this),0x3e8);}};RRMemory['prototype'][_0xf9fb('0x16')]=function(_0x24eed3){this['agentId']=rr(this[_0xf9fb('0x5')][_0xf9fb('0x17')]);logger[_0xf9fb('0x18')](_0xf9fb('0x19'),this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x13')]);if(_[_0xf9fb('0x1a')](this[_0xf9fb('0x11')][_0xf9fb('0x12')][this[_0xf9fb('0x13')]])){logger[_0xf9fb('0x18')](_0xf9fb('0x1b'),this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x13')]);_0x24eed3['done']();setTimeout(this[_0xf9fb('0x7')][_0xf9fb('0xb')](this),0x3e8);}else{if(util[_0xf9fb('0x10')](this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x11')][_0xf9fb('0x12')][this['agentId']],this[_0xf9fb('0x4')]['channel'],!![])){this['realtime']['agents'][this[_0xf9fb('0x13')]][_0xf9fb('0x1c')]=!![];this[_0xf9fb('0x11')][_0xf9fb('0x12')][this[_0xf9fb('0x13')]][_0xf9fb('0x1d')]=this[_0xf9fb('0x5')]['name'];util['showNotification'](this[_0xf9fb('0x3')],this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x11')][_0xf9fb('0x12')][this['agentId']],this[_0xf9fb('0x5')],this[_0xf9fb('0x2')]);util[_0xf9fb('0x1e')](this['squeue']['id'],this['realtime'][_0xf9fb('0x12')][this[_0xf9fb('0x13')]],_0xf9fb('0x1f'));this[_0xf9fb('0x6')][this[_0xf9fb('0x13')]]=setInterval(this[_0xf9fb('0xf')][_0xf9fb('0xb')](this,_0x24eed3),0x3e8);}else{logger[_0xf9fb('0x18')](_0xf9fb('0x20'),this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x13')]);_0x24eed3[_0xf9fb('0x21')]();setTimeout(this['push'][_0xf9fb('0xb')](this),0x3e8);}}};RRMemory[_0xf9fb('0xe')][_0xf9fb('0x8')]=function(_0x51a2a8){logger['info']('[%s][QUEUE]\x20timeout\x20with\x20%s',this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x13')]);if(_[_0xf9fb('0x1a')](this[_0xf9fb('0x11')][_0xf9fb('0x12')][this[_0xf9fb('0x13')]])){logger[_0xf9fb('0x18')](_0xf9fb('0x1b'),this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x13')]);}else{clearInterval(this[_0xf9fb('0x6')][this[_0xf9fb('0x13')]]);util['hideNotification'](this[_0xf9fb('0x3')],this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x11')][_0xf9fb('0x12')][this[_0xf9fb('0x13')]],this[_0xf9fb('0x5')],this[_0xf9fb('0x2')]);util[_0xf9fb('0x1e')](this[_0xf9fb('0x4')]['id'],this[_0xf9fb('0x11')][_0xf9fb('0x12')][this[_0xf9fb('0x13')]],_0xf9fb('0x22'));this[_0xf9fb('0x11')]['agents'][this[_0xf9fb('0x13')]][_0xf9fb('0x1c')]=![];this[_0xf9fb('0x11')]['agents'][this[_0xf9fb('0x13')]]['busyQueue']=undefined;}if(!_0x51a2a8){setTimeout(this[_0xf9fb('0x7')][_0xf9fb('0xb')](this),0x3e8);}};function rrmemory(_0x3b835f,_0x49e6b4,_0x3c7d35,_0x409340){return new RRMemory(_0x3b835f,_0x49e6b4,_0x3c7d35,_0x409340);}module[_0xf9fb('0x23')]=rrmemory;