Skip to content

Commit

Permalink
docs: #771 신규 구현 API 문서화
Browse files Browse the repository at this point in the history
  • Loading branch information
kelly6bf committed Oct 18, 2024
1 parent 6aee3e0 commit 33d531e
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@
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;
import site.coduo.pairroom.service.dto.PairRoomMemberResponse;
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 {
Expand Down Expand Up @@ -81,4 +83,14 @@ ResponseEntity<Void> 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<ExistMemberInPairRoomResponse> existMemberInPairRoom(
@Parameter(description = "사용자 식별 보안 코드 (쿠키)", required = true)
String credentialToken,
@Parameter(description = "페어룸 접근 코드", required = true)
String pairRoomAccessCode
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -22,7 +23,7 @@

@RequiredArgsConstructor
@RestController
public class RetrospectController {
public class RetrospectController implements RetrospectDocs {

private final RetrospectService retrospectService;

Expand Down
Original file line number Diff line number Diff line change
@@ -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<Void> 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<FindRetrospectsResponse> 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<FindRetrospectByIdResponse> findRetrospectById(
@Parameter(description = "회고 id", required = true) final Long retrospectId
);

@Operation(summary = "특정 회고를 삭제 한다.")
@ApiResponse(responseCode = "204", description = "회고 삭제 성공", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE))
ResponseEntity<Void> 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<ExistRetrospectWithPairRoomResponse> existRetrospectWithPairRoom(
@Parameter(description = "사용자 식별 보안 코드 (쿠키)", required = true)
String credentialToken,
@Parameter(description = "페어룸 접근 코드", required = true)
String pairRoomAccessCode
);
}

0 comments on commit 33d531e

Please sign in to comment.