b88c7e0f5ca2681e07df2817ed26c9e715b13bfd
[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 _0x3988=['complete','[%s][AGENT]\x20ROUTING\x20END','next','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','stack','util','seq-queue','../../../../config/logger','routing','./strategy','string','number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','validate','length','error','[%s][AGENT]\x20%s','map','message','stop','timeout','atimeout','channel','START:%s','rules','[%s][AGENT]\x20ROUTING\x20STOPPED','close'];(function(_0x39fc06,_0x47d570){var _0x114117=function(_0x3793a1){while(--_0x3793a1){_0x39fc06['push'](_0x39fc06['shift']());}};_0x114117(++_0x47d570);}(_0x3988,0x139));var _0x8398=function(_0x16fe9c,_0x162e7d){_0x16fe9c=_0x16fe9c-0x0;var _0x397f63=_0x3988[_0x16fe9c];return _0x397f63;};'use strict';var schema=require('validate');var _=require('lodash');var util=require(_0x8398('0x0'));var seqqueue=require(_0x8398('0x1'));var logger=require(_0x8398('0x2'))(_0x8398('0x3'));var strategy=require(_0x8398('0x4'));var queue=schema({'name':{'type':_0x8398('0x5'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x8398('0x6'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x2ff193,_0x5d0c8f,_0x356251){return logger[_0x8398('0x7')](util[_0x8398('0x8')](_0x8398('0x9'),_0x2ff193,_0x5d0c8f[_0x8398('0xa')],_0x356251));}function handleFindAgent(_0x359759){return function(_0x3bc343){return _0x3bc343[_0x8398('0xa')][_0x8398('0xb')]()===_0x359759[_0x8398('0xb')]();};}exports[_0x8398('0xc')]=function(_0x5e6ea5,_0x5b9ac9,_0x209675,_0x578929){return function(_0x1fd1c5){try{var _0x116e8f={'name':_0x5b9ac9[0x0],'timeout':_0x5b9ac9[0x1]};var _0x12c144=queue[_0x8398('0xd')](_0x116e8f,{'typecast':!![]});if(_0x12c144[_0x8398('0xe')]){logger[_0x8398('0xf')](_0x8398('0x10'),_0x5e6ea5,_[_0x8398('0x11')](_0x12c144,_0x8398('0x12'))['join'](',\x20'));_0x1fd1c5[_0x8398('0x13')]();}else{var _0x2f7d77=_['find'](_0x209675['agents'],handleFindAgent(_0x116e8f[_0x8398('0xa')]));if(_0x2f7d77){var _0x5db7c8=(_0x116e8f[_0x8398('0x14')]||0xa)*0x3e8;var _0x4209b9,_0x1fd62a;var _0x968a28=seqqueue['createQueue'](_0x5db7c8);_0x968a28['id']=_0x5e6ea5;_0x968a28[_0x8398('0x15')]=_0x5db7c8;_0x968a28[_0x8398('0x16')]=_0x578929[_0x8398('0x16')];writeLog(_0x5e6ea5,_0x2f7d77,util[_0x8398('0x8')](_0x8398('0x17'),_0x5db7c8));_0x209675[_0x8398('0x18')][_0x5e6ea5]['on']('end',function(){logger[_0x8398('0x7')](_0x8398('0x19'),_0x5e6ea5);clearTimeout(_0x1fd62a);_0x1fd62a=undefined;_0x968a28[_0x8398('0x1a')]();if(_0x209675['rules'][_0x5e6ea5]){delete _0x209675[_0x8398('0x18')][_0x5e6ea5];}_0x1fd1c5[_0x8398('0x13')]();});_0x209675['rules'][_0x5e6ea5]['on'](_0x8398('0x1b'),function(){if(_0x209675[_0x8398('0x18')][_0x5e6ea5]){delete _0x209675[_0x8398('0x18')][_0x5e6ea5];}});_0x1fd62a=setTimeout(function(){logger[_0x8398('0x7')](_0x8398('0x1c'),_0x5e6ea5);clearTimeout(_0x1fd62a);_0x968a28['close']();_0x1fd1c5[_0x8398('0x1d')]();},_0x5db7c8);strategy[_0x8398('0x1e')](_0x968a28,_0x2f7d77,_0x209675,_0x578929);}else{logger['error'](_0x8398('0x1f'),_0x5e6ea5,_0x116e8f[_0x8398('0xa')]);_0x1fd1c5[_0x8398('0x13')]();}}}catch(_0x4608c6){console[_0x8398('0x20')](_0x4608c6);logger[_0x8398('0xf')]('[%s][QUEUE]\x20%s',_0x5e6ea5,_0x4608c6[_0x8398('0x21')]);_0x1fd1c5[_0x8398('0x13')]();}};};