- `LiveRoomInfo`에 `isChatFrozen` 필드(기본 false) 추가하여 Redis에 상태 저장 가능 - `GetRoomInfoResponse`에 `isChatFrozen` 노출 및 `LiveRoomService.getRoomInfo` 매핑 반영 - 요청 DTO `SetChatFreezeRequest(roomId, isChatFrozen)` 추가 - `PUT /live/room/info/set/chat-freeze` 엔드포인트 추가(크리에이터 권한 검증 포함)
1.7 KiB
1.7 KiB
라이브 룸 채팅 얼림 상태 저장/조회 추가
체크리스트
- 데이터 모델(LiveRoomInfo)에
isChatFrozen필드(Boolean, 기본 false) 추가 - 요청 DTO
SetChatFreezeRequest(roomId, isChatFrozen)추가 - 서비스
setChatFreeze구현(권한: 크리에이터만) - 컨트롤러
PUT /live/room/info/set/chat-freeze엔드포인트 추가 GetRoomInfoResponse에isChatFrozen(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가 존재해야 함 -
- 채팅 얼림 설정
- 요청:
PUT /live/room/info/set/chat-freeze - 헤더:
Authorization: Bearer <creator_token> - 바디:
{ "roomId": <roomId>, "isChatFrozen": true } - 기대: 200 OK, 본문은
ApiResponse.ok규격
-
- 룸 정보 조회에서 반영 확인
- 요청:
GET /live/room/info/{roomId} - 기대: 응답 JSON 내
isChatFrozen: true
-
- 해제 시나리오 재검증
isChatFrozen을 false로 요청 후 조회 시false확인