Skip to content

채팅방 삭제 API 개발 #129

@ckdals4600

Description

@ckdals4600

이슈 배경

사용자가 특정 채팅방을 삭제할 때, 해당 채팅방과 연관된 모든 데이터(메시지 로그, 피드백 등)를 DB에서 영구적으로 제거하는 Hard Delete API(DELETE /v1/chats/{chatId})를 구현함.

이슈 내용

1. API 명세 구현 (ChatController, ChatApi)

  • Endpoint: DELETE /v1/chats/{chatId}
  • Request: Path Variable로 chatId 전달. (Header의 Authorization 토큰으로 소유권 검증).
  • Response: 성공 시 별도 데이터 없이 성공 메시지 반환.

2. 개발 범위

  • ChatController: 채팅방 삭제 요청 핸들링 및 권한 검증(본인 확인).
  • ChatFacade: 트랜잭션 범위 내에서 데이터 삭제 순서 보장 (피드백 -> 메시지 -> 채팅방).
  • FeedbackService, FeedbackCommandService: 삭제 대상 채팅방 내의 모든 메시지에 연결된 피드백 데이터 삭제 처리.
  • FeedbackRepository: DB에서 피드백 데이터 영구 제거(delete).
  • MessageService, MessageCommandService: 해당 채팅방의 모든 채팅 로그(메시지) 데이터 삭제 처리.
  • MessageRepository: DB에서 메시지 데이터 영구 제거(delete).
  • ChatCommandService: 최종적으로 채팅방 엔티티(Chat) 삭제 처리.
  • ChatRepository: DB에서 채팅방 데이터 영구 제거(delete).

3. 테스트 작성

  • Integration Test: API 호출 시 채팅방, 메시지, 피드백 테이블에서 데이터가 완전히 사라지는지 검증함.
  • Unit Test: 서비스 간 호출 순서 및 Repository 삭제 메서드 호출 여부 테스트.

참고 자료

No response

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions