da6204a8e57cd832bb44034fc75626f9a777d892
[motion2.git] / server / services / routing / server / applications / strategy / beepall.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 _0x7bae=['realtime','routing','push','handleRun','bind','handleTimeout','drained','handleDrained','prototype','isNil','Agents','length','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','agents','channel','writeLog','RINGING','busy','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','hideNotification','STOP','busyQueue','exports','./util','../../../../../config/logger','notificationId','squeue','queue'];(function(_0x12fc14,_0x3a71e7){var _0x244041=function(_0xce8319){while(--_0xce8319){_0x12fc14['push'](_0x12fc14['shift']());}};_0x244041(++_0x3a71e7);}(_0x7bae,0x13b));var _0xe7ba=function(_0x55f8b4,_0x43f30d){_0x55f8b4=_0x55f8b4-0x0;var _0x2475f9=_0x7bae[_0x55f8b4];return _0x2475f9;};'use strict';var _=require('lodash');var uuid=require('uuid');var util=require(_0xe7ba('0x0'));var logger=require(_0xe7ba('0x1'))('routing');var Beepall=function(_0x3963c7,_0x4f2e91,_0x120efa,_0x10908b){this[_0xe7ba('0x2')]=uuid['v4']();this[_0xe7ba('0x3')]=_0x3963c7;this[_0xe7ba('0x4')]=_0x4f2e91;this[_0xe7ba('0x5')]=_0x120efa;this[_0xe7ba('0x6')]=_0x10908b;this[_0xe7ba('0x3')][_0xe7ba('0x7')](this[_0xe7ba('0x8')][_0xe7ba('0x9')](this),this[_0xe7ba('0xa')][_0xe7ba('0x9')](this));this[_0xe7ba('0x3')]['on']('timeout',this[_0xe7ba('0xa')][_0xe7ba('0x9')](this));this[_0xe7ba('0x3')]['on'](_0xe7ba('0xb'),this[_0xe7ba('0xc')][_0xe7ba('0x9')](this));};Beepall[_0xe7ba('0xd')][_0xe7ba('0x7')]=function(){this[_0xe7ba('0x3')]['push'](this[_0xe7ba('0x8')]['bind'](this),this[_0xe7ba('0xa')][_0xe7ba('0x9')](this));};Beepall[_0xe7ba('0xd')][_0xe7ba('0xc')]=function(_0x15d018){this[_0xe7ba('0xa')](!![]);};Beepall['prototype']['handleRun']=function(_0x2a5183){var _0x7ba72a=!![];if(!_[_0xe7ba('0xe')](this['queue'])&&!_[_0xe7ba('0xe')](this['queue']['Agents'])&&this['queue'][_0xe7ba('0xf')]['length']>0x0){for(var _0x41a773=0x0,_0x4888d9;_0x41a773<this['queue']['Agents'][_0xe7ba('0x10')];_0x41a773+=0x1){_0x4888d9=this[_0xe7ba('0x4')][_0xe7ba('0xf')][_0x41a773]['id'];if(_[_0xe7ba('0xe')](this[_0xe7ba('0x5')]['agents'][_0x4888d9])){logger[_0xe7ba('0x11')](_0xe7ba('0x12'),this[_0xe7ba('0x3')]['id'],_0x4888d9);}else{if(util[_0xe7ba('0x13')](this['squeue']['id'],this[_0xe7ba('0x5')][_0xe7ba('0x14')][_0x4888d9],this['squeue'][_0xe7ba('0x15')],!![])){_0x7ba72a=![];util[_0xe7ba('0x16')](this[_0xe7ba('0x3')]['id'],this[_0xe7ba('0x5')][_0xe7ba('0x14')][_0x4888d9],_0xe7ba('0x17'));this[_0xe7ba('0x5')][_0xe7ba('0x14')][_0x4888d9][_0xe7ba('0x18')]=!![];this[_0xe7ba('0x5')]['agents'][_0x4888d9]['busyQueue']=this['queue']['name'];util[_0xe7ba('0x19')](this['notificationId'],this['squeue']['id'],this['realtime'][_0xe7ba('0x14')][_0x4888d9],this[_0xe7ba('0x4')],this[_0xe7ba('0x6')]);}}}if(_0x7ba72a){logger[_0xe7ba('0x11')](_0xe7ba('0x1a'),this[_0xe7ba('0x3')]['id']);setTimeout(this[_0xe7ba('0x7')][_0xe7ba('0x9')](this),0x3e8);}}else{logger['info'](_0xe7ba('0x1b'),this['squeue']['id']);setTimeout(this[_0xe7ba('0x7')][_0xe7ba('0x9')](this),0x3e8);}};Beepall[_0xe7ba('0xd')]['handleTimeout']=function(_0x587c7d){if(!_[_0xe7ba('0xe')](this[_0xe7ba('0x4')])&&!_[_0xe7ba('0xe')](this[_0xe7ba('0x4')][_0xe7ba('0xf')])){for(var _0x5279dd=0x0,_0x37911d;_0x5279dd<this[_0xe7ba('0x4')]['Agents'][_0xe7ba('0x10')];_0x5279dd+=0x1){_0x37911d=this['queue']['Agents'][_0x5279dd]['id'];if(_[_0xe7ba('0xe')](this[_0xe7ba('0x5')][_0xe7ba('0x14')][_0x37911d])){logger['info'](_0xe7ba('0x12'),this['squeue']['id'],_0x37911d);}else{util[_0xe7ba('0x1c')](this[_0xe7ba('0x2')],this[_0xe7ba('0x3')]['id'],this[_0xe7ba('0x5')][_0xe7ba('0x14')][_0x37911d],this['queue'],this[_0xe7ba('0x6')]);util[_0xe7ba('0x16')](this['squeue']['id'],this[_0xe7ba('0x5')][_0xe7ba('0x14')][_0x37911d],_0x587c7d?_0xe7ba('0x1d'):'TIMEOUT');this[_0xe7ba('0x5')][_0xe7ba('0x14')][_0x37911d]['busy']=![];this[_0xe7ba('0x5')][_0xe7ba('0x14')][_0x37911d][_0xe7ba('0x1e')]=undefined;}}}if(!_0x587c7d){setTimeout(this['push'][_0xe7ba('0x9')](this),0x3e8);}};function beepall(_0x43b313,_0x575f4b,_0x330e98,_0x3182d9){return new Beepall(_0x43b313,_0x575f4b,_0x330e98,_0x3182d9);}module[_0xe7ba('0x1f')]=beepall;