cfbf8ff047b6c46502de71116a588e7ada75d4c9
[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 _0x7258=['atimeout','channel','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','next','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','error','[%s][QUEUE]\x20%s','stack','validate','lodash','util','../../../../config/logger','routing','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','length','map','message','join','stop','find','agents','timeout','createQueue'];(function(_0x4bd64d,_0x3c2b8a){var _0x37db2d=function(_0x5ca98f){while(--_0x5ca98f){_0x4bd64d['push'](_0x4bd64d['shift']());}};_0x37db2d(++_0x3c2b8a);}(_0x7258,0x1ed));var _0x8725=function(_0x5441d8,_0x1b8da8){_0x5441d8=_0x5441d8-0x0;var _0x18ea79=_0x7258[_0x5441d8];return _0x18ea79;};'use strict';var schema=require(_0x8725('0x0'));var _=require(_0x8725('0x1'));var util=require(_0x8725('0x2'));var seqqueue=require('seq-queue');var logger=require(_0x8725('0x3'))(_0x8725('0x4'));var strategy=require(_0x8725('0x5'));var queue=schema({'name':{'type':_0x8725('0x6'),'required':!![],'message':_0x8725('0x7')},'timeout':{'type':_0x8725('0x8'),'message':_0x8725('0x9')}});function writeLog(_0x3d0e76,_0xb9b1bf,_0x2f9e41){return logger[_0x8725('0xa')](util[_0x8725('0xb')](_0x8725('0xc'),_0x3d0e76,_0xb9b1bf[_0x8725('0xd')],_0x2f9e41));}function handleFindAgent(_0x3df3cd){return function(_0x1e0c95){return _0x1e0c95[_0x8725('0xd')][_0x8725('0xe')]()===_0x3df3cd[_0x8725('0xe')]();};}exports[_0x8725('0xf')]=function(_0x401e95,_0x3ac6eb,_0x3c22be,_0x5aef41){return function(_0x3ac01e){try{var _0x2bb5fa={'name':_0x3ac6eb[0x0],'timeout':_0x3ac6eb[0x1]};var _0x116f86=queue['validate'](_0x2bb5fa,{'typecast':!![]});if(_0x116f86[_0x8725('0x10')]){logger['error']('[%s][AGENT]\x20%s',_0x401e95,_[_0x8725('0x11')](_0x116f86,_0x8725('0x12'))[_0x8725('0x13')](',\x20'));_0x3ac01e[_0x8725('0x14')]();}else{var _0x5d8b66=_[_0x8725('0x15')](_0x3c22be[_0x8725('0x16')],handleFindAgent(_0x2bb5fa[_0x8725('0xd')]));if(_0x5d8b66){var _0x20f4be=(_0x2bb5fa[_0x8725('0x17')]||0xa)*0x3e8;var _0xebef92,_0x4ab8df;var _0x493934=seqqueue[_0x8725('0x18')](_0x20f4be);_0x493934['id']=_0x401e95;_0x493934[_0x8725('0x19')]=_0x20f4be;_0x493934[_0x8725('0x1a')]=_0x5aef41[_0x8725('0x1a')];writeLog(_0x401e95,_0x5d8b66,util[_0x8725('0xb')]('START:%s',_0x20f4be));_0x3c22be[_0x8725('0x1b')][_0x401e95]['on'](_0x8725('0x1c'),function(){logger[_0x8725('0xa')](_0x8725('0x1d'),_0x401e95);clearTimeout(_0x4ab8df);_0x4ab8df=undefined;_0x493934[_0x8725('0x1e')]();if(_0x3c22be['rules'][_0x401e95]){delete _0x3c22be[_0x8725('0x1b')][_0x401e95];}_0x3ac01e[_0x8725('0x14')]();});_0x3c22be[_0x8725('0x1b')][_0x401e95]['on']('complete',function(){if(_0x3c22be[_0x8725('0x1b')][_0x401e95]){delete _0x3c22be[_0x8725('0x1b')][_0x401e95];}});_0x4ab8df=setTimeout(function(){logger[_0x8725('0xa')]('[%s][AGENT]\x20ROUTING\x20END',_0x401e95);clearTimeout(_0x4ab8df);_0x493934[_0x8725('0x1e')]();_0x3ac01e[_0x8725('0x1f')]();},_0x20f4be);strategy['agent'](_0x493934,_0x5d8b66,_0x3c22be,_0x5aef41);}else{logger['error'](_0x8725('0x20'),_0x401e95,_0x2bb5fa[_0x8725('0xd')]);_0x3ac01e[_0x8725('0x14')]();}}}catch(_0x3b5831){console[_0x8725('0x21')](_0x3b5831);logger[_0x8725('0x22')](_0x8725('0x23'),_0x401e95,_0x3b5831[_0x8725('0x24')]);_0x3ac01e[_0x8725('0x14')]();}};};