Skip to content

[FEAT] V2 모임 스웨거 업데이트#155

Merged
LimdaeIl merged 1 commit intomainfrom
feat/group-swagger
Dec 23, 2025
Merged

[FEAT] V2 모임 스웨거 업데이트#155
LimdaeIl merged 1 commit intomainfrom
feat/group-swagger

Conversation

@LimdaeIl
Copy link
Collaborator

@LimdaeIl LimdaeIl commented Dec 23, 2025

📝 Pull Request

📌 PR 종류

해당하는 항목에 체크해주세요.

  • 기능 추가 (Feature)
  • 버그 수정 (Fix)
  • 문서 수정 (Docs)
  • 코드 리팩터링 (Refactor)
  • 테스트 추가 (Test)
  • 기타 변경 (Chore)

✨ 변경 내용

V2 모임 상태에 따른 스웨거 업데이트합니다.

🔍 관련 이슈

🧪 테스트

변경된 기능에 대한 테스트 범위 또는 테스트 결과를 작성해주세요.

  • 유닛 테스트 추가 / 수정
  • 통합 테스트 검증
  • 수동 테스트 완료

🚨 확인해야 할 사항 (Checklist)

PR을 제출하기 전에 아래 항목들을 확인해주세요.

  • 코드 포매팅 완료
  • 불필요한 파일/코드 제거
  • 로직 검증 완료
  • 프로젝트 빌드 성공
  • 린트/정적 분석 통과 (해당 시)

🙋 기타 참고 사항

리뷰어가 참고하면 좋을 만한 추가 설명이 있다면 적어주세요.

Summary by CodeRabbit

새로운 기능

  • 그룹 멤버 관리 기능 추가: 멤버 승인, 거절, 제거, 차단 및 차단 해제 옵션 구현
  • 그룹 관리자 권한 강화: 제거 및 차단 대상을 조회할 수 있는 기능 제공

✏️ Tip: You can customize this high-level summary in your review settings.

@LimdaeIl LimdaeIl self-assigned this Dec 23, 2025
Copilot AI review requested due to automatic review settings December 23, 2025 06:22
@LimdaeIl LimdaeIl added the ✨enhancement New feature or request label Dec 23, 2025
@LimdaeIl LimdaeIl moved this from Backlog to In progress in WeGo-Together Backend Dec 23, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 23, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

GroupV2ControllerDocs에 호스트/관리자 권한의 모임 회원 관리 엔드포인트(승인, 거절, 추방, 차단, 차단 해제 등)를 위한 Swagger 정의가 추가되었습니다. 각 엔드포인트는 적절한 HTTP 메서드로 매핑되고 새로운 응답 DTO 타입을 사용합니다.

Changes

응집 단위 / 파일 변경 사항
호스트 회원 관리 엔드포인트 Swagger 정의
src/main/java/team/wego/wegobackend/group/v2/presentation/GroupV2ControllerDocs.java
총 8개의 새로운 엔드포인트 추가: 회원 승인(POST), 거절(POST), 추방(POST), 차단(POST), 차단해제(PATCH); 추방 대상 조회(GET), 차단 대상 조회(GET), 차단된 회원 조회(GET). 각 엔드포인트는 Swagger @Operation 주석과 함께 ApiResponse 래핑된 응답 페이로드를 반환합니다. 4개의 새로운 응답 DTO 타입(GroupUserV2StatusResponse, GetKickTargetsResponse, GetBanTargetsResponse, GetBannedTargetsResponse) 도입 및 해당 임포트 추가

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • [FEAT] V2 모임 추방 차단 기능 구현 #153: 주요 PR의 GroupV2ControllerDocs에 추가된 호스트 권한 엔드포인트 및 DTO들(kick/ban/unban)이 해당 PR에서 구현되고 도입된 동일한 엔드포인트 및 DTO와 직접 대응됩니다.
  • V2 모임 Swagger 작성 #144: 동일한 GroupV2ControllerDocs Swagger 인터페이스를 수정하며, 해당 PR은 V2 컨트롤러 문서를 처음 도입했고 주요 PR은 추가적인 호스트/관리자 권한 엔드포인트를 추가합니다.
  • [FEAT] 모임 API HTTP Status Response 수정하기 #54: 컨트롤러 엔드포인트에서 ApiResponse.success(...) 응답을 구성하는 부분을 변경하며, 해당 PR의 ApiResponse.success 서명 변경(statusCode 추가)이 주요 PR에서 추가된 새로운 컨트롤러 엔드포인트들에 직접적으로 영향을 줍니다.

Poem

🐰 새로운 엔드포인트들이 쏙쏙 들어오고,
Swagger 문서는 반짝반짝 해지네요!
추방, 차단, 차단해제... 관리의 손길,
V2 모임은 더욱 든든해졌어요.
호스트의 권한이 명확해지니,
우리 WeGo는 한 단계 더 성장했답니다! ✨

✨ 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 feat/group-swagger

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f81e3a6 and 68fab77.

📒 Files selected for processing (1)
  • src/main/java/team/wego/wegobackend/group/v2/presentation/GroupV2ControllerDocs.java

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@LimdaeIl LimdaeIl merged commit b2fc54f into main Dec 23, 2025
4 of 5 checks passed
@LimdaeIl LimdaeIl deleted the feat/group-swagger branch December 23, 2025 06:22
@github-project-automation github-project-automation bot moved this from In progress to Done in WeGo-Together Backend Dec 23, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds Swagger documentation for V2 group management APIs related to user status management in meetings. The changes introduce comprehensive API documentation for host-controlled actions such as approving/rejecting participants, kicking/banning users, and querying targets for these operations.

  • Adds Swagger @Operation annotations for 8 new endpoint documentations covering participant approval workflows and moderation features
  • Imports new response DTOs (GetBanTargetsResponse, GetBannedTargetsResponse, GetKickTargetsResponse, GroupUserV2StatusResponse) to support the documented endpoints
  • Includes Korean language descriptions explaining state transitions (e.g., PENDING → ATTEND, ATTEND → KICKED, BANNED → KICKED)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- 권한: HOST
