4ac7579b16b44116348f90748981b46ce5a9c45f
[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 _0xb5a6=['../../../../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]','name','toLowerCase','length','error','[%s][AGENT]\x20%s','map','message','join','stop','timeout','createQueue','atimeout','channel','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','complete','[%s][AGENT]\x20ROUTING\x20END','next','validate','lodash','util','seq-queue'];(function(_0x22e9fe,_0x3d019f){var _0x47cd19=function(_0x8fd5fc){while(--_0x8fd5fc){_0x22e9fe['push'](_0x22e9fe['shift']());}};_0x47cd19(++_0x3d019f);}(_0xb5a6,0x10c));var _0x6b5a=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0xb5a6[_0x8c43de];return _0xa6591b;};'use strict';var schema=require(_0x6b5a('0x0'));var _=require(_0x6b5a('0x1'));var util=require(_0x6b5a('0x2'));var seqqueue=require(_0x6b5a('0x3'));var logger=require(_0x6b5a('0x4'))(_0x6b5a('0x5'));var strategy=require(_0x6b5a('0x6'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x6b5a('0x7')},'timeout':{'type':_0x6b5a('0x8'),'message':_0x6b5a('0x9')}});function writeLog(_0x2f6b93,_0x1b7d26,_0x28e952){return logger[_0x6b5a('0xa')](util[_0x6b5a('0xb')](_0x6b5a('0xc'),_0x2f6b93,_0x1b7d26[_0x6b5a('0xd')],_0x28e952));}function handleFindAgent(_0x11698d){return function(_0x5be17c){return _0x5be17c[_0x6b5a('0xd')][_0x6b5a('0xe')]()===_0x11698d['toLowerCase']();};}exports['consequence']=function(_0x36545f,_0x2ea17e,_0x3d5498,_0x31ccca){return function(_0x5bdacf){try{var _0x179f88={'name':_0x2ea17e[0x0],'timeout':_0x2ea17e[0x1]};var _0x59681e=queue[_0x6b5a('0x0')](_0x179f88,{'typecast':!![]});if(_0x59681e[_0x6b5a('0xf')]){logger[_0x6b5a('0x10')](_0x6b5a('0x11'),_0x36545f,_[_0x6b5a('0x12')](_0x59681e,_0x6b5a('0x13'))[_0x6b5a('0x14')](',\x20'));_0x5bdacf[_0x6b5a('0x15')]();}else{var _0x5c0df6=_['find'](_0x3d5498['agents'],handleFindAgent(_0x179f88[_0x6b5a('0xd')]));if(_0x5c0df6){var _0x31e9cd=(_0x179f88[_0x6b5a('0x16')]||0xa)*0x3e8;var _0xb577f0,_0x4f20f8;var _0x2d1fad=seqqueue[_0x6b5a('0x17')](_0x31e9cd);_0x2d1fad['id']=_0x36545f;_0x2d1fad[_0x6b5a('0x18')]=_0x31e9cd;_0x2d1fad[_0x6b5a('0x19')]=_0x31ccca[_0x6b5a('0x19')];writeLog(_0x36545f,_0x5c0df6,util[_0x6b5a('0xb')](_0x6b5a('0x1a'),_0x31e9cd));_0x3d5498[_0x6b5a('0x1b')][_0x36545f]['on'](_0x6b5a('0x1c'),function(){logger[_0x6b5a('0xa')](_0x6b5a('0x1d'),_0x36545f);clearTimeout(_0x4f20f8);_0x4f20f8=undefined;_0x2d1fad[_0x6b5a('0x1e')]();if(_0x3d5498[_0x6b5a('0x1b')][_0x36545f]){delete _0x3d5498[_0x6b5a('0x1b')][_0x36545f];}_0x5bdacf[_0x6b5a('0x15')]();});_0x3d5498[_0x6b5a('0x1b')][_0x36545f]['on'](_0x6b5a('0x1f'),function(){if(_0x3d5498[_0x6b5a('0x1b')][_0x36545f]){delete _0x3d5498[_0x6b5a('0x1b')][_0x36545f];}});_0x4f20f8=setTimeout(function(){logger['info'](_0x6b5a('0x20'),_0x36545f);clearTimeout(_0x4f20f8);_0x2d1fad[_0x6b5a('0x1e')]();_0x5bdacf[_0x6b5a('0x21')]();},_0x31e9cd);strategy['agent'](_0x2d1fad,_0x5c0df6,_0x3d5498,_0x31ccca);}else{logger[_0x6b5a('0x10')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x36545f,_0x179f88[_0x6b5a('0xd')]);_0x5bdacf['stop']();}}}catch(_0x23e80d){console['log'](_0x23e80d);logger['error']('[%s][QUEUE]\x20%s',_0x36545f,_0x23e80d['stack']);_0x5bdacf[_0x6b5a('0x15')]();}};};