9bce52cdc181536d41e339e0cd99fbe33b7867c7
[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 _0xea11=['toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','message','join','stop','find','agents','timeout','createQueue','channel','START:%s','rules','end','info','complete','[%s][AGENT]\x20ROUTING\x20END','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','stack','validate','lodash','seq-queue','../../../../config/logger','routing','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','format','[%s][AGENT][NAME:%s][STATUS:%s]','name'];(function(_0x3a0aef,_0x4815f2){var _0x837448=function(_0x2ccc78){while(--_0x2ccc78){_0x3a0aef['push'](_0x3a0aef['shift']());}};_0x837448(++_0x4815f2);}(_0xea11,0x10c));var _0x1ea1=function(_0xbfb967,_0x5bd471){_0xbfb967=_0xbfb967-0x0;var _0x121264=_0xea11[_0xbfb967];return _0x121264;};'use strict';var schema=require(_0x1ea1('0x0'));var _=require(_0x1ea1('0x1'));var util=require('util');var seqqueue=require(_0x1ea1('0x2'));var logger=require(_0x1ea1('0x3'))(_0x1ea1('0x4'));var strategy=require(_0x1ea1('0x5'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x1ea1('0x6')},'timeout':{'type':_0x1ea1('0x7'),'message':_0x1ea1('0x8')}});function writeLog(_0x4d71ab,_0x597279,_0x37bb21){return logger['info'](util[_0x1ea1('0x9')](_0x1ea1('0xa'),_0x4d71ab,_0x597279['name'],_0x37bb21));}function handleFindAgent(_0x37259d){return function(_0x11a2dc){return _0x11a2dc[_0x1ea1('0xb')][_0x1ea1('0xc')]()===_0x37259d[_0x1ea1('0xc')]();};}exports[_0x1ea1('0xd')]=function(_0x2d8e55,_0x17f9ce,_0x553b0a,_0x276149){return function(_0x32b214){try{var _0x49cbf2={'name':_0x17f9ce[0x0],'timeout':_0x17f9ce[0x1]};var _0x5d0619=queue[_0x1ea1('0x0')](_0x49cbf2,{'typecast':!![]});if(_0x5d0619[_0x1ea1('0xe')]){logger[_0x1ea1('0xf')](_0x1ea1('0x10'),_0x2d8e55,_['map'](_0x5d0619,_0x1ea1('0x11'))[_0x1ea1('0x12')](',\x20'));_0x32b214[_0x1ea1('0x13')]();}else{var _0x30a765=_[_0x1ea1('0x14')](_0x553b0a[_0x1ea1('0x15')],handleFindAgent(_0x49cbf2[_0x1ea1('0xb')]));if(_0x30a765){var _0x187839=(_0x49cbf2[_0x1ea1('0x16')]||0xa)*0x3e8;var _0x469fa6,_0x392a3d;var _0x371c52=seqqueue[_0x1ea1('0x17')](_0x187839);_0x371c52['id']=_0x2d8e55;_0x371c52['atimeout']=_0x187839;_0x371c52[_0x1ea1('0x18')]=_0x276149[_0x1ea1('0x18')];writeLog(_0x2d8e55,_0x30a765,util['format'](_0x1ea1('0x19'),_0x187839));_0x553b0a[_0x1ea1('0x1a')][_0x2d8e55]['on'](_0x1ea1('0x1b'),function(){logger[_0x1ea1('0x1c')]('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x2d8e55);clearTimeout(_0x392a3d);_0x392a3d=undefined;_0x371c52['close']();if(_0x553b0a[_0x1ea1('0x1a')][_0x2d8e55]){delete _0x553b0a[_0x1ea1('0x1a')][_0x2d8e55];}_0x32b214[_0x1ea1('0x13')]();});_0x553b0a[_0x1ea1('0x1a')][_0x2d8e55]['on'](_0x1ea1('0x1d'),function(){if(_0x553b0a['rules'][_0x2d8e55]){delete _0x553b0a[_0x1ea1('0x1a')][_0x2d8e55];}});_0x392a3d=setTimeout(function(){logger['info'](_0x1ea1('0x1e'),_0x2d8e55);clearTimeout(_0x392a3d);_0x371c52['close']();_0x32b214['next']();},_0x187839);strategy[_0x1ea1('0x1f')](_0x371c52,_0x30a765,_0x553b0a,_0x276149);}else{logger[_0x1ea1('0xf')](_0x1ea1('0x20'),_0x2d8e55,_0x49cbf2['name']);_0x32b214['stop']();}}}catch(_0x2ae3bb){console[_0x1ea1('0x21')](_0x2ae3bb);logger[_0x1ea1('0xf')]('[%s][QUEUE]\x20%s',_0x2d8e55,_0x2ae3bb[_0x1ea1('0x22')]);_0x32b214[_0x1ea1('0x13')]();}};};