Built motion from commit 449495f6.|2.6.27
[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 _0x0e15=['../../../../config/logger','routing','./strategy','number','timeout\x20is\x20a\x20number','name','toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','map','join','stop','timeout','createQueue','atimeout','channel','format','rules','end','info','close','complete','next','[%s][AGENT]\x20agent\x20not\x20found\x20%s','[%s][QUEUE]\x20%s','stack','validate','lodash','util','seq-queue'];(function(_0x5ac0f0,_0xee4d98){var _0x4aceec=function(_0x3a9044){while(--_0x3a9044){_0x5ac0f0['push'](_0x5ac0f0['shift']());}};_0x4aceec(++_0xee4d98);}(_0x0e15,0x1bc));var _0x50e1=function(_0x31e4a8,_0x3af27e){_0x31e4a8=_0x31e4a8-0x0;var _0x1d8859=_0x0e15[_0x31e4a8];return _0x1d8859;};'use strict';var schema=require(_0x50e1('0x0'));var _=require(_0x50e1('0x1'));var util=require(_0x50e1('0x2'));var seqqueue=require(_0x50e1('0x3'));var logger=require(_0x50e1('0x4'))(_0x50e1('0x5'));var strategy=require(_0x50e1('0x6'));var queue=schema({'name':{'type':'string','required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x50e1('0x7'),'message':_0x50e1('0x8')}});function writeLog(_0x5cf18a,_0x2ba564,_0x139f85){return logger['info'](util['format']('[%s][AGENT][NAME:%s][STATUS:%s]',_0x5cf18a,_0x2ba564['name'],_0x139f85));}function handleFindAgent(_0x171aa3){return function(_0x529223){return _0x529223[_0x50e1('0x9')][_0x50e1('0xa')]()===_0x171aa3[_0x50e1('0xa')]();};}exports[_0x50e1('0xb')]=function(_0x1504c3,_0xbfbf32,_0x239feb,_0x25f1de){return function(_0x1badcf){try{var _0x3d712d={'name':_0xbfbf32[0x0],'timeout':_0xbfbf32[0x1]};var _0x198071=queue[_0x50e1('0x0')](_0x3d712d,{'typecast':!![]});if(_0x198071[_0x50e1('0xc')]){logger[_0x50e1('0xd')](_0x50e1('0xe'),_0x1504c3,_[_0x50e1('0xf')](_0x198071,'message')[_0x50e1('0x10')](',\x20'));_0x1badcf[_0x50e1('0x11')]();}else{var _0x497860=_['find'](_0x239feb['agents'],handleFindAgent(_0x3d712d['name']));if(_0x497860){var _0x4b97e9=(_0x3d712d[_0x50e1('0x12')]||0xa)*0x3e8;var _0x294ad0,_0x511d9c;var _0x3d4eeb=seqqueue[_0x50e1('0x13')](_0x4b97e9);_0x3d4eeb['id']=_0x1504c3;_0x3d4eeb[_0x50e1('0x14')]=_0x4b97e9;_0x3d4eeb[_0x50e1('0x15')]=_0x25f1de[_0x50e1('0x15')];writeLog(_0x1504c3,_0x497860,util[_0x50e1('0x16')]('START:%s',_0x4b97e9));_0x239feb[_0x50e1('0x17')][_0x1504c3]['on'](_0x50e1('0x18'),function(){logger[_0x50e1('0x19')]('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x1504c3);clearTimeout(_0x511d9c);_0x511d9c=undefined;_0x3d4eeb[_0x50e1('0x1a')]();if(_0x239feb[_0x50e1('0x17')][_0x1504c3]){delete _0x239feb[_0x50e1('0x17')][_0x1504c3];}_0x1badcf['stop']();});_0x239feb['rules'][_0x1504c3]['on'](_0x50e1('0x1b'),function(){if(_0x239feb[_0x50e1('0x17')][_0x1504c3]){delete _0x239feb['rules'][_0x1504c3];}});_0x511d9c=setTimeout(function(){logger[_0x50e1('0x19')]('[%s][AGENT]\x20ROUTING\x20END',_0x1504c3);clearTimeout(_0x511d9c);_0x3d4eeb[_0x50e1('0x1a')]();_0x1badcf[_0x50e1('0x1c')]();},_0x4b97e9);strategy['agent'](_0x3d4eeb,_0x497860,_0x239feb,_0x25f1de);}else{logger[_0x50e1('0xd')](_0x50e1('0x1d'),_0x1504c3,_0x3d712d['name']);_0x1badcf[_0x50e1('0x11')]();}}}catch(_0x22f1e0){console['log'](_0x22f1e0);logger[_0x50e1('0xd')](_0x50e1('0x1e'),_0x1504c3,_0x22f1e0[_0x50e1('0x1f')]);_0x1badcf[_0x50e1('0x11')]();}};};