update room bold

This commit is contained in:
Peter Maquiran
2024-09-17 18:05:47 +01:00
parent 263f593260
commit eeaade9aab
6 changed files with 58 additions and 11 deletions
@@ -4,7 +4,7 @@ import { filter, map } from 'rxjs/operators';
import { z } from 'zod';
import { SocketMessage } from 'src/app/infra/socket/signalR/signalR';
import { v4 as uuidv4 } from 'uuid'
import { IRoomSocketRepository } from 'src/app/core/chat/repository/room/room-socket-repository';
import { IRoomSocketRepository, SocketRoomUpdateOutPut } from 'src/app/core/chat/repository/room/room-socket-repository';
import { CreateRoomInputDTO } from '../../../domain/use-case/room/room-create-use-case.service';
const listenToDeleteRoomInputSchema = z.object({
@@ -54,9 +54,15 @@ export class RoomSocketRepositoryService implements IRoomSocketRepository {
)
}
listenToRoomUpdate() {
return this.socket.getData<SocketRoomUpdateOutPut>().pipe(
filter((data) => data?.method == 'GroupUpdate')
)
}
listenToDeleteRoom() {
return this.socket.getData<any>().pipe(
filter((data): data is SocketMessage<ListenToDeleteRoomInput> =>
filter((data): data is SocketMessage<ListenToDeleteRoomInput> =>
data?.method === 'UserRemoveGroup'
),
map((e) => e.data)
@@ -45,6 +45,7 @@ import { RoomSetLastMessageService } from 'src/app/module/chat/domain/use-case/r
import { RoomCreateLocalDirectMessageInputDTOInputDTO, RoomCreateLocalDirectMessageService } from 'src/app/module/chat/domain/use-case/room/room-create-local-direct-message.service';
import { RoomGetListOnCreateUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-get-list-on-create-use-case.service';
import { IRoomSetLocalToFalseByIdInput, RoomSetLocalToFalseByIdService } from 'src/app/module/chat/domain/use-case/room/room-set-local-to-false-by-id.service';
import { RoomUpdateNameSyncService } from 'src/app/module/chat/domain/use-case/room/room-update-name-sync.service';
import { IUserPhotoGetByIdInput, UserPhotoGetByIdUseCase } from 'src/app/module/chat/domain/use-case/user-photo/user-photo-get-by-id-use-case.service'
import { IMessageLocalGetByIdServiceInput, MessageLocalGetByIdService } from 'src/app/module/chat/domain/use-case/message/message-local-get-by-id.service'
import { ContactListService } from './use-case/contact/contact-list.service';
@@ -113,7 +114,8 @@ export class ChatServiceService {
private contactListService: ContactListService,
private messageLocalGetByIdService: MessageLocalGetByIdService,
private roomGetLocalByIdService: RoomGetLocalByIdService,
private roomSetLocalToFalseByIdService: RoomSetLocalToFalseByIdService
private roomSetLocalToFalseByIdService: RoomSetLocalToFalseByIdService,
private roomUpdateNameSyncService: RoomUpdateNameSyncService
) {
this.MessageSocketRepositoryService.listenToDeleteMessages()
.pipe()
@@ -0,0 +1,22 @@
import { Injectable } from '@angular/core';
import { IRoomSocketRepository } from 'src/app/core/chat/repository/room/room-socket-repository';
import { GetRoomByIdUseCaseService } from './room-get-by-id-use-case.service'
@Injectable({
providedIn: 'root'
})
export class RoomUpdateNameSyncService {
constructor(
private GetRoomByIdUseCaseService: GetRoomByIdUseCaseService,
private roomSocketRepository: IRoomSocketRepository
) {
// this.watch()
}
private watch() {
this.roomSocketRepository.listenToRoomUpdate().subscribe((event) => {
this.GetRoomByIdUseCaseService.execute(event.data.id)
})
}
}