Built motion from commit 9d0783e6.|2.6.13
[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 _0x8646=['name','toLowerCase','error','[%s][AGENT]\x20%s','join','stop','agents','timeout','atimeout','channel','rules','close','[%s][AGENT]\x20ROUTING\x20END','next','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','[%s][QUEUE]\x20%s','validate','lodash','../../../../config/logger','routing','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]'];(function(_0x2e9187,_0x3763f6){var _0x1fc3a8=function(_0xb30d96){while(--_0xb30d96){_0x2e9187['push'](_0x2e9187['shift']());}};_0x1fc3a8(++_0x3763f6);}(_0x8646,0x65));var _0x6864=function(_0x4538a4,_0x394e7d){_0x4538a4=_0x4538a4-0x0;var _0x3e6a90=_0x8646[_0x4538a4];return _0x3e6a90;};'use strict';var schema=require(_0x6864('0x0'));var _=require(_0x6864('0x1'));var util=require('util');var seqqueue=require('seq-queue');var logger=require(_0x6864('0x2'))(_0x6864('0x3'));var strategy=require(_0x6864('0x4'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x6864('0x5')},'timeout':{'type':_0x6864('0x6'),'message':_0x6864('0x7')}});function writeLog(_0x4821bf,_0x1b9aa1,_0x5334bf){return logger[_0x6864('0x8')](util[_0x6864('0x9')](_0x6864('0xa'),_0x4821bf,_0x1b9aa1[_0x6864('0xb')],_0x5334bf));}function handleFindAgent(_0x5bfacc){return function(_0x23ee59){return _0x23ee59['name']['toLowerCase']()===_0x5bfacc[_0x6864('0xc')]();};}exports['consequence']=function(_0x50c097,_0x4df0a7,_0x467bbe,_0x289227){return function(_0x287129){try{var _0x1f1dcf={'name':_0x4df0a7[0x0],'timeout':_0x4df0a7[0x1]};var _0x3319c0=queue[_0x6864('0x0')](_0x1f1dcf,{'typecast':!![]});if(_0x3319c0['length']){logger[_0x6864('0xd')](_0x6864('0xe'),_0x50c097,_['map'](_0x3319c0,'message')[_0x6864('0xf')](',\x20'));_0x287129[_0x6864('0x10')]();}else{var _0x45f3ee=_['find'](_0x467bbe[_0x6864('0x11')],handleFindAgent(_0x1f1dcf[_0x6864('0xb')]));if(_0x45f3ee){var _0x591deb=(_0x1f1dcf[_0x6864('0x12')]||0xa)*0x3e8;var _0x29172e,_0x3f555e;var _0x806280=seqqueue['createQueue'](_0x591deb);_0x806280['id']=_0x50c097;_0x806280[_0x6864('0x13')]=_0x591deb;_0x806280[_0x6864('0x14')]=_0x289227[_0x6864('0x14')];writeLog(_0x50c097,_0x45f3ee,util[_0x6864('0x9')]('START:%s',_0x591deb));_0x467bbe[_0x6864('0x15')][_0x50c097]['on']('end',function(){logger[_0x6864('0x8')]('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x50c097);clearTimeout(_0x3f555e);_0x3f555e=undefined;_0x806280[_0x6864('0x16')]();if(_0x467bbe[_0x6864('0x15')][_0x50c097]){delete _0x467bbe['rules'][_0x50c097];}_0x287129[_0x6864('0x10')]();});_0x467bbe['rules'][_0x50c097]['on']('complete',function(){if(_0x467bbe[_0x6864('0x15')][_0x50c097]){delete _0x467bbe[_0x6864('0x15')][_0x50c097];}});_0x3f555e=setTimeout(function(){logger[_0x6864('0x8')](_0x6864('0x17'),_0x50c097);clearTimeout(_0x3f555e);_0x806280[_0x6864('0x16')]();_0x287129[_0x6864('0x18')]();},_0x591deb);strategy[_0x6864('0x19')](_0x806280,_0x45f3ee,_0x467bbe,_0x289227);}else{logger['error'](_0x6864('0x1a'),_0x50c097,_0x1f1dcf['name']);_0x287129['stop']();}}}catch(_0x4c94b9){console['log'](_0x4c94b9);logger[_0x6864('0xd')](_0x6864('0x1b'),_0x50c097,_0x4c94b9['stack']);_0x287129[_0x6864('0x10')]();}};};