diff --git a/backend/src/main/java/com/ody/member/controller/MemberController.java b/backend/src/main/java/com/ody/member/controller/MemberController.java index a42c008ae..b237a9268 100644 --- a/backend/src/main/java/com/ody/member/controller/MemberController.java +++ b/backend/src/main/java/com/ody/member/controller/MemberController.java @@ -24,4 +24,11 @@ public ResponseEntity delete(@AuthMember Member member) { return ResponseEntity.status(HttpStatus.NO_CONTENT) .build(); } + + @Override + @DeleteMapping("/v2/members") + public ResponseEntity deleteV2(@AuthMember Member member) { + return ResponseEntity.status(HttpStatus.NO_CONTENT) + .build(); + } } diff --git a/backend/src/main/java/com/ody/member/controller/MemberControllerSwagger.java b/backend/src/main/java/com/ody/member/controller/MemberControllerSwagger.java index d30dc0b66..849dc6bdb 100644 --- a/backend/src/main/java/com/ody/member/controller/MemberControllerSwagger.java +++ b/backend/src/main/java/com/ody/member/controller/MemberControllerSwagger.java @@ -2,6 +2,7 @@ import com.ody.member.domain.Member; import com.ody.swagger.annotation.ErrorCode401; +import com.ody.swagger.annotation.ErrorCode403; import com.ody.swagger.annotation.ErrorCode500; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -15,10 +16,19 @@ public interface MemberControllerSwagger { @Operation( - summary = "회원 삭제", + summary = "회원 삭제 (deprecated)", responses = @ApiResponse(responseCode = "204", description = "회원 삭제 성공") ) @ErrorCode401 @ErrorCode500 ResponseEntity delete(@Parameter(hidden = true) Member member); + + @Operation( + summary = "회원 삭제", + responses = @ApiResponse(responseCode = "204", description = "회원 삭제 성공") + ) + @ErrorCode401 + @ErrorCode403 + @ErrorCode500 + ResponseEntity deleteV2(@Parameter(hidden = true) Member member); } diff --git a/backend/src/main/java/com/ody/swagger/annotation/ErrorCode403.java b/backend/src/main/java/com/ody/swagger/annotation/ErrorCode403.java new file mode 100644 index 000000000..d823beae5 --- /dev/null +++ b/backend/src/main/java/com/ody/swagger/annotation/ErrorCode403.java @@ -0,0 +1,24 @@ +package com.ody.swagger.annotation; + +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import org.springframework.core.annotation.AliasFor; +import org.springframework.http.ProblemDetail; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@ApiResponse( + responseCode = "403", + description = "권한 문제로 요청 거절", + content = @Content(schema = @Schema(implementation = ProblemDetail.class)) +) +public @interface ErrorCode403 { + + @AliasFor(annotation = ApiResponse.class, attribute = "description") + String description() default "권한 문제로 요청 거절"; +}