f41045922ee6c9bc6c1593fbc3fcc908e7b401d2
[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 _0x04ce=['push','handleRun','bind','handleTimeout','timeout','handleDrained','prototype','isNil','queue','Agents','length','realtime','agents','debug','isAgentAvailable','channel','writeLog','RINGING','busy','busyQueue','name','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','STOP','TIMEOUT','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue'];(function(_0x5f0089,_0x227e2c){var _0x193892=function(_0x24051f){while(--_0x24051f){_0x5f0089['push'](_0x5f0089['shift']());}};_0x193892(++_0x227e2c);}(_0x04ce,0x1c0));var _0xe04c=function(_0x3054be,_0x1bdc8b){_0x3054be=_0x3054be-0x0;var _0x3df150=_0x04ce[_0x3054be];return _0x3df150;};'use strict';var _=require(_0xe04c('0x0'));var uuid=require(_0xe04c('0x1'));var util=require(_0xe04c('0x2'));var logger=require(_0xe04c('0x3'))(_0xe04c('0x4'));var Beepall=function(_0x2d5d8d,_0x50642a,_0xaa6ca5,_0xdd60c4){this[_0xe04c('0x5')]=uuid['v4']();this[_0xe04c('0x6')]=_0x2d5d8d;this['queue']=_0x50642a;this['realtime']=_0xaa6ca5;this[_0xe04c('0x4')]=_0xdd60c4;this[_0xe04c('0x6')][_0xe04c('0x7')](this[_0xe04c('0x8')][_0xe04c('0x9')](this),this[_0xe04c('0xa')][_0xe04c('0x9')](this));this[_0xe04c('0x6')]['on'](_0xe04c('0xb'),this['handleTimeout'][_0xe04c('0x9')](this));this[_0xe04c('0x6')]['on']('drained',this[_0xe04c('0xc')][_0xe04c('0x9')](this));};Beepall[_0xe04c('0xd')]['push']=function(){this['squeue'][_0xe04c('0x7')](this[_0xe04c('0x8')]['bind'](this),this[_0xe04c('0xa')][_0xe04c('0x9')](this));};Beepall['prototype'][_0xe04c('0xc')]=function(){this[_0xe04c('0xa')](!![]);};Beepall['prototype'][_0xe04c('0x8')]=function(){var _0x41c774=!![];if(!_[_0xe04c('0xe')](this[_0xe04c('0xf')])&&!_['isNil'](this[_0xe04c('0xf')][_0xe04c('0x10')])&&this[_0xe04c('0xf')][_0xe04c('0x10')][_0xe04c('0x11')]>0x0){for(var _0x33a754=0x0,_0x23ebc2;_0x33a754<this[_0xe04c('0xf')][_0xe04c('0x10')][_0xe04c('0x11')];_0x33a754+=0x1){_0x23ebc2=this[_0xe04c('0xf')][_0xe04c('0x10')][_0x33a754]['id'];if(_[_0xe04c('0xe')](this[_0xe04c('0x12')][_0xe04c('0x13')][_0x23ebc2])){logger[_0xe04c('0x14')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xe04c('0x6')]['id'],_0x23ebc2);}else{if(util[_0xe04c('0x15')](this['squeue']['id'],this[_0xe04c('0x12')][_0xe04c('0x13')][_0x23ebc2],this[_0xe04c('0x6')][_0xe04c('0x16')],!![])){_0x41c774=![];util[_0xe04c('0x17')](this[_0xe04c('0x6')]['id'],this[_0xe04c('0x12')][_0xe04c('0x13')][_0x23ebc2],_0xe04c('0x18'));this['realtime']['agents'][_0x23ebc2][_0xe04c('0x19')]=!![];this[_0xe04c('0x12')][_0xe04c('0x13')][_0x23ebc2][_0xe04c('0x1a')]=this[_0xe04c('0xf')][_0xe04c('0x1b')];util['saveWaitingNotification'](this['realtime'],this[_0xe04c('0x4')],this['queue'][_0xe04c('0x10')][_0x33a754],this[_0xe04c('0x6')][_0xe04c('0x16')]);util[_0xe04c('0x1c')](this[_0xe04c('0x5')],this[_0xe04c('0x6')]['id'],this['realtime'][_0xe04c('0x13')][_0x23ebc2],this[_0xe04c('0xf')],this[_0xe04c('0x4')]);}}}if(_0x41c774){logger[_0xe04c('0x14')](_0xe04c('0x1d'),this[_0xe04c('0x6')]['id']);setTimeout(this[_0xe04c('0x7')]['bind'](this),0x3e8);}}else{logger['debug'](_0xe04c('0x1e'),this[_0xe04c('0x6')]['id']);setTimeout(this['push']['bind'](this),0x3e8);}};Beepall['prototype']['handleTimeout']=function(_0xf946ea){if(!_[_0xe04c('0xe')](this[_0xe04c('0xf')])&&!_[_0xe04c('0xe')](this[_0xe04c('0xf')][_0xe04c('0x10')])){for(var _0x87959b=0x0,_0x481a82;_0x87959b<this['queue'][_0xe04c('0x10')][_0xe04c('0x11')];_0x87959b+=0x1){_0x481a82=this['queue'][_0xe04c('0x10')][_0x87959b]['id'];if(_[_0xe04c('0xe')](this['realtime']['agents'][_0x481a82])){logger['debug'](_0xe04c('0x1f'),this[_0xe04c('0x6')]['id'],_0x481a82);}else{util[_0xe04c('0x20')](this[_0xe04c('0x5')],this[_0xe04c('0x6')]['id'],this[_0xe04c('0x12')]['agents'][_0x481a82],this[_0xe04c('0xf')],this[_0xe04c('0x4')]);util[_0xe04c('0x17')](this[_0xe04c('0x6')]['id'],this[_0xe04c('0x12')]['agents'][_0x481a82],_0xf946ea?_0xe04c('0x21'):_0xe04c('0x22'));this['realtime'][_0xe04c('0x13')][_0x481a82][_0xe04c('0x19')]=![];this['realtime'][_0xe04c('0x13')][_0x481a82][_0xe04c('0x1a')]=undefined;util['removeWaitingNotification'](this[_0xe04c('0x12')],this['routing'],this[_0xe04c('0x12')][_0xe04c('0x13')][_0x481a82],this[_0xe04c('0x6')][_0xe04c('0x16')]);}}}if(!_0xf946ea){setTimeout(this[_0xe04c('0x7')]['bind'](this),0x3e8);}};function beepall(_0x37f2cb,_0xedeb4b,_0x55f8c1,_0x19b6ce){return new Beepall(_0x37f2cb,_0xedeb4b,_0x55f8c1,_0x19b6ce);}module['exports']=beepall;