e27f4d5bbd59c27921d2b7f9d8fb53331108d666
[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 _0xa09c=['error','[%s][AGENT]\x20%s','map','message','join','stop','find','agents','timeout','createQueue','atimeout','channel','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','complete','next','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','stack','lodash','seq-queue','../../../../config/logger','routing','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','consequence','validate','length'];(function(_0x7a0d87,_0x2e4870){var _0x133a94=function(_0x2b68cf){while(--_0x2b68cf){_0x7a0d87['push'](_0x7a0d87['shift']());}};_0x133a94(++_0x2e4870);}(_0xa09c,0xd5));var _0xca09=function(_0xc6be3a,_0x540e05){_0xc6be3a=_0xc6be3a-0x0;var _0x56a310=_0xa09c[_0xc6be3a];return _0x56a310;};'use strict';var schema=require('validate');var _=require(_0xca09('0x0'));var util=require('util');var seqqueue=require(_0xca09('0x1'));var logger=require(_0xca09('0x2'))(_0xca09('0x3'));var strategy=require(_0xca09('0x4'));var queue=schema({'name':{'type':'string','required':!![],'message':_0xca09('0x5')},'timeout':{'type':_0xca09('0x6'),'message':_0xca09('0x7')}});function writeLog(_0xe511b1,_0x2abf2a,_0x558ea5){return logger[_0xca09('0x8')](util[_0xca09('0x9')](_0xca09('0xa'),_0xe511b1,_0x2abf2a['name'],_0x558ea5));}function handleFindAgent(_0x40cd5f){return function(_0x3b2b03){return _0x3b2b03[_0xca09('0xb')]['toLowerCase']()===_0x40cd5f['toLowerCase']();};}exports[_0xca09('0xc')]=function(_0x365914,_0x26be94,_0x366667,_0x5cec9f){return function(_0x1d04ec){try{var _0x419dd2={'name':_0x26be94[0x0],'timeout':_0x26be94[0x1]};var _0x5a1d43=queue[_0xca09('0xd')](_0x419dd2,{'typecast':!![]});if(_0x5a1d43[_0xca09('0xe')]){logger[_0xca09('0xf')](_0xca09('0x10'),_0x365914,_[_0xca09('0x11')](_0x5a1d43,_0xca09('0x12'))[_0xca09('0x13')](',\x20'));_0x1d04ec[_0xca09('0x14')]();}else{var _0x357de5=_[_0xca09('0x15')](_0x366667[_0xca09('0x16')],handleFindAgent(_0x419dd2['name']));if(_0x357de5){var _0x4a5c4d=(_0x419dd2[_0xca09('0x17')]||0xa)*0x3e8;var _0x12fb81,_0x2465e2;var _0x4cc28e=seqqueue[_0xca09('0x18')](_0x4a5c4d);_0x4cc28e['id']=_0x365914;_0x4cc28e[_0xca09('0x19')]=_0x4a5c4d;_0x4cc28e[_0xca09('0x1a')]=_0x5cec9f[_0xca09('0x1a')];writeLog(_0x365914,_0x357de5,util[_0xca09('0x9')](_0xca09('0x1b'),_0x4a5c4d));_0x366667[_0xca09('0x1c')][_0x365914]['on'](_0xca09('0x1d'),function(){logger[_0xca09('0x8')](_0xca09('0x1e'),_0x365914);clearTimeout(_0x2465e2);_0x2465e2=undefined;_0x4cc28e[_0xca09('0x1f')]();if(_0x366667[_0xca09('0x1c')][_0x365914]){delete _0x366667[_0xca09('0x1c')][_0x365914];}_0x1d04ec[_0xca09('0x14')]();});_0x366667[_0xca09('0x1c')][_0x365914]['on'](_0xca09('0x20'),function(){if(_0x366667[_0xca09('0x1c')][_0x365914]){delete _0x366667[_0xca09('0x1c')][_0x365914];}});_0x2465e2=setTimeout(function(){logger['info']('[%s][AGENT]\x20ROUTING\x20END',_0x365914);clearTimeout(_0x2465e2);_0x4cc28e['close']();_0x1d04ec[_0xca09('0x21')]();},_0x4a5c4d);strategy[_0xca09('0x22')](_0x4cc28e,_0x357de5,_0x366667,_0x5cec9f);}else{logger['error'](_0xca09('0x23'),_0x365914,_0x419dd2[_0xca09('0xb')]);_0x1d04ec[_0xca09('0x14')]();}}}catch(_0x5473af){console[_0xca09('0x24')](_0x5473af);logger['error']('[%s][QUEUE]\x20%s',_0x365914,_0x5473af[_0xca09('0x25')]);_0x1d04ec[_0xca09('0x14')]();}};};