Files
sodalive-backend-spring-boot/docs/20260319_라이브룸채팅얼림상태저장및조회.md
Klaus f26c97861e feat(live-room): 라이브 룸 채팅 얼림 상태 저장/조회 기능 추가
- `LiveRoomInfo`에 `isChatFrozen` 필드(기본 false) 추가하여 Redis에 상태 저장 가능
- `GetRoomInfoResponse`에 `isChatFrozen` 노출 및 `LiveRoomService.getRoomInfo` 매핑 반영
- 요청 DTO `SetChatFreezeRequest(roomId, isChatFrozen)` 추가
- `PUT /live/room/info/set/chat-freeze` 엔드포인트 추가(크리에이터 권한 검증 포함)
2026-03-19 16:20:47 +09:00

1.7 KiB

라이브 룸 채팅 얼림 상태 저장/조회 추가

체크리스트

  • 데이터 모델(LiveRoomInfo)에 isChatFrozen 필드(Boolean, 기본 false) 추가
  • 요청 DTO SetChatFreezeRequest(roomId, isChatFrozen) 추가
  • 서비스 setChatFreeze 구현(권한: 크리에이터만)
  • 컨트롤러 PUT /live/room/info/set/chat-freeze 엔드포인트 추가
  • GetRoomInfoResponseisChatFrozen(Boolean, 기본 false) 추가 및 조회 응답 포함
  • 단위 테스트는 불필요 판단으로 제거(수동 테스트 가이드로 대체)
  • ./gradlew build로 컴파일 확인
  • ./gradlew ktlintCheck 실행 및 포맷 확인

검증 기록

1차 구현

  • 무엇을: 채팅 얼림 상태 저장/조회 기능 구현
  • 왜: 라이브 룸 채팅 제어 기능 제공을 위해
  • 어떻게:
    • 빌드/테스트 명령 실행: ./gradlew clean build 성공, ./gradlew ktlintCheck 예정
    • API 수동 점검 예정: PUT /live/room/info/set/chat-freeze 요청 본문 { "roomId": 1, "isChatFrozen": true } → 200 OK, 이후 GET /live/room/info/{id} 응답에 isChatFrozen: true 포함 확인

수동 테스트 방법

  • 사전조건: 방 생성 및 시작되어 Redis에 LiveRoomInfo가 존재해야 함
    1. 채팅 얼림 설정
    • 요청: PUT /live/room/info/set/chat-freeze
    • 헤더: Authorization: Bearer <creator_token>
    • 바디: { "roomId": <roomId>, "isChatFrozen": true }
    • 기대: 200 OK, 본문은 ApiResponse.ok 규격
    1. 룸 정보 조회에서 반영 확인
    • 요청: GET /live/room/info/{roomId}
    • 기대: 응답 JSON 내 isChatFrozen: true
    1. 해제 시나리오 재검증
    • isChatFrozen을 false로 요청 후 조회 시 false 확인