Built motion from commit 497d3d92.|2.5.43
[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 _0x4de9=['[%s][AGENT]\x20%s','map','message','join','stop','find','createQueue','channel','START:%s','end','info','close','rules','complete','[%s][AGENT]\x20ROUTING\x20END','error','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','[%s][QUEUE]\x20%s','stack','validate','lodash','../../../../config/logger','routing','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','consequence'];(function(_0x4c70c4,_0x963969){var _0x437865=function(_0x54e323){while(--_0x54e323){_0x4c70c4['push'](_0x4c70c4['shift']());}};_0x437865(++_0x963969);}(_0x4de9,0x15e));var _0x94de=function(_0x13b330,_0x297092){_0x13b330=_0x13b330-0x0;var _0x1f666c=_0x4de9[_0x13b330];return _0x1f666c;};'use strict';var schema=require(_0x94de('0x0'));var _=require(_0x94de('0x1'));var util=require('util');var seqqueue=require('seq-queue');var logger=require(_0x94de('0x2'))(_0x94de('0x3'));var strategy=require(_0x94de('0x4'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x94de('0x5')},'timeout':{'type':'number','message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x238441,_0x5f49b6,_0x520ccd){return logger['info'](util[_0x94de('0x6')](_0x94de('0x7'),_0x238441,_0x5f49b6[_0x94de('0x8')],_0x520ccd));}function handleFindAgent(_0x205851){return function(_0x1b1bea){return _0x1b1bea[_0x94de('0x8')]['toLowerCase']()===_0x205851['toLowerCase']();};}exports[_0x94de('0x9')]=function(_0x122351,_0x20868b,_0x4b9f67,_0x12b2e0){return function(_0x2ed7d5){try{var _0x34278f={'name':_0x20868b[0x0],'timeout':_0x20868b[0x1]};var _0x51dc7c=queue[_0x94de('0x0')](_0x34278f,{'typecast':!![]});if(_0x51dc7c['length']){logger['error'](_0x94de('0xa'),_0x122351,_[_0x94de('0xb')](_0x51dc7c,_0x94de('0xc'))[_0x94de('0xd')](',\x20'));_0x2ed7d5[_0x94de('0xe')]();}else{var _0x3d30ee=_[_0x94de('0xf')](_0x4b9f67['agents'],handleFindAgent(_0x34278f[_0x94de('0x8')]));if(_0x3d30ee){var _0x258963=(_0x34278f['timeout']||0xa)*0x3e8;var _0x26134d,_0x4af7a7;var _0x1c220c=seqqueue[_0x94de('0x10')](_0x258963);_0x1c220c['id']=_0x122351;_0x1c220c['atimeout']=_0x258963;_0x1c220c[_0x94de('0x11')]=_0x12b2e0[_0x94de('0x11')];writeLog(_0x122351,_0x3d30ee,util[_0x94de('0x6')](_0x94de('0x12'),_0x258963));_0x4b9f67['rules'][_0x122351]['on'](_0x94de('0x13'),function(){logger[_0x94de('0x14')]('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x122351);clearTimeout(_0x4af7a7);_0x4af7a7=undefined;_0x1c220c[_0x94de('0x15')]();if(_0x4b9f67[_0x94de('0x16')][_0x122351]){delete _0x4b9f67[_0x94de('0x16')][_0x122351];}_0x2ed7d5[_0x94de('0xe')]();});_0x4b9f67[_0x94de('0x16')][_0x122351]['on'](_0x94de('0x17'),function(){if(_0x4b9f67[_0x94de('0x16')][_0x122351]){delete _0x4b9f67[_0x94de('0x16')][_0x122351];}});_0x4af7a7=setTimeout(function(){logger[_0x94de('0x14')](_0x94de('0x18'),_0x122351);clearTimeout(_0x4af7a7);_0x1c220c['close']();_0x2ed7d5['next']();},_0x258963);strategy['agent'](_0x1c220c,_0x3d30ee,_0x4b9f67,_0x12b2e0);}else{logger[_0x94de('0x19')](_0x94de('0x1a'),_0x122351,_0x34278f[_0x94de('0x8')]);_0x2ed7d5[_0x94de('0xe')]();}}}catch(_0x47c16a){console[_0x94de('0x1b')](_0x47c16a);logger['error'](_0x94de('0x1c'),_0x122351,_0x47c16a[_0x94de('0x1d')]);_0x2ed7d5['stop']();}};};