mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
show message
This commit is contained in:
@@ -11,7 +11,7 @@ export class GetRoomByIdMapper {
|
|||||||
id: input.data.id,
|
id: input.data.id,
|
||||||
members: input.data.members,
|
members: input.data.members,
|
||||||
roomName: input.data.roomName,
|
roomName: input.data.roomName,
|
||||||
roomType: input.data.roomType
|
roomType: input.data.roomType,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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 { IMemberLocalRepository } from 'src/app/core/chat/repository/member/member-local-repository';
|
||||||
import { IRoomLocalRepository } from 'src/app/core/chat/repository/room/room-local-repository';
|
import { IRoomLocalRepository } from 'src/app/core/chat/repository/room/room-local-repository';
|
||||||
import { GetRoomByIdMapper } from 'src/app/core/chat/mapper/getRoomByIdMapper';
|
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({
|
const UserSchema = z.object({
|
||||||
wxUserId: z.number(),
|
wxUserId: z.number(),
|
||||||
@@ -70,20 +72,52 @@ export class GetRoomByIdUseCaseService {
|
|||||||
const object = {
|
const object = {
|
||||||
chatRoom: result.value.data
|
chatRoom: result.value.data
|
||||||
}
|
}
|
||||||
const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges([object], localListRoom.value)
|
const { roomsToInsert, roomsToUpdate } = roomListDetermineChanges([object], localListRoom.value)
|
||||||
|
|
||||||
for( const roomData of roomsToUpdate) {
|
if(roomsToUpdate) {
|
||||||
// const room = GetRoomByIdMapper.toDomain(roomData)
|
|
||||||
this.roomLocalDataSourceService.update(roomData.chatRoom.id, roomData.chatRoom)
|
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 localList = await this.MemberListLocalRepository.getRoomMemberById(id)
|
||||||
|
|
||||||
const { membersToInsert, membersToUpdate, membersToDelete } = roomMemberListDetermineChanges(result.value.data.members, localList, id)
|
const { membersToInsert, membersToUpdate, membersToDelete } = roomMemberListDetermineChanges(result.value.data.members, localList, id)
|
||||||
|
|
||||||
for (const user of membersToInsert) {
|
for (const user of membersToInsert) {
|
||||||
|
|
||||||
await this.MemberListLocalRepository.addMember(MemberListMapper(user, id))
|
await this.MemberListLocalRepository.addMember(MemberListMapper(user, id))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user