"""
)
@PostMapping("/{groupId}/attendance/{targetUserId}/unban")
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mapping annotation @PostMapping should not be placed in the interface. Following the existing pattern in this file, mapping annotations like @PostMapping, @GetMapping, @PatchMapping, etc. should only be placed in the implementation class (GroupV2Controller), not in the documentation interface (GroupV2ControllerDocs). The interface should only contain @operation annotations for Swagger documentation. Please remove this annotation from the interface.

Suggested change
@PostMapping("/{groupId}/attendance/{targetUserId}/unban")

Copilot uses AI. Check for mistakes.
- 권한: HOST
"""
)
@GetMapping("/{groupId}/attendance/ban-targets")
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mapping annotation @GetMapping should not be placed in the interface. Following the existing pattern in this file, mapping annotations like @PostMapping, @GetMapping, @PatchMapping, etc. should only be placed in the implementation class (GroupV2Controller), not in the documentation interface (GroupV2ControllerDocs). The interface should only contain @operation annotations for Swagger documentation. Please remove this annotation from the interface.

Copilot uses AI. Check for mistakes.
- 권한: HOST
"""
)
@GetMapping("/{groupId}/attendance/banned-targets")
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mapping annotation @GetMapping should not be placed in the interface. Following the existing pattern in this file, mapping annotations like @PostMapping, @GetMapping, @PatchMapping, etc. should only be placed in the implementation class (GroupV2Controller), not in the documentation interface (GroupV2ControllerDocs). The interface should only contain @operation annotations for Swagger documentation. Please remove this annotation from the interface.

Suggested change
@GetMapping("/{groupId}/attendance/banned-targets")

Copilot uses AI. Check for mistakes.
- 권한: HOST 또는 정책상 승인 가능한 권한자
"""
)
@PostMapping("/{groupId}/attendance/{targetUserId}/approve")
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mapping annotation @PostMapping should not be placed in the interface. Following the existing pattern in this file, mapping annotations like @PostMapping, @GetMapping, @PatchMapping, etc. should only be placed in the implementation class (GroupV2Controller), not in the documentation interface (GroupV2ControllerDocs). The interface should only contain @operation annotations for Swagger documentation. Please remove this annotation from the interface.

Copilot uses AI. Check for mistakes.
- 권한: HOST
"""
)
@GetMapping("/{groupId}/attendance/kick-targets")
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mapping annotation @GetMapping should not be placed in the interface. Following the existing pattern in this file, mapping annotations like @PostMapping, @GetMapping, @PatchMapping, etc. should only be placed in the implementation class (GroupV2Controller), not in the documentation interface (GroupV2ControllerDocs). The interface should only contain @operation annotations for Swagger documentation. Please remove this annotation from the interface.

Suggested change
@GetMapping("/{groupId}/attendance/kick-targets")

Copilot uses AI. Check for mistakes.
import java.util.List;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.GetMapping;
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This import is only needed because of the incorrectly placed @GetMapping annotations in the interface. Since mapping annotations should only be in the implementation class (GroupV2Controller) and not in the documentation interface (GroupV2ControllerDocs), this import should be removed from the interface file.

Suggested change
import org.springframework.web.bind.annotation.GetMapping;

Copilot uses AI. Check for mistakes.
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This import is only needed because of the incorrectly placed @PostMapping annotations in the interface. Since mapping annotations should only be in the implementation class (GroupV2Controller) and not in the documentation interface (GroupV2ControllerDocs), this import should be removed from the interface file.

Suggested change
import org.springframework.web.bind.annotation.PostMapping;

Copilot uses AI. Check for mistakes.
- 권한: HOST 또는 정책상 거절 가능한 권한자
"""
)
@PostMapping("/{groupId}/attendance/{targetUserId}/reject")
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mapping annotation @PostMapping should not be placed in the interface. Following the existing pattern in this file, mapping annotations like @PostMapping, @GetMapping, @PatchMapping, etc. should only be placed in the implementation class (GroupV2Controller), not in the documentation interface (GroupV2ControllerDocs). The interface should only contain @operation annotations for Swagger documentation. Please remove this annotation from the interface.

Copilot uses AI. Check for mistakes.
- 권한: HOST
"""
)
@PostMapping("/{groupId}/attendance/{targetUserId}/kick")
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mapping annotation @PostMapping should not be placed in the interface. Following the existing pattern in this file, mapping annotations like @PostMapping, @GetMapping, @PatchMapping, etc. should only be placed in the implementation class (GroupV2Controller), not in the documentation interface (GroupV2ControllerDocs). The interface should only contain @operation annotations for Swagger documentation. Please remove this annotation from the interface.

Copilot uses AI. Check for mistakes.
- 권한: HOST
"""
)
@PostMapping("/{groupId}/attendance/{targetUserId}/ban")
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mapping annotation @PostMapping should not be placed in the interface. Following the existing pattern in this file, mapping annotations like @PostMapping, @GetMapping, @PatchMapping, etc. should only be placed in the implementation class (GroupV2Controller), not in the documentation interface (GroupV2ControllerDocs). The interface should only contain @operation annotations for Swagger documentation. Please remove this annotation from the interface.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[FEAT] V2 모임 스웨거 업데이트

1 participant