e9dc70c9cef96cd838a167ba4e19380a391d81ba
[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 _0x7271=['stop','complete','[%s][AGENT]\x20ROUTING\x20END','next','agent','log','[%s][QUEUE]\x20%s','stack','validate','lodash','util','../../../../config/logger','routing','./strategy','string','timeout\x20is\x20a\x20number','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','error','map','message','find','agents','createQueue','atimeout','channel','format','START:%s','rules','end','info','[%s][AGENT]\x20ROUTING\x20STOPPED','close'];(function(_0x1e3671,_0x9ae4fc){var _0x48d5f5=function(_0xfab713){while(--_0xfab713){_0x1e3671['push'](_0x1e3671['shift']());}};_0x48d5f5(++_0x9ae4fc);}(_0x7271,0xd4));var _0x1727=function(_0x53709a,_0x494b89){_0x53709a=_0x53709a-0x0;var _0x237b8e=_0x7271[_0x53709a];return _0x237b8e;};'use strict';var schema=require(_0x1727('0x0'));var _=require(_0x1727('0x1'));var util=require(_0x1727('0x2'));var seqqueue=require('seq-queue');var logger=require(_0x1727('0x3'))(_0x1727('0x4'));var strategy=require(_0x1727('0x5'));var queue=schema({'name':{'type':_0x1727('0x6'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':'number','message':_0x1727('0x7')}});function writeLog(_0x3f1a20,_0xde6976,_0x23987d){return logger['info'](util['format'](_0x1727('0x8'),_0x3f1a20,_0xde6976[_0x1727('0x9')],_0x23987d));}function handleFindAgent(_0x269a39){return function(_0x36d1e6){return _0x36d1e6['name'][_0x1727('0xa')]()===_0x269a39[_0x1727('0xa')]();};}exports['consequence']=function(_0x890a6,_0x329d88,_0xb9a55a,_0x441266){return function(_0x5948e5){try{var _0x190cee={'name':_0x329d88[0x0],'timeout':_0x329d88[0x1]};var _0x1a87d0=queue['validate'](_0x190cee,{'typecast':!![]});if(_0x1a87d0['length']){logger[_0x1727('0xb')]('[%s][AGENT]\x20%s',_0x890a6,_[_0x1727('0xc')](_0x1a87d0,_0x1727('0xd'))['join'](',\x20'));_0x5948e5['stop']();}else{var _0x4ea654=_[_0x1727('0xe')](_0xb9a55a[_0x1727('0xf')],handleFindAgent(_0x190cee[_0x1727('0x9')]));if(_0x4ea654){var _0x2b9b19=(_0x190cee['timeout']||0xa)*0x3e8;var _0x21fa16,_0x123792;var _0x38b787=seqqueue[_0x1727('0x10')](_0x2b9b19);_0x38b787['id']=_0x890a6;_0x38b787[_0x1727('0x11')]=_0x2b9b19;_0x38b787[_0x1727('0x12')]=_0x441266[_0x1727('0x12')];writeLog(_0x890a6,_0x4ea654,util[_0x1727('0x13')](_0x1727('0x14'),_0x2b9b19));_0xb9a55a[_0x1727('0x15')][_0x890a6]['on'](_0x1727('0x16'),function(){logger[_0x1727('0x17')](_0x1727('0x18'),_0x890a6);clearTimeout(_0x123792);_0x123792=undefined;_0x38b787[_0x1727('0x19')]();if(_0xb9a55a[_0x1727('0x15')][_0x890a6]){delete _0xb9a55a['rules'][_0x890a6];}_0x5948e5[_0x1727('0x1a')]();});_0xb9a55a[_0x1727('0x15')][_0x890a6]['on'](_0x1727('0x1b'),function(){if(_0xb9a55a[_0x1727('0x15')][_0x890a6]){delete _0xb9a55a[_0x1727('0x15')][_0x890a6];}});_0x123792=setTimeout(function(){logger['info'](_0x1727('0x1c'),_0x890a6);clearTimeout(_0x123792);_0x38b787['close']();_0x5948e5[_0x1727('0x1d')]();},_0x2b9b19);strategy[_0x1727('0x1e')](_0x38b787,_0x4ea654,_0xb9a55a,_0x441266);}else{logger[_0x1727('0xb')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x890a6,_0x190cee[_0x1727('0x9')]);_0x5948e5[_0x1727('0x1a')]();}}}catch(_0x288f1b){console[_0x1727('0x1f')](_0x288f1b);logger[_0x1727('0xb')](_0x1727('0x20'),_0x890a6,_0x288f1b[_0x1727('0x21')]);_0x5948e5[_0x1727('0x1a')]();}};};