diff --git a/src/app/core/chat/mapper/getRoomByIdMapper.ts b/src/app/core/chat/mapper/getRoomByIdMapper.ts index 4dde9d208..a0d50eaf9 100644 --- a/src/app/core/chat/mapper/getRoomByIdMapper.ts +++ b/src/app/core/chat/mapper/getRoomByIdMapper.ts @@ -11,7 +11,7 @@ export class GetRoomByIdMapper { id: input.data.id, members: input.data.members, roomName: input.data.roomName, - roomType: input.data.roomType + roomType: input.data.roomType, }) } } \ No newline at end of file diff --git a/src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service.ts b/src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service.ts index de7cccf15..272f73b67 100644 --- a/src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service.ts +++ b/src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service.ts @@ -10,6 +10,8 @@ import { IRoomRemoteRepository } from 'src/app/core/chat/repository/room/room-re import { IMemberLocalRepository } from 'src/app/core/chat/repository/member/member-local-repository'; import { IRoomLocalRepository } from 'src/app/core/chat/repository/room/room-local-repository'; import { GetRoomByIdMapper } from 'src/app/core/chat/mapper/getRoomByIdMapper'; +import { RoomEntity } from 'src/app/core/chat/entity/group'; +import { GetRoomListMapper } from 'src/app/core/chat/mapper/getRoomListMapper'; const UserSchema = z.object({ wxUserId: z.number(), @@ -70,20 +72,52 @@ export class GetRoomByIdUseCaseService { const object = { chatRoom: result.value.data } - const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges([object], localListRoom.value) + const { roomsToInsert, roomsToUpdate } = roomListDetermineChanges([object], localListRoom.value) - for( const roomData of roomsToUpdate) { - // const room = GetRoomByIdMapper.toDomain(roomData) - this.roomLocalDataSourceService.update(roomData.chatRoom.id, roomData.chatRoom) + if(roomsToUpdate) { + + const roomsToUpdateEntity = GetRoomListMapper.toDomain(roomsToUpdate) + for( const room of roomsToUpdateEntity) { + this.roomLocalDataSourceService.update(room.id, room) + if(room.expirationDate) { + console.log('room expiration date schedule') + // this.CronJobService.createCronJob('remove expired room', new Date(room.expirationDate), this.execute) + } + } } + if(roomsToInsert) { + + const roomsToInsertEntity = GetRoomListMapper.toDomain(roomsToInsert) + for( const room of roomsToInsertEntity) { + this.roomLocalDataSourceService.insert(room) + if(room.expirationDate) { + console.log('room expiration date schedule') + // this.CronJobService.createCronJob('remove expired room', new Date(room.expirationDate), this.execute) + } + } + } + + // for( const roomData of roomsToUpdate) { + // const room = new RoomEntity({ + // createdAt: result.value.data.createdAt, + // createdBy: result.value.data.createdBy, + // expirationDate: result.value.data.expirationDate, + // id: result.value.data.id, + // members: result.value.data.members, + // roomName: result.value.data.roomName, + // roomType: result.value.data.roomType, + // }) + + // this.roomLocalDataSourceService.update(room.id, room) + // } + // ============================ const localList = await this.MemberListLocalRepository.getRoomMemberById(id) const { membersToInsert, membersToUpdate, membersToDelete } = roomMemberListDetermineChanges(result.value.data.members, localList, id) for (const user of membersToInsert) { - await this.MemberListLocalRepository.addMember(MemberListMapper(user, id)) }