1111import fitfit .global .enums .Provider ;
1212import io .swagger .v3 .oas .annotations .Operation ;
1313import io .swagger .v3 .oas .annotations .tags .Tag ;
14+ import io .swagger .v3 .oas .annotations .media .Content ;
15+ import io .swagger .v3 .oas .annotations .media .Schema ;
16+ import io .swagger .v3 .oas .annotations .responses .ApiResponses ;
1417import jakarta .validation .Valid ;
1518import lombok .RequiredArgsConstructor ;
1619import lombok .extern .slf4j .Slf4j ;
@@ -30,6 +33,12 @@ public class MemberRestController {
3033
3134 @ PostMapping ("/auth/kko" )
3235 @ Operation (summary = "KAKAO OAuth2 로그인 API" , description = "KAKAO OAuth2 로그인 API 입니다." )
36+ @ ApiResponses ({
37+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "200" , description = "OK, 성공" ),
38+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "Bad Request, 잘못된 요청 형식" , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
39+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "유효하지 않은 ID Token 입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
40+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "500" , description = "카카오 토큰 검증 도중 에러 발생" , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
41+ })
3342 public ResponseEntity <ApiResponse <MemberResponseDTO .KkoOAuth2LoginResponse >> kkoOAuth2Login (@ Valid @ RequestBody MemberRequestDTO .KkoOAuth2LoginRequest request ) {
3443 // id_token 검증 후 멤버 데이터 추출
3544 MemberDataDTO .MemberData kakaoMemberData = kakaoOidcService .verifyAndParseIdToken (request );
@@ -43,6 +52,15 @@ public ResponseEntity<ApiResponse<MemberResponseDTO.KkoOAuth2LoginResponse>> kko
4352
4453 @ PostMapping ("/agreements" )
4554 @ Operation (summary = "약관 동의 API" , description = "회원이 약관에 동의하는 API입니다." )
55+ @ ApiResponses ({
56+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "200" , description = "OK, 성공" ),
57+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "Bad Request, 잘못된 요청 형식" , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
58+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "유효하지 않은 JWT 토큰입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
59+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "만료된 JWT 토큰입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
60+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "404" , description = "존재하지 않는 회원입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
61+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "404" , description = "존재하지 않는 약관입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
62+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "필수 약관에 동의하지 않았습니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
63+ })
4664 public ResponseEntity <ApiResponse <MemberResponseDTO .TermAgreementResponse >> termAgreement (
4765 @ RequestHeader (value = "Authorization" , required = false ) String authorization ,
4866 @ Valid @ RequestBody MemberRequestDTO .TermAgreementRequest request ) {
@@ -51,9 +69,30 @@ public ResponseEntity<ApiResponse<MemberResponseDTO.TermAgreementResponse>> term
5169
5270 @ PatchMapping ("/signup" )
5371 @ Operation (summary = "회원가입 완료 API" , description = "회원의 추가 정보(닉네임, 사용자 커스텀 ID, 성별, 생년월일, 프로필 이미지)를 입력하여 회원가입을 완료하는 API입니다." )
72+ @ ApiResponses ({
73+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "200" , description = "OK, 성공" ),
74+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "Bad Request, 잘못된 요청 형식" , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
75+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "유효하지 않은 JWT 토큰입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
76+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "만료된 JWT 토큰입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
77+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "404" , description = "존재하지 않는 회원입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
78+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "회원 필수 정보가 누락되었습니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
79+ })
5480 public ResponseEntity <ApiResponse <MemberResponseDTO .MemberSignupResponse >> signup (
5581 @ RequestHeader (value = "Authorization" , required = false ) String authorization ,
5682 @ Valid @ RequestBody MemberRequestDTO .MemberSignupRequest request ) {
5783 return ResponseEntity .ok (ApiResponse .onSuccess (memberCommandUseCase .memberSignup (authorization , request )));
5884 }
85+
86+ @ PostMapping ("/nickname/check" )
87+ @ Operation (summary = "닉네임 중복 확인 API" , description = "닉네임 중복을 확인하는 API입니다." )
88+ @ ApiResponses ({
89+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "200" , description = "OK, 성공" ),
90+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "400" , description = "Bad Request, 잘못된 요청 형식" , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
91+ @ io .swagger .v3 .oas .annotations .responses .ApiResponse (responseCode = "409" , description = "이미 사용 중인 닉네임입니다." , content = @ Content (schema = @ Schema (implementation = ApiResponse .class ))),
92+ })
93+ public ResponseEntity <ApiResponse <String >> checkNickname (@ Valid @ RequestBody MemberRequestDTO .NicknameCheckRequest request ) {
94+ memberCommandUseCase .checkNickname (request .getNickname ());
95+ return ResponseEntity .ok (ApiResponse .onSuccess ("사용 가능한 닉네임입니다." ));
96+ }
5997}
98+
0 commit comments