This commit is contained in:
Peter Maquiran
2022-02-02 20:18:45 +01:00
17 changed files with 101 additions and 53 deletions
+5 -5
View File
@@ -109,8 +109,8 @@ export class RoomService {
}
this.addMessageDB(ChatMessage)
}
}
}
)
@@ -188,7 +188,7 @@ export class RoomService {
if(message._id == id) {
messages.splice(index, 1)
}
})
this.storage.set('chatmsg' + this.id, messages).then((value) => {
@@ -308,12 +308,12 @@ export class RoomService {
open() {
// this.typing(this.message)
}
leave(rid?) {
this.WsChatService.leaveRoom(this.id)
}
isJson(str) {
try {
JSON.parse(str);
@@ -409,7 +409,7 @@ export class RoomService {
private fix_updatedAt(message) {
if (message.result) {
console.log('FIX UPDATE ', message.result)
//console.log('FIX UPDATE ', message.result)
message.result._updatedAt = message.result._updatedAt['$date']
} else if(message._updatedAt.hasOwnProperty('$date')) {
// console.log('FIX UPDATE 11', message)
@@ -156,11 +156,11 @@ export class WsChatMethodsService {
/**
* @description when a new room is create, needs to subtribe in order to receive updates
* @param id
* @param roomData
* @param id
* @param roomData
*/
subscribeToRoomUpdate(id, roomData) {
this.defaultSubtribe(id)
this.prepareRoom(roomData);
@@ -185,10 +185,10 @@ export class WsChatMethodsService {
})
}
/**
* @description create a representation of an room in these instance this.dm, this.group ...
* @param roomData
* @description create a representation of an room in these instance this.dm, this.group ...
* @param roomData
*/
prepareRoom(roomData) {
let room:RoomService;
@@ -237,12 +237,12 @@ export class WsChatMethodsService {
* @param id user ID
*/
private getUserStatus(id?:string) {
this.WsChatService.getUserStatus((d) => {
const username = d.fields.args[0][1]
const statusNum = d.fields.args[0][2]
const statusText = this.statusNumberToText(statusNum)
const user = this.getUserByName(username)
@@ -261,8 +261,8 @@ export class WsChatMethodsService {
/**
* @description convert rocketchat statues num to readable string
* @param text
* @returns
* @param text
* @returns
*/
statusNumberToText(text) {
if(text == '0') {
@@ -278,7 +278,7 @@ export class WsChatMethodsService {
return "busy"
}
}
deleteMessage(id?) {
return this.WsChatService.deleteMessage(id);
@@ -362,5 +362,9 @@ export class WsChatMethodsService {
this.users = user
}
getUserOfRoom(roomId){
return this.WsChatService.getUserOfRoom(roomId);
}
}
+34 -5
View File
@@ -119,6 +119,35 @@ export class WsChatService {
});
}
getUserOfRoom(roomId) {
const requestId = uuidv4()
const message = {
"msg": "method",
"method": "getUsersOfRoom",
"id": requestId,
"params": [
roomId,
false,
{
"limit": 100,
"skip": 0
} ]
}
this.ws.send({message, requestId})
return new Promise<Rooms>((resolve, reject) => {
this.ws.registerCallback({type:'Onmessage', funx:(message)=>{
if(message.id == requestId) { // same request send
resolve(message)
return true
}
}})
});
}
logout() {
this.isLogin = false
this.ws.connected = false
@@ -360,7 +389,7 @@ export class WsChatService {
}
})
}
loadHistory(roomId, limit: number = 50) {
@@ -593,7 +622,7 @@ updateRoomEventss(roomId, collection:string, funx: Function, ) {
},
onopen:()=> {
this.ws.connected = true
console.log('================== welcome to socket server =====================')
this.ws.wsMsgQueue()
@@ -602,13 +631,13 @@ updateRoomEventss(roomId, collection:string, funx: Function, ) {
for (const [key, value] of Object.entries(this.wsCallbacks)) {
if(value.type== 'reConnect') {
const dontRepeat = value.funx()
if(dontRepeat) {
delete this.wsCallbacks[key]
}
}
}
}