change room name for direct room

This commit is contained in:
Peter Maquiran
2024-08-29 20:43:57 +01:00
parent feea78fd59
commit 55539eb596
8 changed files with 169 additions and 75 deletions
@@ -36,63 +36,49 @@ export class SyncAllRoomMessagesService {
}
let n =0
for(const room of allRooms.value) {
const result = await this.messageRemoteDataSourceService.getMessagesFromRoom(room.id)
const localResult = await this.messageLocalDataSourceService.getItems(room.id)
tracing.addEvent('async n '+ n)
n++
if(result.isOk()) {
const { addedItems, changedItems, deletedItems } = messageListDetermineChanges(result.value.data, localResult)
for(const message of changedItems) {
let clone: MessageTable = message
clone.roomId = room.id
this.messageLocalDataSourceService.update(clone.$id, clone)
const me = message.info.find(e => e.memberId == SessionStore.user.UserId && typeof e.deliverAt == 'string' )
if(!me) {
const roomPromises = allRooms.value.map(async (room) => {
const [result, localResult] = await Promise.all([
this.messageRemoteDataSourceService.getMessagesFromRoom(room.id),
this.messageLocalDataSourceService.getItems(room.id)
]);
tracing.addEvent('async n ' + n);
n++;
if (result.isOk()) {
const { addedItems, changedItems, deletedItems } = messageListDetermineChanges(result.value.data, localResult);
for (const message of changedItems) {
let clone: MessageTable = { ...message, roomId: room.id };
await this.messageLocalDataSourceService.update(clone.$id, clone);
const me = message.info.find(e => e.memberId === SessionStore.user.UserId && typeof e.deliverAt === 'string');
if (!me) {
this.MessageSocketRepositoryService.sendDeliverAt({
memberId: SessionStore.user.UserId,
messageId: message.id,
roomId: message.roomId,
requestId: uuidv4()
})
tracing.addEvent('send delever roomId'+ room.id)
});
tracing.addEvent('send deliver roomId ' + room.id);
}
}
for(const message of addedItems) {
let clone: MessageTable = message
clone.roomId = room.id
// const me = message.info.find(e => e.memberId == SessionStore.user.UserId && typeof e.deliverAt == 'string' )
// if(!me) {
// this.MessageSocketRepositoryService.sendDeliverAt({
// memberId: SessionStore.user.UserId,
// messageId: message.id,
// roomId: message.roomId,
// requestId: uuidv4()
// })
// tracing.addEvent('send delever roomId'+ room.id)
// }
for (const message of addedItems) {
let clone: MessageTable = { ...message, roomId: room.id };
// You can perform operations with addedItems here if needed
}
this.messageLocalDataSourceService.insertMany(addedItems.reverse())
await this.messageLocalDataSourceService.insertMany(addedItems.reverse());
} else {
Logger.error('failed to get room message '+room.id)
Logger.error('failed to get room message ' + room.id);
}
}
});
// Wait for all the promises to resolve
await Promise.all(roomPromises);
return ok(true)
} else {