Skip to content

Commit

Permalink
docs: 컨트롤러 스웨거 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
eunbc committed Jan 12, 2024
1 parent f88c96a commit 30b85aa
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,33 +19,40 @@
import com.pgms.coredomain.response.ApiResponse;
import com.pgms.coresecurity.security.resolver.CurrentAccount;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;

@Tag(name = "관리자", description = "관리자 관련 API 입니다.")
@RestController
@RequestMapping("/api/v1/admin")
@RequiredArgsConstructor
public class AdminController {

private final AdminService adminService;

@Operation(summary = "회원 목록 조회", description = "회원 목록 조회 API 입니다.")
@GetMapping("/members")
public ResponseEntity<ApiResponse<List<MemberSummaryGetResponse>>> getMembers(
@ModelAttribute @Valid PageCondition pageCondition) {
return ResponseEntity.ok(ApiResponse.ok(adminService.getMembers(pageCondition)));
}

@Operation(summary = "회원 상세 조회", description = "회원 상세 조회 API 입니다.")
@GetMapping("/members/details")
public ResponseEntity<ApiResponse<List<MemberDetailGetResponse>>> getMemberDetails(
@RequestParam List<Long> memberIds) {
return ResponseEntity.ok(ApiResponse.ok(adminService.getMemberDetails(memberIds)));
}

@Operation(summary = "관리자 본인 정보 조회", description = "관리자 본인 정보 조회 API 입니다.")
@GetMapping("/me")
public ResponseEntity<ApiResponse<AdminGetResponse>> getMyInfo(@CurrentAccount Long adminId) {
return ResponseEntity.ok(ApiResponse.ok(adminService.getAdmin(adminId)));
}

@Operation(summary = "관리자 본인 삭제", description = "관리자 본인 삭제 API 입니다.")
@DeleteMapping("/me")
public ResponseEntity<ApiResponse<Void>> deleteMyAccount(@CurrentAccount Long adminId) {
adminService.deleteAdmins(Collections.singletonList(adminId));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,13 @@
import com.pgms.apimember.service.AdminService;
import com.pgms.coredomain.response.ApiResponse;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;

@Tag(name = "슈퍼관리자", description = "슈퍼관리자 관련 API 입니다.")
@RestController
@RequestMapping("/api/v1/admin/management")
@RequiredArgsConstructor
Expand All @@ -38,6 +41,7 @@ public class AdminManagementController { // 슈퍼관리자 전용 컨트롤러
* 관리자 CRUD
*/

@Operation(summary = "관리자 생성", description = "관리자 생성 API 입니다.")
@PostMapping
public ResponseEntity<ApiResponse<Long>> createAdmin(@RequestBody @Valid AdminCreateRequest requestDto) {
final Long adminId = adminService.createAdmin(requestDto);
Expand All @@ -47,12 +51,14 @@ public ResponseEntity<ApiResponse<Long>> createAdmin(@RequestBody @Valid AdminCr
return ResponseEntity.created(uri).body(ApiResponse.created(adminId));
}

@Operation(summary = "관리자 목록 조회", description = "관리자 목록 조회 API 입니다.")
@GetMapping
public ResponseEntity<ApiResponse<List<AdminGetResponse>>> getAdmins(
@ModelAttribute @Valid PageCondition pageCondition) {
return ResponseEntity.ok(ApiResponse.ok(adminService.getAdmins(pageCondition)));
}

@Operation(summary = "관리자 수정", description = "관리자 수정 API 입니다.")
@PatchMapping("/{adminId}")
public ResponseEntity<ApiResponse<Void>> updateAdmin(
@PathVariable Long adminId,
Expand All @@ -61,6 +67,7 @@ public ResponseEntity<ApiResponse<Void>> updateAdmin(
return ResponseEntity.noContent().build();
}

@Operation(summary = "관리자 삭제", description = "관리자 삭제 API 입니다.")
@DeleteMapping
public ResponseEntity<ApiResponse<Void>> deleteAdmins(@RequestParam List<Long> adminIds) {
adminService.deleteAdmins(adminIds);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,12 @@
import com.pgms.coredomain.domain.member.enums.Role;
import com.pgms.coredomain.response.ApiResponse;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;

@Tag(name = "인증", description = "인증 관련 API 입니다.")
@RestController
@RequestMapping("/api/v1/auth")
@RequiredArgsConstructor
Expand All @@ -26,22 +29,24 @@ public class AuthController {
/**
* 로그인
*/
@Operation(summary = "관리자 로그인", description = "관리자 로그인 API 입니다.")
@PostMapping("/admin/login")
public ResponseEntity<ApiResponse<AuthResponse>> adminLogin(@Valid @RequestBody LoginRequest request) {
AuthResponse response = authService.login(request, Role.ROLE_ADMIN);
return ResponseEntity.ok(ApiResponse.ok(response));
}

@Operation(summary = "회원 로그인", description = "회원 로그인 API 입니다.")
@PostMapping("/members/login")
public ResponseEntity<ApiResponse<AuthResponse>> memberLogin(@Valid @RequestBody LoginRequest request) {
// TODO: 나중에 enum으로..?
AuthResponse response = authService.login(request, Role.ROLE_USER);
return ResponseEntity.ok(ApiResponse.ok(response));
}

/**
* 토큰 재발급
*/
@Operation(summary = "토큰 재발급", description = "토큰 재발급 API 입니다.")
@PostMapping("/refresh")
public ResponseEntity<ApiResponse<AuthResponse>> refresh(@RequestBody RefreshTokenRequest request) {
AuthResponse response = authService.refresh(request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,32 @@
import com.pgms.coredomain.response.ApiResponse;
import com.pgms.coresecurity.security.resolver.CurrentAccount;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;

@Tag(name = "회원", description = "회원 관련 API 입니다.")
@RestController
@RequestMapping("/api/v1/members")
@RequiredArgsConstructor
public class MemberController {

private final MemberService memberService;

@Operation(summary = "회원가입", description = "회원가입 API 입니다.")
@PostMapping("/signup")
public ResponseEntity<ApiResponse<Long>> signUp(@RequestBody @Valid MemberSignUpRequest requestDto) {
return ResponseEntity.ok(ApiResponse.ok(memberService.signUp(requestDto)));
}

@Operation(summary = "회원 정보 조회", description = "회원 정보 조회 API 입니다.")
@GetMapping("/me")
public ResponseEntity<ApiResponse<MemberDetailGetResponse>> getMyInfo(@CurrentAccount Long memberId) {
return ResponseEntity.ok(ApiResponse.ok(memberService.getMemberDetail(memberId)));
}

@Operation(summary = "회원 수정", description = "회원 수정 API 입니다.")
@PatchMapping("/me")
public ResponseEntity<Void> updateMyInfo(
@CurrentAccount Long memberId,
Expand All @@ -48,6 +54,7 @@ public ResponseEntity<Void> updateMyInfo(
return ResponseEntity.noContent().build();
}

@Operation(summary = "비밀번호 수정", description = "비밀번호 수정 API 입니다.")
@PatchMapping("/me/password")
public ResponseEntity<Void> updatePassword(
@CurrentAccount Long memberId,
Expand All @@ -56,25 +63,29 @@ public ResponseEntity<Void> updatePassword(
return ResponseEntity.noContent().build();
}

@Operation(summary = "비밀번호 확인", description = "비밀번호 확인 API 입니다.")
@PostMapping("/me/verify-password")
public ResponseEntity<Void> verifyPassword(@CurrentAccount Long memberId,
@RequestBody MemberPasswordVerifyRequest requestDto) {
memberService.verifyPassword(memberId, requestDto.password());
return ResponseEntity.noContent().build();
}

@Operation(summary = "회원 탈퇴", description = "회원 탈퇴 API 입니다.")
@DeleteMapping("/me")
public ResponseEntity<ApiResponse<Void>> deleteMyAccount(@CurrentAccount Long memberId) {
memberService.deleteMember(memberId);
return ResponseEntity.noContent().build();
}

@PostMapping("send-restore-email")
@Operation(summary = "휴면 해제 메일 전송", description = "휴면 해제 메일 전송 API 입니다.")
@PostMapping("/send-restore-email")
public ResponseEntity<ApiResponse<String>> sendRestoreEmail(@RequestBody @Valid MemberRestoreRequest requestDto) {
memberService.sendRestoreEmail(requestDto);
return ResponseEntity.noContent().build();
}

@Operation(summary = "휴면 해제 본인 인증", description = "휴면 해제 본인 인증 API 입니다.")
@PatchMapping("/confirm-restore")
public ResponseEntity<ApiResponse<Void>> confirmRestore(@RequestBody @Valid ConfirmRestoreRequest requestDto) {
memberService.confirmRestoreMember(requestDto);
Expand Down

0 comments on commit 30b85aa

Please sign in to comment.