[refactor] 클럽 지원 양식 불러오기 구버전 api를 제거한다#793
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning
|
| Cohort / File(s) | Summary |
|---|---|
API 엔드포인트 조정backend/src/main/java/moadong/club/controller/ClubApplyControllerV1.java, backend/src/main/java/moadong/club/controller/ClubApplyPublicController.java |
V1 컨트롤러의 GET /apply 제거. Public 컨트롤러의 GET /apply 활성화 및 서비스 호출을 PublicService로 전환. |
서비스 레이어 이동/정리backend/src/main/java/moadong/club/service/ClubApplyPublicService.java, backend/src/main/java/moadong/club/service/ClubApplyAdminService.java, backend/src/main/java/moadong/club/service/ClubApplyServiceV1.java |
PublicService에 getActiveApplicationForms 추가. AdminService에서 동명 메서드 제거. ClubApplyServiceV1의 getClubApplicationForm 제거. |
DTO/인터페이스 축소backend/src/main/java/moadong/club/payload/dto/ClubActiveFormResult.java, backend/src/main/java/moadong/club/payload/dto/ClubActiveFormSlim.java |
description 필드/메서드 제거로 데이터 모델을 id, title로 축소. |
저장소 프로젝션 수정backend/src/main/java/moadong/club/repository/ClubApplicationFormsRepository.java |
findClubActiveFormsByClubId의 프로젝션에서 description 필드 제외. |
Sequence Diagram(s)
sequenceDiagram
autonumber
participant C as Client
participant Ctr as ClubApplyPublicController
participant S as ClubApplyPublicService
participant R as ClubApplicationFormsRepository
C->>Ctr: GET /api/club/{clubId}/apply
Ctr->>S: getActiveApplicationForms(clubId)
S->>R: findClubActiveFormsByClubId(clubId)
alt 활성 폼 존재
R-->>S: List<ClubActiveFormSlim> (id, title)
S-->>Ctr: ClubActiveFormsResponse(forms: List<ClubActiveFormResult>)
Ctr-->>C: 200 OK + Response
else 없음
R-->>S: []
S-->>Ctr: throw RestApiException(ACTIVE_APPLICATION_NOT_FOUND)
Ctr-->>C: 에러 응답
end
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related issues
- [refactor] MOA-294 동아리 지원하기의 구버전 api를 삭제한다 #790: 구버전 동아리 지원 GET API 제거 및 공개용 엔드포인트 전환과 직접적으로 동일 영역을 다룸.
Possibly related PRs
- [feature] 활성화된 동아리 지원서만 보여준다 #769: 활성 지원서 조회 기능 및 동일 DTO/컨트롤러/리포지토리 경로를 수정.
- [feature] 해당 학기에 게시할 지원서 폼을 선택할 수 있다 #765: active forms 조회 로직과 ClubActiveForm* 타입 변경을 함께 다룸.
- Revert "[feature] 동아리 지원서 폼 제작 시에 학기를 선택할 수 있고 생성된 모든 지원서 폼을 학기별로 분류하여 조회할 수 있다" #750: GET /apply 동작과 리포지토리/DTO 반환 필드 변경에 대한 관련 수정.
Suggested labels
🔨 Refactor, 📬 API, 💾 BE
Suggested reviewers
- Zepelown
- lepitaaar
- suhyun113
- yw6938
Pre-merge checks and finishing touches
❌ Failed checks (1 warning)
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Docstring Coverage | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. | You can run @coderabbitai generate docstrings to improve docstring coverage. |
✅ Passed checks (4 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title Check | ✅ Passed | 제목은 구버전 클럽 지원 양식 불러오기 API의 제거라는 주요 변경사항을 명확히 설명하고 있어 PR의 핵심 내용을 간결하게 전달합니다. |
| Linked Issues Check | ✅ Passed | 연결된 MOA-294 이슈의 핵심 요구사항인 구버전 클럽 지원 API 삭제가 PR에서 정확히 구현되었으며 새로운 활성화된 지원서 목록 API도 의도대로 활성화되었습니다. |
| Out of Scope Changes Check | ✅ Passed | PR의 모든 변경사항은 구버전 API 삭제와 새로운 활성화된 지원서 목록 반환 기능 구현에 직결되며 이 범위를 벗어난 수정은 발견되지 않았습니다. |
✨ Finishing touches
- 📝 Generate docstrings
🧪 Generate unit tests (beta)
- Create PR with unit tests
- Post copyable unit tests in a comment
- Commit unit tests in branch
refactor/#790-old-api-delete-MOA-294
📜 Recent review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (8)
backend/src/main/java/moadong/club/controller/ClubApplyControllerV1.java(0 hunks)backend/src/main/java/moadong/club/controller/ClubApplyPublicController.java(1 hunks)backend/src/main/java/moadong/club/payload/dto/ClubActiveFormResult.java(1 hunks)backend/src/main/java/moadong/club/payload/dto/ClubActiveFormSlim.java(0 hunks)backend/src/main/java/moadong/club/repository/ClubApplicationFormsRepository.java(1 hunks)backend/src/main/java/moadong/club/service/ClubApplyAdminService.java(0 hunks)backend/src/main/java/moadong/club/service/ClubApplyPublicService.java(2 hunks)backend/src/main/java/moadong/club/service/ClubApplyServiceV1.java(0 hunks)
💤 Files with no reviewable changes (4)
- backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
- backend/src/main/java/moadong/club/controller/ClubApplyControllerV1.java
- backend/src/main/java/moadong/club/service/ClubApplyServiceV1.java
- backend/src/main/java/moadong/club/payload/dto/ClubActiveFormSlim.java
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-09-30T05:26:41.788Z
Learnt from: alsdddk
PR: Moadong/moadong#765
File: backend/src/main/java/moadong/club/service/ClubApplyService.java:431-435
Timestamp: 2025-09-30T05:26:41.788Z
Learning: In the Moadong codebase's club application feature (backend/src/main/java/moadong/club/), multiple ClubApplicationForm entities can have ACTIVE status for the same clubId, semesterYear, and semesterTerm simultaneously. There is no uniqueness constraint requiring only one ACTIVE form per semester.
Applied to files:
backend/src/main/java/moadong/club/service/ClubApplyPublicService.javabackend/src/main/java/moadong/club/controller/ClubApplyPublicController.java
📚 Learning: 2025-05-19T05:45:52.957Z
Learnt from: lepitaaar
PR: Moadong/moadong#406
File: backend/src/main/java/moadong/club/service/ClubApplyService.java:34-38
Timestamp: 2025-05-19T05:45:52.957Z
Learning: The code duplication between createClubApplication and editClubApplication methods in ClubApplyService.java is acknowledged but will be addressed in a future refactoring, as per the developer's plan.
Applied to files:
backend/src/main/java/moadong/club/service/ClubApplyPublicService.java
🔇 Additional comments (4)
backend/src/main/java/moadong/club/repository/ClubApplicationFormsRepository.java (1)
29-31: 프로젝션 변경이 응답 스펙과 일치합니다활성 폼 목록을 id/title만 노출하도록 줄여 DTO 축소와 정합성이 맞습니다. 별도 우려 없습니다.
backend/src/main/java/moadong/club/payload/dto/ClubActiveFormResult.java (1)
7-9: DTO 축소가 의도와 부합합니다응답을 id와 title로 한정해 프론트 요구사항과 맞는 간결한 형태가 되었습니다.
backend/src/main/java/moadong/club/controller/ClubApplyPublicController.java (1)
37-41: 공개 엔드포인트 복원 확인활성 지원서 목록을 공개 서비스로 위임해 공개 API 경로가 명확히 정리되었습니다.
backend/src/main/java/moadong/club/service/ClubApplyPublicService.java (1)
40-55: 빈 목록 처리 방식 확인 필요현재는 활성 폼이 없으면
RestApiException(ACTIVE_APPLICATION_NOT_FOUND)를 던집니다. 다중 지원서 모달 등 소비자가 “빈 리스트(200)”를 기대한다면 404가 되면서 흐름이 끊길 수 있습니다. 기존 소비 코드가 예외 상황을 처리하는지 확인 부탁드립니다. 필요하다면 빈 리스트를 반환하도록 조정하는 쪽을 검토해 주세요.
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.
Comment @coderabbitai help to get the list of available commands and usage tips.
Test Results70 tests 67 ✅ 9s ⏱️ Results for commit e062118. |
#️⃣연관된 이슈
#790
📝작업 내용
중점적으로 리뷰받고 싶은 부분(선택)
논의하고 싶은 부분(선택)
🫡 참고사항
Summary by CodeRabbit
신기능
리팩터링