From 33d531ede4ba9efdecc9729170852410f0578ada Mon Sep 17 00:00:00 2001 From: kelly6bf Date: Fri, 18 Oct 2024 10:21:56 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20#771=20=EC=8B=A0=EA=B7=9C=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20API=20=EB=AC=B8=EC=84=9C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/docs/PairRoomDocs.java | 12 ++++ .../controller/RetrospectController.java | 3 +- .../controller/docs/RetrospectDocs.java | 61 +++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/java/site/coduo/retrospect/controller/docs/RetrospectDocs.java diff --git a/backend/src/main/java/site/coduo/pairroom/controller/docs/PairRoomDocs.java b/backend/src/main/java/site/coduo/pairroom/controller/docs/PairRoomDocs.java index af71bc5e..bd2760db 100644 --- a/backend/src/main/java/site/coduo/pairroom/controller/docs/PairRoomDocs.java +++ b/backend/src/main/java/site/coduo/pairroom/controller/docs/PairRoomDocs.java @@ -12,6 +12,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; +import site.coduo.pairroom.controller.dto.request.ExistMemberInPairRoomResponse; import site.coduo.pairroom.service.dto.PairRoomCreateRequest; import site.coduo.pairroom.service.dto.PairRoomCreateResponse; import site.coduo.pairroom.service.dto.PairRoomExistResponse; @@ -19,6 +20,7 @@ import site.coduo.pairroom.service.dto.PairRoomReadRequest; import site.coduo.pairroom.service.dto.PairRoomReadResponse; import site.coduo.pairroom.service.dto.PairRoomStatusUpdateRequest; +import site.coduo.retrospect.controller.response.ExistRetrospectWithPairRoomResponse; @Tag(name = "페어룸 API") public interface PairRoomDocs { @@ -81,4 +83,14 @@ ResponseEntity deletePairRoom( @Parameter(description = "페어룸 접근 코드", required = true) String accessCode ); + + @Operation(summary = "특정 회원이 특정 페어룸에 존재하는지 여부를 조회한다.") + @ApiResponse(responseCode = "200", description = "회원 페어룸 참여 여부 조회 성공", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = ExistMemberInPairRoomResponse.class))) + ResponseEntity existMemberInPairRoom( + @Parameter(description = "사용자 식별 보안 코드 (쿠키)", required = true) + String credentialToken, + @Parameter(description = "페어룸 접근 코드", required = true) + String pairRoomAccessCode + ); } diff --git a/backend/src/main/java/site/coduo/retrospect/controller/RetrospectController.java b/backend/src/main/java/site/coduo/retrospect/controller/RetrospectController.java index dd5237ce..dd318a01 100644 --- a/backend/src/main/java/site/coduo/retrospect/controller/RetrospectController.java +++ b/backend/src/main/java/site/coduo/retrospect/controller/RetrospectController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import lombok.RequiredArgsConstructor; +import site.coduo.retrospect.controller.docs.RetrospectDocs; import site.coduo.retrospect.controller.request.CreateRetrospectRequest; import site.coduo.retrospect.controller.response.ExistRetrospectWithPairRoomResponse; import site.coduo.retrospect.controller.response.FindRetrospectByIdResponse; @@ -22,7 +23,7 @@ @RequiredArgsConstructor @RestController -public class RetrospectController { +public class RetrospectController implements RetrospectDocs { private final RetrospectService retrospectService; diff --git a/backend/src/main/java/site/coduo/retrospect/controller/docs/RetrospectDocs.java b/backend/src/main/java/site/coduo/retrospect/controller/docs/RetrospectDocs.java new file mode 100644 index 00000000..55843b67 --- /dev/null +++ b/backend/src/main/java/site/coduo/retrospect/controller/docs/RetrospectDocs.java @@ -0,0 +1,61 @@ +package site.coduo.retrospect.controller.docs; + +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +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 io.swagger.v3.oas.annotations.tags.Tag; +import site.coduo.retrospect.controller.request.CreateRetrospectRequest; +import site.coduo.retrospect.controller.response.ExistRetrospectWithPairRoomResponse; +import site.coduo.retrospect.controller.response.FindRetrospectByIdResponse; +import site.coduo.retrospect.controller.response.FindRetrospectsResponse; + +@Tag(name = "회고 API") +public interface RetrospectDocs { + + @Operation(summary = "회고를 생성한다.") + @ApiResponse(responseCode = "201", description = "회고 생성 성공", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)) + ResponseEntity createRetrospect( + @Parameter(description = "사용자 식별 보안 코드 (쿠키)", required = true) + String credentialToken, + @Parameter(description = "API 요청 바디") + CreateRetrospectRequest request + ); + + @Operation(summary = "특정 사용자의 전체 회고 정보를 조회한다.") + @ApiResponse(responseCode = "200", description = "전체 회고 정보 조회 성공", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = FindRetrospectsResponse.class))) + ResponseEntity findRetrospects( + @Parameter(description = "사용자 식별 보안 코드 (쿠키)", required = true) + String credentialToken + ); + + @Operation(summary = "특정 회고를 상세 조회 한다.") + @ApiResponse(responseCode = "200", description = "회고 상세 조회 성공", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = FindRetrospectByIdResponse.class))) + ResponseEntity findRetrospectById( + @Parameter(description = "회고 id", required = true) final Long retrospectId + ); + + @Operation(summary = "특정 회고를 삭제 한다.") + @ApiResponse(responseCode = "204", description = "회고 삭제 성공", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)) + ResponseEntity deleteRetrospect( + @Parameter(description = "사용자 식별 보안 코드 (쿠키)", required = true) + String credentialToken, + @Parameter(description = "회고 id", required = true) final Long retrospectId + ); + + @Operation(summary = "특정 회원, 특정 페어룸에 속한 회고의 존재 여부를 조회한다.") + @ApiResponse(responseCode = "200", description = "회고 존재 여부 조회 성공", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = ExistRetrospectWithPairRoomResponse.class))) + ResponseEntity existRetrospectWithPairRoom( + @Parameter(description = "사용자 식별 보안 코드 (쿠키)", required = true) + String credentialToken, + @Parameter(description = "페어룸 접근 코드", required = true) + String pairRoomAccessCode + ); +}