From 49a9575861e11a81db6ed9ab2c5ff001cd28ee78 Mon Sep 17 00:00:00 2001 From: Cho Sangwook <82208159+Sangwook02@users.noreply.github.com> Date: Mon, 12 Feb 2024 01:14:39 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20admin=20member=20api=20=EB=AC=B8?= =?UTF-8?q?=EC=84=9C=ED=99=94=20(#46)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: 어드민 controller 문서 작업 * docs: request dto 문서화 --- .../member/api/AdminMemberController.java | 6 +++++ .../dto/request/MemberQueryRequest.java | 18 ++++++++------ .../dto/request/MemberUpdateRequest.java | 24 +++++++++++++------ 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gdschongik/gdsc/domain/member/api/AdminMemberController.java b/src/main/java/com/gdschongik/gdsc/domain/member/api/AdminMemberController.java index 7f7a77de1..a0c77173f 100644 --- a/src/main/java/com/gdschongik/gdsc/domain/member/api/AdminMemberController.java +++ b/src/main/java/com/gdschongik/gdsc/domain/member/api/AdminMemberController.java @@ -4,6 +4,8 @@ import com.gdschongik.gdsc.domain.member.dto.request.MemberQueryRequest; import com.gdschongik.gdsc.domain.member.dto.request.MemberUpdateRequest; import com.gdschongik.gdsc.domain.member.dto.response.MemberFindAllResponse; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; @@ -17,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +@Tag(name = "Admin Member", description = "어드민 회원 관리 API입니다.") @RestController @RequestMapping("/admin/members") @RequiredArgsConstructor @@ -24,18 +27,21 @@ public class AdminMemberController { private final MemberService memberService; + @Operation(summary = "전체 회원 목록 조회", description = "전체 회원 목록을 조회합니다.") @GetMapping public ResponseEntity> getMembers(MemberQueryRequest queryRequest, Pageable pageable) { Page response = memberService.findAll(queryRequest, pageable); return ResponseEntity.ok().body(response); } + @Operation(summary = "회원 탈퇴", description = "회원을 탈퇴시킵니다.") @DeleteMapping("/{memberId}") public ResponseEntity withdrawMember(@PathVariable Long memberId) { memberService.withdrawMember(memberId); return ResponseEntity.ok().build(); } + @Operation(summary = "회원 정보 수정", description = "회원 정보를 수정합니다.") @PutMapping("/{memberId}") public ResponseEntity updateMember( @PathVariable Long memberId, @Valid @RequestBody MemberUpdateRequest request) { diff --git a/src/main/java/com/gdschongik/gdsc/domain/member/dto/request/MemberQueryRequest.java b/src/main/java/com/gdschongik/gdsc/domain/member/dto/request/MemberQueryRequest.java index c88c77670..03206a992 100644 --- a/src/main/java/com/gdschongik/gdsc/domain/member/dto/request/MemberQueryRequest.java +++ b/src/main/java/com/gdschongik/gdsc/domain/member/dto/request/MemberQueryRequest.java @@ -1,10 +1,14 @@ package com.gdschongik.gdsc.domain.member.dto.request; +import static com.gdschongik.gdsc.global.common.constant.RegexConstant.*; + +import io.swagger.v3.oas.annotations.media.Schema; + public record MemberQueryRequest( - String studentId, - String name, - String phone, - String department, - String email, - String discordUsername, - String discordNickname) {} + @Schema(description = "학번", pattern = STUDENT_ID) String studentId, + @Schema(description = "이름") String name, + @Schema(description = "전화번호", pattern = PHONE) String phone, + @Schema(description = "학과") String department, + @Schema(description = "이메일") String email, + @Schema(description = "discord username") String discordUsername, + @Schema(description = "커뮤니티 닉네임", pattern = NICKNAME) String discordNickname) {} diff --git a/src/main/java/com/gdschongik/gdsc/domain/member/dto/request/MemberUpdateRequest.java b/src/main/java/com/gdschongik/gdsc/domain/member/dto/request/MemberUpdateRequest.java index d834c0772..6b0031927 100644 --- a/src/main/java/com/gdschongik/gdsc/domain/member/dto/request/MemberUpdateRequest.java +++ b/src/main/java/com/gdschongik/gdsc/domain/member/dto/request/MemberUpdateRequest.java @@ -2,15 +2,25 @@ import static com.gdschongik.gdsc.global.common.constant.RegexConstant.*; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Pattern; public record MemberUpdateRequest( - @NotBlank @Pattern(regexp = STUDENT_ID, message = "학번은 " + STUDENT_ID + " 형식이어야 합니다.") String studentId, - @NotBlank String name, - @NotBlank @Pattern(regexp = PHONE, message = "전화번호는 " + PHONE + " 형식이어야 합니다.") String phone, - @NotBlank String department, - @NotBlank @Email String email, - @NotBlank String discordUsername, - @NotBlank @Pattern(regexp = NICKNAME, message = "닉네임은 " + NICKNAME + " 형식이어야 합니다.") String nickname) {} + @NotBlank + @Pattern(regexp = STUDENT_ID, message = "학번은 " + STUDENT_ID + " 형식이어야 합니다.") + @Schema(description = "학번", pattern = STUDENT_ID) + String studentId, + @NotBlank @Schema(description = "이름") String name, + @NotBlank + @Pattern(regexp = PHONE, message = "전화번호는 " + PHONE + " 형식이어야 합니다.") + @Schema(description = "전화번호", pattern = PHONE) + String phone, + @NotBlank @Schema(description = "학과") String department, + @NotBlank @Email @Schema(description = "이메일") String email, + @NotBlank @Schema(description = "discord username") String discordUsername, + @NotBlank + @Pattern(regexp = NICKNAME, message = "닉네임은 " + NICKNAME + " 형식이어야 합니다.") + @Schema(description = "커뮤니티 닉네임", pattern = NICKNAME) + String nickname) {}