df04bc21337fe101fc645064d64bb396f7c32e0c
[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 _0xf243=['channel','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','[%s][AGENT]\x20ROUTING\x20END','close','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','[%s][QUEUE]\x20%s','stack','validate','lodash','util','seq-queue','../../../../config/logger','routing','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','info','format','name','toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','map','message','join','stop','find','agents','createQueue'];(function(_0xc75c31,_0x160f4d){var _0x3e387d=function(_0x53ddbf){while(--_0x53ddbf){_0xc75c31['push'](_0xc75c31['shift']());}};_0x3e387d(++_0x160f4d);}(_0xf243,0x1d2));var _0x3f24=function(_0x44dcf0,_0x1402cd){_0x44dcf0=_0x44dcf0-0x0;var _0x206867=_0xf243[_0x44dcf0];return _0x206867;};'use strict';var schema=require(_0x3f24('0x0'));var _=require(_0x3f24('0x1'));var util=require(_0x3f24('0x2'));var seqqueue=require(_0x3f24('0x3'));var logger=require(_0x3f24('0x4'))(_0x3f24('0x5'));var strategy=require('./strategy');var queue=schema({'name':{'type':_0x3f24('0x6'),'required':!![],'message':_0x3f24('0x7')},'timeout':{'type':'number','message':_0x3f24('0x8')}});function writeLog(_0x304ef7,_0x542744,_0x35c6b2){return logger[_0x3f24('0x9')](util[_0x3f24('0xa')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x304ef7,_0x542744[_0x3f24('0xb')],_0x35c6b2));}function handleFindAgent(_0x32978f){return function(_0x29f581){return _0x29f581[_0x3f24('0xb')][_0x3f24('0xc')]()===_0x32978f[_0x3f24('0xc')]();};}exports[_0x3f24('0xd')]=function(_0x48e6dd,_0x130f6f,_0x104645,_0x316b7b){return function(_0x5d6139){try{var _0xe23aec={'name':_0x130f6f[0x0],'timeout':_0x130f6f[0x1]};var _0x35ff67=queue['validate'](_0xe23aec,{'typecast':!![]});if(_0x35ff67[_0x3f24('0xe')]){logger[_0x3f24('0xf')](_0x3f24('0x10'),_0x48e6dd,_[_0x3f24('0x11')](_0x35ff67,_0x3f24('0x12'))[_0x3f24('0x13')](',\x20'));_0x5d6139[_0x3f24('0x14')]();}else{var _0x35faeb=_[_0x3f24('0x15')](_0x104645[_0x3f24('0x16')],handleFindAgent(_0xe23aec[_0x3f24('0xb')]));if(_0x35faeb){var _0x3f95fd=(_0xe23aec['timeout']||0xa)*0x3e8;var _0x36a332,_0x261add;var _0x2373b6=seqqueue[_0x3f24('0x17')](_0x3f95fd);_0x2373b6['id']=_0x48e6dd;_0x2373b6['atimeout']=_0x3f95fd;_0x2373b6['channel']=_0x316b7b[_0x3f24('0x18')];writeLog(_0x48e6dd,_0x35faeb,util[_0x3f24('0xa')](_0x3f24('0x19'),_0x3f95fd));_0x104645[_0x3f24('0x1a')][_0x48e6dd]['on'](_0x3f24('0x1b'),function(){logger[_0x3f24('0x9')](_0x3f24('0x1c'),_0x48e6dd);clearTimeout(_0x261add);_0x261add=undefined;_0x2373b6['close']();if(_0x104645[_0x3f24('0x1a')][_0x48e6dd]){delete _0x104645[_0x3f24('0x1a')][_0x48e6dd];}_0x5d6139['stop']();});_0x104645[_0x3f24('0x1a')][_0x48e6dd]['on']('complete',function(){if(_0x104645[_0x3f24('0x1a')][_0x48e6dd]){delete _0x104645[_0x3f24('0x1a')][_0x48e6dd];}});_0x261add=setTimeout(function(){logger['info'](_0x3f24('0x1d'),_0x48e6dd);clearTimeout(_0x261add);_0x2373b6[_0x3f24('0x1e')]();_0x5d6139['next']();},_0x3f95fd);strategy['agent'](_0x2373b6,_0x35faeb,_0x104645,_0x316b7b);}else{logger['error'](_0x3f24('0x1f'),_0x48e6dd,_0xe23aec[_0x3f24('0xb')]);_0x5d6139[_0x3f24('0x14')]();}}}catch(_0x2fad10){console[_0x3f24('0x20')](_0x2fad10);logger[_0x3f24('0xf')](_0x3f24('0x21'),_0x48e6dd,_0x2fad10[_0x3f24('0x22')]);_0x5d6139['stop']();}};};