823dd995cac8c4a4a101c49e5cf8d32882bd31d7
[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 _0x0146=['writeLog','RINGING','busy','name','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','hideNotification','STOP','TIMEOUT','busyQueue','exports','routing','notificationId','queue','handleRun','bind','squeue','timeout','handleTimeout','drained','handleDrained','prototype','push','isNil','Agents','length','realtime','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','agents','channel'];(function(_0x1d0191,_0x57dab7){var _0x1c1063=function(_0xae64e2){while(--_0xae64e2){_0x1d0191['push'](_0x1d0191['shift']());}};_0x1c1063(++_0x57dab7);}(_0x0146,0x156));var _0x6014=function(_0x2b5eae,_0x55010d){_0x2b5eae=_0x2b5eae-0x0;var _0x5f3ac9=_0x0146[_0x2b5eae];return _0x5f3ac9;};'use strict';var _=require('lodash');var uuid=require('uuid');var util=require('./util');var logger=require('../../../../../config/logger')(_0x6014('0x0'));var Beepall=function(_0x3e44aa,_0x2548c3,_0x36c857,_0x38d6b1){this[_0x6014('0x1')]=uuid['v4']();this['squeue']=_0x3e44aa;this[_0x6014('0x2')]=_0x2548c3;this['realtime']=_0x36c857;this[_0x6014('0x0')]=_0x38d6b1;this['squeue']['push'](this[_0x6014('0x3')][_0x6014('0x4')](this),this['handleTimeout'][_0x6014('0x4')](this));this[_0x6014('0x5')]['on'](_0x6014('0x6'),this[_0x6014('0x7')][_0x6014('0x4')](this));this['squeue']['on'](_0x6014('0x8'),this[_0x6014('0x9')]['bind'](this));};Beepall[_0x6014('0xa')][_0x6014('0xb')]=function(){this['squeue'][_0x6014('0xb')](this['handleRun'][_0x6014('0x4')](this),this[_0x6014('0x7')]['bind'](this));};Beepall[_0x6014('0xa')][_0x6014('0x9')]=function(_0x293a0a){this[_0x6014('0x7')](!![]);};Beepall[_0x6014('0xa')][_0x6014('0x3')]=function(_0x443398){var _0x149ee6=!![];if(!_[_0x6014('0xc')](this[_0x6014('0x2')])&&!_[_0x6014('0xc')](this[_0x6014('0x2')][_0x6014('0xd')])&&this['queue'][_0x6014('0xd')][_0x6014('0xe')]>0x0){for(var _0x457d2f=0x0,_0x4cb0aa;_0x457d2f<this[_0x6014('0x2')][_0x6014('0xd')][_0x6014('0xe')];_0x457d2f+=0x1){_0x4cb0aa=this[_0x6014('0x2')][_0x6014('0xd')][_0x457d2f]['id'];if(_[_0x6014('0xc')](this[_0x6014('0xf')]['agents'][_0x4cb0aa])){logger[_0x6014('0x10')](_0x6014('0x11'),this[_0x6014('0x5')]['id'],_0x4cb0aa);}else{if(util[_0x6014('0x12')](this['squeue']['id'],this[_0x6014('0xf')][_0x6014('0x13')][_0x4cb0aa],this[_0x6014('0x5')][_0x6014('0x14')],!![])){_0x149ee6=![];util[_0x6014('0x15')](this[_0x6014('0x5')]['id'],this[_0x6014('0xf')][_0x6014('0x13')][_0x4cb0aa],_0x6014('0x16'));this['realtime'][_0x6014('0x13')][_0x4cb0aa][_0x6014('0x17')]=!![];this[_0x6014('0xf')][_0x6014('0x13')][_0x4cb0aa]['busyQueue']=this[_0x6014('0x2')][_0x6014('0x18')];util[_0x6014('0x19')](this[_0x6014('0x1')],this[_0x6014('0x5')]['id'],this[_0x6014('0xf')]['agents'][_0x4cb0aa],this[_0x6014('0x2')],this['routing']);}}}if(_0x149ee6){logger['info'](_0x6014('0x1a'),this['squeue']['id']);setTimeout(this[_0x6014('0xb')][_0x6014('0x4')](this),0x3e8);}}else{logger['info'](_0x6014('0x1b'),this['squeue']['id']);setTimeout(this[_0x6014('0xb')][_0x6014('0x4')](this),0x3e8);}};Beepall[_0x6014('0xa')]['handleTimeout']=function(_0x38c3c7){if(!_[_0x6014('0xc')](this['queue'])&&!_[_0x6014('0xc')](this[_0x6014('0x2')][_0x6014('0xd')])){for(var _0xf89c1=0x0,_0x10afed;_0xf89c1<this['queue']['Agents']['length'];_0xf89c1+=0x1){_0x10afed=this[_0x6014('0x2')][_0x6014('0xd')][_0xf89c1]['id'];if(_[_0x6014('0xc')](this['realtime'][_0x6014('0x13')][_0x10afed])){logger['info'](_0x6014('0x11'),this[_0x6014('0x5')]['id'],_0x10afed);}else{util[_0x6014('0x1c')](this['notificationId'],this[_0x6014('0x5')]['id'],this[_0x6014('0xf')][_0x6014('0x13')][_0x10afed],this['queue'],this[_0x6014('0x0')]);util[_0x6014('0x15')](this['squeue']['id'],this[_0x6014('0xf')]['agents'][_0x10afed],_0x38c3c7?_0x6014('0x1d'):_0x6014('0x1e'));this['realtime'][_0x6014('0x13')][_0x10afed][_0x6014('0x17')]=![];this[_0x6014('0xf')][_0x6014('0x13')][_0x10afed][_0x6014('0x1f')]=undefined;}}}if(!_0x38c3c7){setTimeout(this[_0x6014('0xb')][_0x6014('0x4')](this),0x3e8);}};function beepall(_0x1221ba,_0x3f9e68,_0x1cf873,_0x435d2d){return new Beepall(_0x1221ba,_0x3f9e68,_0x1cf873,_0x435d2d);}module[_0x6014('0x20')]=beepall;