Conversation
…oom-password-response
Walkthrough비공개 방 비밀번호 검증 API의 반환값이 예외 발생 방식에서 일치 여부와 roomId를 포함하는 응답 객체 반환 방식으로 변경되었습니다. 이에 따라 예외 코드 및 관련 상수, 테스트 코드, 서비스 및 도메인 로직, Swagger 문서 설명이 일관되게 수정되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant RoomQueryController
participant RoomVerifyPasswordUseCase
participant RoomVerifyPasswordService
participant Room
Client->>RoomQueryController: verifyRoomPassword(roomId, request)
RoomQueryController->>RoomVerifyPasswordUseCase: verifyRoomPassword(query)
RoomVerifyPasswordUseCase->>RoomVerifyPasswordService: verifyRoomPassword(query)
RoomVerifyPasswordService->>Room: verifyPassword(rawPassword)
Room-->>RoomVerifyPasswordService: boolean matched
RoomVerifyPasswordService-->>RoomVerifyPasswordUseCase: RoomVerifyPasswordResponse(matched, roomId)
RoomVerifyPasswordUseCase-->>RoomQueryController: RoomVerifyPasswordResponse
RoomQueryController-->>Client: BaseResponse<RoomVerifyPasswordResponse>
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~15 minutes Assessment against linked issues
Assessment against linked issues: Out-of-scope changes(해당 변경사항에서 요구사항과 무관한 변경은 발견되지 않았습니다.) Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Note ⚡️ Unit Test Generation is now available in beta!Learn more here, or try it out under "Finishing Touches" below. ✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
src/main/java/konkuk/thip/room/adapter/in/web/response/RoomVerifyPasswordResponse.java (1)
3-11: 응답 클래스 구조가 적절하지만 코드 스타일을 개선해주세요.
matched와roomId를 포함한 응답 구조가 API 개선 목적에 부합합니다. 다만 팩토리 메서드에서 매개변수 사이 공백이 누락되었습니다.- public static RoomVerifyPasswordResponse of(boolean matched,Long roomId) { + public static RoomVerifyPasswordResponse of(boolean matched, Long roomId) { - return new RoomVerifyPasswordResponse(matched,roomId); + return new RoomVerifyPasswordResponse(matched, roomId);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
src/main/java/konkuk/thip/common/exception/code/ErrorCode.java(0 hunks)src/main/java/konkuk/thip/common/swagger/SwaggerResponseDescription.java(0 hunks)src/main/java/konkuk/thip/room/adapter/in/web/RoomQueryController.java(1 hunks)src/main/java/konkuk/thip/room/adapter/in/web/response/RoomVerifyPasswordResponse.java(1 hunks)src/main/java/konkuk/thip/room/application/port/in/RoomVerifyPasswordUseCase.java(1 hunks)src/main/java/konkuk/thip/room/application/service/RoomVerifyPasswordService.java(2 hunks)src/main/java/konkuk/thip/room/domain/Room.java(2 hunks)src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordAPITest.java(2 hunks)src/test/java/konkuk/thip/room/domain/RoomTest.java(1 hunks)
💤 Files with no reviewable changes (2)
- src/main/java/konkuk/thip/common/swagger/SwaggerResponseDescription.java
- src/main/java/konkuk/thip/common/exception/code/ErrorCode.java
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: seongjunnoh
PR: THIP-TextHip/THIP-Server#101
File: src/main/java/konkuk/thip/comment/application/service/CommentCreateService.java:36-39
Timestamp: 2025-07-26T06:09:00.850Z
Learning: THIP 프로젝트에서는 "사용자가 방에 속하는지 검증" 로직을 RoomParticipantPolicy 도메인 서비스로 캡슐화하여 재사용성을 높이고 비즈니스 로직의 중복을 방지하는 방식을 선호한다.
📚 Learning: room 도메인에서 startdate는 현재 날짜 이후여야 하는 도메인 규칙이 있어서, 테스트에서 만료된 상태를 시뮬레이션하려면 reflection을 사용해야 한다....
Learnt from: hd0rable
PR: THIP-TextHip/THIP-Server#57
File: src/test/java/konkuk/thip/room/domain/RoomTest.java:0-0
Timestamp: 2025-07-08T16:30:33.771Z
Learning: Room 도메인에서 startDate는 현재 날짜 이후여야 하는 도메인 규칙이 있어서, 테스트에서 만료된 상태를 시뮬레이션하려면 reflection을 사용해야 한다.
Applied to files:
src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordAPITest.javasrc/test/java/konkuk/thip/room/domain/RoomTest.java
📚 Learning: thip 프로젝트에서는 "사용자가 방에 속하는지 검증" 로직을 roomparticipantpolicy 도메인 서비스로 캡슐화하여 재사용성을 높이고 비즈니스 로직의 중복을 방지하는 ...
Learnt from: seongjunnoh
PR: THIP-TextHip/THIP-Server#101
File: src/main/java/konkuk/thip/comment/application/service/CommentCreateService.java:36-39
Timestamp: 2025-07-26T06:09:00.850Z
Learning: THIP 프로젝트에서는 "사용자가 방에 속하는지 검증" 로직을 RoomParticipantPolicy 도메인 서비스로 캡슐화하여 재사용성을 높이고 비즈니스 로직의 중복을 방지하는 방식을 선호한다.
Applied to files:
src/main/java/konkuk/thip/room/domain/Room.javasrc/test/java/konkuk/thip/room/domain/RoomTest.javasrc/main/java/konkuk/thip/room/application/port/in/RoomVerifyPasswordUseCase.javasrc/main/java/konkuk/thip/room/application/service/RoomVerifyPasswordService.java
🔇 Additional comments (9)
src/main/java/konkuk/thip/room/domain/Room.java (1)
119-130: 도메인 로직의 일관된 변경이 잘 이루어졌습니다.
verifyPassword메서드가 예외 발생 방식에서 boolean 반환 방식으로 변경되어, API 응답 구조 개선 목적에 부합합니다. 비밀번호 검증 로직은 그대로 유지하면서 반환 방식만 변경된 점이 적절합니다.src/main/java/konkuk/thip/room/application/port/in/RoomVerifyPasswordUseCase.java (1)
3-8: UseCase 인터페이스 변경이 적절합니다.
RoomVerifyPasswordResponse반환으로 변경하여 비밀번호 일치 여부와 roomId를 함께 제공할 수 있게 되었습니다. 도메인 레벨 변경사항과 일관성을 유지합니다.src/main/java/konkuk/thip/room/application/service/RoomVerifyPasswordService.java (1)
21-29: 서비스 레이어 구현이 올바르게 변경되었습니다.도메인의
verifyPassword메서드에서 반환된 boolean 값을 적절히 활용하여RoomVerifyPasswordResponse객체를 생성합니다. 예외 기반에서 응답 기반으로의 변경이 일관되게 적용되었습니다.src/test/java/konkuk/thip/room/domain/RoomTest.java (2)
222-229: 테스트 코드가 변경된 도메인 로직을 정확히 반영합니다.비밀번호 불일치 시 예외 발생 대신
false반환을 검증하도록 변경되어, 도메인 메서드의 동작 변경과 일치합니다.
232-239: 성공 케이스 테스트도 적절히 수정되었습니다.비밀번호 일치 시
true반환을 검증하여 변경된 메서드 시그니처에 맞게 테스트가 업데이트되었습니다.src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordAPITest.java (3)
145-147: 새로운 응답 구조에 맞게 잘 수정되었습니다.비밀번호 검증 성공 시
data.matched와data.roomId를 올바르게 검증하고 있습니다. 새로운 응답 구조에 맞는 적절한 테스트 검증 로직입니다.
151-151: 테스트 이름이 새로운 동작을 정확히 반영합니다.비밀번호 불일치 시 400 에러 대신 200 OK로
matched=false를 반환하는 새로운 동작을 명확히 표현한 테스트명입니다.
163-166: 새로운 API 동작에 맞게 올바르게 수정되었습니다.비밀번호 불일치 시 예외를 던지는 대신 200 OK와 함께
matched=false,roomId를 포함한 응답을 반환하는 새로운 동작을 정확히 테스트하고 있습니다. 이는 도메인 테스트에서 확인된verifyPassword메서드의 boolean 반환 변경과 일치합니다.src/main/java/konkuk/thip/room/adapter/in/web/RoomQueryController.java (1)
55-55: 새로운 응답 구조에 맞게 적절히 수정되었습니다.
BaseResponse<Void>에서BaseResponse<RoomVerifyPasswordResponse>로 변경하여 비밀번호 검증 결과와 roomId를 포함한 응답을 반환하도록 수정되었습니다. 이는 예외 기반에서 응답 기반으로 변경된 새로운 API 설계와 일치합니다.
…oom-password-response
#️⃣ 연관된 이슈
📝 작업 내용
📸 스크린샷
💬 리뷰 요구사항
브랜치 이름에 깜박하고 이슈번호를 못적었습니닷 ㅜㅜ..
📌 PR 진행 시 이러한 점들을 참고해 주세요
Summary by CodeRabbit
신규 기능
버그 수정
테스트