Improve login to rocket chat

This commit is contained in:
Peter Maquiran
2022-01-10 10:53:04 +01:00
parent 402e1f8a95
commit 9e11d910d4
3 changed files with 31 additions and 6 deletions
@@ -47,6 +47,7 @@ class _RocketChatClientService {
}
login(user) {
const requestId = uuidv4()
const loginRequest = {
@@ -62,7 +63,22 @@ class _RocketChatClientService {
}
this.ws.send(loginRequest, requestId)
return requestId
return new Promise((resolve, reject) => {
this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{
if(message.result.id == requestId) { // same request send
if(message.result) {
if(message.result.token) {
resolve(message)
} else {
reject(message)
}
} else {
reject(message)
}
}
}})
});
}
logout(){}
@@ -139,7 +155,7 @@ class _RocketChatClientService {
this.wsCallbacks[params.requestId] = {
type: params.type,
funx: params.funx,
options: params.options || {}
runOnces: params.runOnces
}
},
@@ -184,7 +200,12 @@ class _RocketChatClientService {
for (const [key, value] of Object.entries(this.wsCallbacks)) {
if(value.type== 'Onmessage') {
value.funx(data)
if(value.runOnces) {
delete this.wsCallbacks[value.requestId || key]
}
}
}
},