Built motion from commit f7863d46.|2.5.41
[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 _0xbd0f=['routing','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','info','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','error','[%s][AGENT]\x20%s','map','message','join','stop','find','agents','createQueue','atimeout','channel','format','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','[%s][AGENT]\x20ROUTING\x20END','[%s][QUEUE]\x20%s','stack','validate','lodash','util','seq-queue','../../../../config/logger'];(function(_0xdbf5a,_0x4dabd7){var _0x3757d9=function(_0x4ea33d){while(--_0x4ea33d){_0xdbf5a['push'](_0xdbf5a['shift']());}};_0x3757d9(++_0x4dabd7);}(_0xbd0f,0x187));var _0xfbd0=function(_0x59804f,_0x1fd683){_0x59804f=_0x59804f-0x0;var _0x332c68=_0xbd0f[_0x59804f];return _0x332c68;};'use strict';var schema=require(_0xfbd0('0x0'));var _=require(_0xfbd0('0x1'));var util=require(_0xfbd0('0x2'));var seqqueue=require(_0xfbd0('0x3'));var logger=require(_0xfbd0('0x4'))(_0xfbd0('0x5'));var strategy=require('./strategy');var queue=schema({'name':{'type':_0xfbd0('0x6'),'required':!![],'message':_0xfbd0('0x7')},'timeout':{'type':'number','message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x232466,_0x4e6dd0,_0x5cfa8b){return logger[_0xfbd0('0x8')](util['format'](_0xfbd0('0x9'),_0x232466,_0x4e6dd0[_0xfbd0('0xa')],_0x5cfa8b));}function handleFindAgent(_0x466842){return function(_0xfb2b24){return _0xfb2b24[_0xfbd0('0xa')][_0xfbd0('0xb')]()===_0x466842[_0xfbd0('0xb')]();};}exports[_0xfbd0('0xc')]=function(_0x4198be,_0x12b801,_0x66a3a3,_0xbbcd8a){return function(_0x83e159){try{var _0x3a8e42={'name':_0x12b801[0x0],'timeout':_0x12b801[0x1]};var _0x35e67c=queue[_0xfbd0('0x0')](_0x3a8e42,{'typecast':!![]});if(_0x35e67c['length']){logger[_0xfbd0('0xd')](_0xfbd0('0xe'),_0x4198be,_[_0xfbd0('0xf')](_0x35e67c,_0xfbd0('0x10'))[_0xfbd0('0x11')](',\x20'));_0x83e159[_0xfbd0('0x12')]();}else{var _0x7bb4ba=_[_0xfbd0('0x13')](_0x66a3a3[_0xfbd0('0x14')],handleFindAgent(_0x3a8e42['name']));if(_0x7bb4ba){var _0x3ab531=(_0x3a8e42['timeout']||0xa)*0x3e8;var _0x86bc56,_0x100571;var _0x5b7cdb=seqqueue[_0xfbd0('0x15')](_0x3ab531);_0x5b7cdb['id']=_0x4198be;_0x5b7cdb[_0xfbd0('0x16')]=_0x3ab531;_0x5b7cdb[_0xfbd0('0x17')]=_0xbbcd8a[_0xfbd0('0x17')];writeLog(_0x4198be,_0x7bb4ba,util[_0xfbd0('0x18')](_0xfbd0('0x19'),_0x3ab531));_0x66a3a3[_0xfbd0('0x1a')][_0x4198be]['on'](_0xfbd0('0x1b'),function(){logger[_0xfbd0('0x8')](_0xfbd0('0x1c'),_0x4198be);clearTimeout(_0x100571);_0x100571=undefined;_0x5b7cdb[_0xfbd0('0x1d')]();if(_0x66a3a3[_0xfbd0('0x1a')][_0x4198be]){delete _0x66a3a3[_0xfbd0('0x1a')][_0x4198be];}_0x83e159[_0xfbd0('0x12')]();});_0x66a3a3[_0xfbd0('0x1a')][_0x4198be]['on']('complete',function(){if(_0x66a3a3[_0xfbd0('0x1a')][_0x4198be]){delete _0x66a3a3['rules'][_0x4198be];}});_0x100571=setTimeout(function(){logger[_0xfbd0('0x8')](_0xfbd0('0x1e'),_0x4198be);clearTimeout(_0x100571);_0x5b7cdb[_0xfbd0('0x1d')]();_0x83e159['next']();},_0x3ab531);strategy['agent'](_0x5b7cdb,_0x7bb4ba,_0x66a3a3,_0xbbcd8a);}else{logger[_0xfbd0('0xd')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x4198be,_0x3a8e42['name']);_0x83e159[_0xfbd0('0x12')]();}}}catch(_0x35326d){console['log'](_0x35326d);logger['error'](_0xfbd0('0x1f'),_0x4198be,_0x35326d[_0xfbd0('0x20')]);_0x83e159[_0xfbd0('0x12')]();}};};