mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 21:06:06 +00:00
Improve login to rocket chat
This commit is contained in:
@@ -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]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user