Built motion from commit 092f8824.|2.5.49
[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 _0x4536=['util','seq-queue','../../../../config/logger','routing','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','length','error','[%s][AGENT]\x20%s','map','join','find','agents','timeout','createQueue','atimeout','channel','START:%s','rules','info','stop','[%s][AGENT]\x20ROUTING\x20END','close','next','agent','stack','validate','lodash'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x4536,0x18a));var _0x6453=function(_0x41fed5,_0x209d0c){_0x41fed5=_0x41fed5-0x0;var _0x546500=_0x4536[_0x41fed5];return _0x546500;};'use strict';var schema=require(_0x6453('0x0'));var _=require(_0x6453('0x1'));var util=require(_0x6453('0x2'));var seqqueue=require(_0x6453('0x3'));var logger=require(_0x6453('0x4'))(_0x6453('0x5'));var strategy=require(_0x6453('0x6'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x6453('0x7')},'timeout':{'type':_0x6453('0x8'),'message':_0x6453('0x9')}});function writeLog(_0xc20c,_0x18b7c2,_0x266324){return logger['info'](util['format'](_0x6453('0xa'),_0xc20c,_0x18b7c2[_0x6453('0xb')],_0x266324));}function handleFindAgent(_0x7ec685){return function(_0x14b02d){return _0x14b02d[_0x6453('0xb')][_0x6453('0xc')]()===_0x7ec685[_0x6453('0xc')]();};}exports['consequence']=function(_0x4ec20a,_0x4ceeb5,_0x583c61,_0x1138cd){return function(_0x17f9ae){try{var _0x2388bf={'name':_0x4ceeb5[0x0],'timeout':_0x4ceeb5[0x1]};var _0x31b30b=queue[_0x6453('0x0')](_0x2388bf,{'typecast':!![]});if(_0x31b30b[_0x6453('0xd')]){logger[_0x6453('0xe')](_0x6453('0xf'),_0x4ec20a,_[_0x6453('0x10')](_0x31b30b,'message')[_0x6453('0x11')](',\x20'));_0x17f9ae['stop']();}else{var _0x2505d5=_[_0x6453('0x12')](_0x583c61[_0x6453('0x13')],handleFindAgent(_0x2388bf[_0x6453('0xb')]));if(_0x2505d5){var _0x544054=(_0x2388bf[_0x6453('0x14')]||0xa)*0x3e8;var _0x225fc8,_0x44c20a;var _0x566713=seqqueue[_0x6453('0x15')](_0x544054);_0x566713['id']=_0x4ec20a;_0x566713[_0x6453('0x16')]=_0x544054;_0x566713[_0x6453('0x17')]=_0x1138cd[_0x6453('0x17')];writeLog(_0x4ec20a,_0x2505d5,util['format'](_0x6453('0x18'),_0x544054));_0x583c61[_0x6453('0x19')][_0x4ec20a]['on']('end',function(){logger[_0x6453('0x1a')]('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x4ec20a);clearTimeout(_0x44c20a);_0x44c20a=undefined;_0x566713['close']();if(_0x583c61['rules'][_0x4ec20a]){delete _0x583c61[_0x6453('0x19')][_0x4ec20a];}_0x17f9ae[_0x6453('0x1b')]();});_0x583c61[_0x6453('0x19')][_0x4ec20a]['on']('complete',function(){if(_0x583c61[_0x6453('0x19')][_0x4ec20a]){delete _0x583c61['rules'][_0x4ec20a];}});_0x44c20a=setTimeout(function(){logger[_0x6453('0x1a')](_0x6453('0x1c'),_0x4ec20a);clearTimeout(_0x44c20a);_0x566713[_0x6453('0x1d')]();_0x17f9ae[_0x6453('0x1e')]();},_0x544054);strategy[_0x6453('0x1f')](_0x566713,_0x2505d5,_0x583c61,_0x1138cd);}else{logger[_0x6453('0xe')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x4ec20a,_0x2388bf[_0x6453('0xb')]);_0x17f9ae[_0x6453('0x1b')]();}}}catch(_0xa1e8db){console['log'](_0xa1e8db);logger['error']('[%s][QUEUE]\x20%s',_0x4ec20a,_0xa1e8db[_0x6453('0x20')]);_0x17f9ae['stop']();}};};