cb2c953147136185701b9d6774d8066812b469ca
[motion2.git] / server / services / routing / server / applications / agent.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 _0x6348=['[%s][AGENT]\x20ROUTING\x20STOPPED','close','stop','[%s][AGENT]\x20ROUTING\x20END','next','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','[%s][QUEUE]\x20%s','validate','lodash','util','seq-queue','../../../../config/logger','routing','./strategy','number','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','error','[%s][AGENT]\x20%s','message','agents','createQueue','atimeout','channel','rules','end'];(function(_0x5cc5b5,_0x5541bc){var _0x2ee483=function(_0x2579a5){while(--_0x2579a5){_0x5cc5b5['push'](_0x5cc5b5['shift']());}};_0x2ee483(++_0x5541bc);}(_0x6348,0xa3));var _0x8634=function(_0x2a863f,_0x3e7a74){_0x2a863f=_0x2a863f-0x0;var _0x525dac=_0x6348[_0x2a863f];return _0x525dac;};'use strict';var schema=require(_0x8634('0x0'));var _=require(_0x8634('0x1'));var util=require(_0x8634('0x2'));var seqqueue=require(_0x8634('0x3'));var logger=require(_0x8634('0x4'))(_0x8634('0x5'));var strategy=require(_0x8634('0x6'));var queue=schema({'name':{'type':'string','required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x8634('0x7'),'message':_0x8634('0x8')}});function writeLog(_0x35039f,_0x33a593,_0x4df3da){return logger[_0x8634('0x9')](util[_0x8634('0xa')](_0x8634('0xb'),_0x35039f,_0x33a593[_0x8634('0xc')],_0x4df3da));}function handleFindAgent(_0x4a7102){return function(_0x232fc1){return _0x232fc1[_0x8634('0xc')][_0x8634('0xd')]()===_0x4a7102['toLowerCase']();};}exports['consequence']=function(_0x289f9e,_0x4f7366,_0x324cac,_0x1b7ef0){return function(_0x4fd164){try{var _0x239556={'name':_0x4f7366[0x0],'timeout':_0x4f7366[0x1]};var _0x59bfb9=queue[_0x8634('0x0')](_0x239556,{'typecast':!![]});if(_0x59bfb9['length']){logger[_0x8634('0xe')](_0x8634('0xf'),_0x289f9e,_['map'](_0x59bfb9,_0x8634('0x10'))['join'](',\x20'));_0x4fd164['stop']();}else{var _0x407d09=_['find'](_0x324cac[_0x8634('0x11')],handleFindAgent(_0x239556[_0x8634('0xc')]));if(_0x407d09){var _0xfb321d=(_0x239556['timeout']||0xa)*0x3e8;var _0x343c47,_0x48b54b;var _0x280ce0=seqqueue[_0x8634('0x12')](_0xfb321d);_0x280ce0['id']=_0x289f9e;_0x280ce0[_0x8634('0x13')]=_0xfb321d;_0x280ce0[_0x8634('0x14')]=_0x1b7ef0[_0x8634('0x14')];writeLog(_0x289f9e,_0x407d09,util[_0x8634('0xa')]('START:%s',_0xfb321d));_0x324cac[_0x8634('0x15')][_0x289f9e]['on'](_0x8634('0x16'),function(){logger['info'](_0x8634('0x17'),_0x289f9e);clearTimeout(_0x48b54b);_0x48b54b=undefined;_0x280ce0[_0x8634('0x18')]();if(_0x324cac['rules'][_0x289f9e]){delete _0x324cac[_0x8634('0x15')][_0x289f9e];}_0x4fd164[_0x8634('0x19')]();});_0x324cac['rules'][_0x289f9e]['on']('complete',function(){if(_0x324cac[_0x8634('0x15')][_0x289f9e]){delete _0x324cac[_0x8634('0x15')][_0x289f9e];}});_0x48b54b=setTimeout(function(){logger[_0x8634('0x9')](_0x8634('0x1a'),_0x289f9e);clearTimeout(_0x48b54b);_0x280ce0[_0x8634('0x18')]();_0x4fd164[_0x8634('0x1b')]();},_0xfb321d);strategy[_0x8634('0x1c')](_0x280ce0,_0x407d09,_0x324cac,_0x1b7ef0);}else{logger['error'](_0x8634('0x1d'),_0x289f9e,_0x239556[_0x8634('0xc')]);_0x4fd164[_0x8634('0x19')]();}}}catch(_0x17b9e0){console['log'](_0x17b9e0);logger[_0x8634('0xe')](_0x8634('0x1e'),_0x289f9e,_0x17b9e0['stack']);_0x4fd164[_0x8634('0x19')]();}};};