72da3d6d1d3f19d1b5b25f942cfc278266e6414a
[motion-next.git] / server / services / routing / server / applications / queue.js
1 const a1210_0x490d=['contact','QueueId','../../rpc/chatQueueReport','YYYY-MM-DD\x20HH:mm:ss','[%s][END:QUEUE][NAME:%s]','length','strategy','chat','[%s][START:QUEUE][NAME:%s]','qtimeout','accepted','util','rules','info','[%s][QUEUE]\x20%s','%s_queue_waiting_interaction:%s','stop','remove','number','atimeout','QueueReport','create','join','complete','toLowerCase','../../rpc/faxQueueReport','error','WebsiteId','routing','from','InteractionId','next','lodash','moment','update\x20queue\x20report','../../../../config/logger','../../rpc/openchannelQueueReport','%sQueuesWaitingInteractions','find','../../rpc/smsQueueReport','create\x20queue\x20report','[%s][QUEUE]\x20ROUTING\x20STOPPED','../../../../rediscache','stack','interaction','end','waiting','name','close','%s:queue:%s','joinAt','queue','queue_id','[%s][STOP:QUEUE][NAME:%s]','MessageId','validate','upperFirst','channel','catch','timeout','message','log','save','body','consequence','../../rpc/whatsappQueueReport','string','format','list','update','account','pick','createQueue'];(function(_0x593193,_0x490d6a){const _0x47dbb3=function(_0x37cac3){while(--_0x37cac3){_0x593193['push'](_0x593193['shift']());}};_0x47dbb3(++_0x490d6a);}(a1210_0x490d,0xf5));const a1210_0x47db=function(_0x593193,_0x490d6a){_0x593193=_0x593193-0x0;let _0x47dbb3=a1210_0x490d[_0x593193];return _0x47dbb3;};const _0x2dfb55=a1210_0x47db;'use strict';const schema=require('validate'),_=require(_0x2dfb55('0x6')),util=require(_0x2dfb55('0x3a')),seqqueue=require('seq-queue'),moment=require(_0x2dfb55('0x7')),logger=require(_0x2dfb55('0x9'))(_0x2dfb55('0x2')),strategy=require('./strategy'),{getSocket}=require(_0x2dfb55('0x10')),io=getSocket(),attributes=['id',_0x2dfb55('0x1a'),_0x2dfb55('0x2c'),_0x2dfb55('0x19'),_0x2dfb55('0x3'),_0x2dfb55('0x18')];function emit(_0x37cac3,_0xe1efc3,_0x119f47){io['to'](_0x37cac3)['emit'](_0xe1efc3,_0x119f47);}function emitChannelQueueInteraction(_0x203d83,_0xec0e0c,_0x2f9145,_0x445f6e,_0x46a00d,_0x195683,_0x1cb60b,_0x50e60c){const _0x2ac806=_0x2dfb55,_0x469284=_['clone'](_0x2f9145);_0x469284['queue_id']=_0x50e60c,_0x469284[_0x2ac806('0x19')]=_0xec0e0c,_0x469284['account']=_0x445f6e,_0x469284['id']=_0x46a00d,_0x195683?_0x1cb60b[util['format'](_0x2ac806('0xb'),_0x203d83)][_0x46a00d]=_[_0x2ac806('0x2d')](_0x469284,attributes):delete _0x1cb60b[util[_0x2ac806('0x29')](_0x2ac806('0xb'),_0x203d83)][_0x46a00d],emit(util[_0x2ac806('0x29')](_0x2ac806('0x17'),_0x203d83,_0xec0e0c),util[_0x2ac806('0x29')](_0x2ac806('0x3e'),_0x203d83,_0x195683?_0x2ac806('0x24'):_0x2ac806('0x40')),_['pick'](_0x469284,attributes));}const rpc={'openchannelQueueReport':require(_0x2dfb55('0xa')),'mailQueueReport':require('../../rpc/mailQueueReport'),'chatQueueReport':require(_0x2dfb55('0x31')),'smsQueueReport':require(_0x2dfb55('0xd')),'faxQueueReport':require(_0x2dfb55('0x48')),'whatsappQueueReport':require(_0x2dfb55('0x27'))},queue=schema({'name':{'type':_0x2dfb55('0x28'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x2dfb55('0x41'),'message':'timeout\x20is\x20a\x20number'}});function startRouting(_0x59dbe6,_0x11e0cb,_0x3a41a3,_0x23edb0){const _0x23cb5c=_0x2dfb55;if(_0x59dbe6&&_0x11e0cb&&_0x3a41a3){_0x11e0cb[_0x23cb5c('0x14')]+=0x1;const _0x27beff={'uniqueid':_0x59dbe6,'from':_0x3a41a3[_0x23cb5c('0x25')]?_0x3a41a3['body'][_0x23cb5c('0x3')]:'','joinAt':moment()[_0x23cb5c('0x29')](_0x23cb5c('0x32')),'ContactId':_0x3a41a3[_0x23cb5c('0x2f')]?_0x3a41a3[_0x23cb5c('0x2f')]['id']:null,'ListId':_0x3a41a3[_0x23cb5c('0x2a')]?_0x3a41a3[_0x23cb5c('0x2a')]['id']:null};_0x27beff[_[_0x23cb5c('0x1e')](_0x3a41a3['channel'])+_0x23cb5c('0x30')]=_0x11e0cb['id']||null,_0x27beff[_[_0x23cb5c('0x1e')](_0x3a41a3[_0x23cb5c('0x1f')])+_0x23cb5c('0x4')]=_0x3a41a3[_0x23cb5c('0x12')]?_0x3a41a3['interaction']['id']:null,_0x27beff[_[_0x23cb5c('0x1e')](_0x3a41a3[_0x23cb5c('0x1f')])+_0x23cb5c('0x1c')]=_0x3a41a3[_0x23cb5c('0x22')]?_0x3a41a3['message']['id']:null,_0x27beff[_[_0x23cb5c('0x1e')](_0x3a41a3[_0x23cb5c('0x1f')])+(_0x3a41a3['channel']!==_0x23cb5c('0x36')?'AccountId':_0x23cb5c('0x1'))]=_0x3a41a3[_0x23cb5c('0x2c')]?_0x3a41a3[_0x23cb5c('0x2c')]['id']:null,logger[_0x23cb5c('0x3c')](util['format'](_0x23cb5c('0x37'),_0x59dbe6,_0x11e0cb[_0x23cb5c('0x15')])),emitChannelQueueInteraction(_0x3a41a3[_0x23cb5c('0x1f')],_0x11e0cb['name'],_0x27beff,_0x3a41a3['account'][_0x23cb5c('0x15')],_0x3a41a3['message']['id'],!![],_0x23edb0,_0x11e0cb['id']);if(rpc[_0x3a41a3['channel']+'QueueReport'])return rpc[_0x3a41a3[_0x23cb5c('0x1f')]+_0x23cb5c('0x43')][_0x23cb5c('0x44')](_0x27beff)[_0x23cb5c('0x20')](function(){const _0x348a7f=_0x23cb5c;logger[_0x348a7f('0x0')](_0x348a7f('0xe'));});}}function stopRouting(_0x33df32,_0x111209,_0x3cf5b9,_0x2a384d){const _0x339943=_0x2dfb55;if(_0x33df32&&_0x111209){_0x111209[_0x339943('0x14')]-=0x1;const _0x5e930d={'leaveAt':moment()[_0x339943('0x29')](_0x339943('0x32')),'acceptAt':moment()[_0x339943('0x29')](_0x339943('0x32')),'reason':_0x339943('0x39')};logger[_0x339943('0x3c')](util[_0x339943('0x29')](_0x339943('0x1b'),_0x33df32,_0x111209['name'])),emitChannelQueueInteraction(_0x3cf5b9[_0x339943('0x1f')],_0x111209[_0x339943('0x15')],_0x3cf5b9[_0x339943('0x25')],_0x3cf5b9[_0x339943('0x2c')]['name'],_0x3cf5b9[_0x339943('0x22')]['id'],![],_0x2a384d,_0x111209['id']);if(rpc[_0x3cf5b9[_0x339943('0x1f')]+_0x339943('0x43')])return rpc[_0x3cf5b9[_0x339943('0x1f')]+_0x339943('0x43')]['update'](_0x33df32,_0x5e930d)[_0x339943('0x20')](function(){const _0x1b183f=_0x339943;logger['error'](_0x1b183f('0x8'));});}}function endRouting(_0x872f9d,_0x2d09eb,_0x397759,_0x22ec44){const _0x3a2df2=_0x2dfb55;if(_0x872f9d&&_0x2d09eb){_0x2d09eb['waiting']-=0x1;const _0x51291b={'leaveAt':moment()[_0x3a2df2('0x29')]('YYYY-MM-DD\x20HH:mm:ss'),'exitAt':moment()[_0x3a2df2('0x29')](_0x3a2df2('0x32')),'reason':_0x3a2df2('0x21')};logger[_0x3a2df2('0x3c')](util[_0x3a2df2('0x29')](_0x3a2df2('0x33'),_0x872f9d,_0x2d09eb[_0x3a2df2('0x15')])),emitChannelQueueInteraction(_0x397759[_0x3a2df2('0x1f')],_0x2d09eb[_0x3a2df2('0x15')],_0x397759[_0x3a2df2('0x25')],_0x397759[_0x3a2df2('0x2c')][_0x3a2df2('0x15')],_0x397759[_0x3a2df2('0x22')]['id'],![],_0x22ec44);if(rpc[_0x397759[_0x3a2df2('0x1f')]+'QueueReport'])return rpc[_0x397759[_0x3a2df2('0x1f')]+_0x3a2df2('0x43')][_0x3a2df2('0x2b')](_0x872f9d,_0x51291b)[_0x3a2df2('0x20')](function(){const _0x217e7e=_0x3a2df2;logger[_0x217e7e('0x0')](_0x217e7e('0x8'));});}}function handleFindQueue(_0x38fd6d){return function(_0x3d4553){const _0x241aa1=a1210_0x47db;return _0x3d4553['name'][_0x241aa1('0x47')]()===_0x38fd6d[_0x241aa1('0x47')]();};}exports[_0x2dfb55('0x26')]=function(_0x176a3c,_0x2fa65a,_0x1c4cad,_0x29063e){return function(_0x8ffe3e){const _0x5d256d=a1210_0x47db;try{const _0x4fd0bd={'name':_0x2fa65a[0x0],'timeout':_0x2fa65a[0x1]},_0x2b8c13=queue[_0x5d256d('0x1d')](_0x4fd0bd,{'typecast':!![]});if(_0x2b8c13[_0x5d256d('0x34')])logger['error'](_0x5d256d('0x3d'),_0x176a3c,_['map'](_0x2b8c13,'message')[_0x5d256d('0x45')](',\x20')),_0x8ffe3e[_0x5d256d('0x3f')]();else{const _0x48e334=_[_0x5d256d('0xc')](_0x1c4cad[_0x29063e['channel']+'Queues'],handleFindQueue(_0x4fd0bd[_0x5d256d('0x15')]));if(_0x48e334){startRouting(_0x176a3c,_0x48e334,_0x29063e,_0x1c4cad);const _0x51c007=(_0x48e334[_0x5d256d('0x21')]||0xa)*0x3e8;let _0x212831=(_0x4fd0bd[_0x5d256d('0x21')]||0x14)*0x3e8,_0x5a289e;_0x51c007>_0x212831&&(_0x212831=_0x51c007);const _0x4a018b=seqqueue[_0x5d256d('0x2e')](_0x51c007);_0x4a018b['id']=_0x176a3c,_0x4a018b[_0x5d256d('0x42')]=_0x51c007,_0x4a018b[_0x5d256d('0x38')]=_0x212831,_0x4a018b[_0x5d256d('0x1f')]=_0x29063e[_0x5d256d('0x1f')],_0x1c4cad[_0x5d256d('0x3b')][_0x176a3c]['on'](_0x5d256d('0x13'),function(){const _0x3a39d1=_0x5d256d;logger[_0x3a39d1('0x3c')](_0x3a39d1('0xf'),_0x176a3c),stopRouting(_0x176a3c,_0x48e334,_0x29063e,_0x1c4cad),clearTimeout(_0x5a289e),_0x5a289e=undefined,_0x4a018b['close'](!![]),_0x1c4cad[_0x3a39d1('0x3b')][_0x176a3c]&&delete _0x1c4cad[_0x3a39d1('0x3b')][_0x176a3c],_0x8ffe3e[_0x3a39d1('0x3f')]();}),_0x1c4cad[_0x5d256d('0x3b')][_0x176a3c]['on'](_0x5d256d('0x46'),function(){const _0x5ca617=_0x5d256d;_0x1c4cad[_0x5ca617('0x3b')][_0x176a3c]&&delete _0x1c4cad['rules'][_0x176a3c];}),_0x5a289e=setTimeout(function(){const _0x5ac871=_0x5d256d;logger['info']('[%s][QUEUE]\x20APPLICATION\x20END',_0x176a3c),endRouting(_0x176a3c,_0x48e334,_0x29063e,_0x1c4cad),clearTimeout(_0x5a289e),_0x4a018b[_0x5ac871('0x16')](!![]),_0x8ffe3e[_0x5ac871('0x5')]();},_0x212831);switch(_0x48e334[_0x5d256d('0x35')]){case'rrmemory':strategy['rrmemory'](_0x4a018b,_0x48e334,_0x1c4cad,_0x29063e);break;default:strategy['beepall'](_0x4a018b,_0x48e334,_0x1c4cad,_0x29063e);}}else logger[_0x5d256d('0x0')]('[%s][QUEUE]\x20queue\x20not\x20found\x20%s',_0x176a3c,_0x4fd0bd[_0x5d256d('0x15')]),_0x8ffe3e[_0x5d256d('0x3f')]();}}catch(_0x4eb73b){console[_0x5d256d('0x23')](_0x4eb73b),logger[_0x5d256d('0x0')](_0x5d256d('0x3d'),_0x176a3c,_0x4eb73b[_0x5d256d('0x11')]),_0x8ffe3e[_0x5d256d('0x3f')]();}};};