set last message

This commit is contained in:
Peter Maquiran
2024-09-10 16:01:51 +01:00
parent f77592d0c4
commit 9fee233d91
23 changed files with 268 additions and 126 deletions
@@ -22,8 +22,12 @@ export class RoomSetLastMessageService {
this.listenToIncomingMessage()
this.listenToOnSendDataToSocket()
this.loadHistory()
this.listenToUpdateMessage()
}
private listenToUpdateMessage() {}
private listenToIncomingMessage() {
return this.messageSocketRepository.listenToMessages().pipe(
filter((message) => !message?.requestId?.startsWith(InstanceId)), // get all message not send by me
@@ -46,15 +50,24 @@ export class RoomSetLastMessageService {
private listenToOnSendDataToSocket() {
this.messageSocketRepository.listenToSendMessage().subscribe(async (e) => {
e.data['sender'] = {
const message = Object.assign(new MessageEntity(), e.data)
message.sender = {
userPhoto: '',
wxeMail: SessionStore.user.Email,
wxFullName: SessionStore.user.FullName,
wxUserId: SessionStore.user.UserId
}
e.data['sentAt'] = new Date().toISOString()
message.sentAt = new Date().toISOString()
if(e.data.attachment?.fileType) {
message.attachments = [ e.data.attachment ]
} else {
message.attachments = []
}
const result = await this.roomLocalRepository.update(e.data.roomId, {
messages: [e.data]
messages: [message]
})
if(result.isErr()) {
@@ -91,7 +104,6 @@ export class RoomSetLastMessageService {
const loadHistoryLastMessageDate = new Date(loadHistoryFirstMessage.sentAt).getTime()
if(loadHistoryLastMessageDate>localLastMessageDate) {
console.log('update by load history')
await this.roomLocalRepository.update(loadHistoryFirstMessage.roomId, {
messages: [loadHistoryFirstMessage]
})