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