Skip to content

Commit

Permalink
Merge pull request #93 from Team-Going/feature/90
Browse files Browse the repository at this point in the history
[chore] Trip, User 관련 Swagger 설정
  • Loading branch information
gardening-y authored Jan 16, 2024
2 parents b0f45e3 + 82c02f6 commit 33decb5
Show file tree
Hide file tree
Showing 5 changed files with 693 additions and 3 deletions.
1 change: 1 addition & 0 deletions doorip-api/src/main/java/org/doorip/trip/api/TodoApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ ResponseEntity<BaseResponse<?>> getTripTodos(@Parameter(hidden = true)
@UserId final Long userId,
@PathVariable final Long tripId,
@RequestParam final String category,
@Parameter(name = "progress", description = "complete/incomplete")
@RequestParam final String progress);

@Operation(
Expand Down
311 changes: 311 additions & 0 deletions doorip-api/src/main/java/org/doorip/trip/api/TripApi.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,311 @@
package org.doorip.trip.api;

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.responses.ApiResponse;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.doorip.auth.UserId;
import org.doorip.common.BaseResponse;
import org.doorip.trip.dto.request.TripCreateRequest;
import org.doorip.trip.dto.request.TripEntryRequest;
import org.doorip.trip.dto.request.TripVerifyRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@Tag(name = "여행 관련 API")
@SecurityRequirement(name = "Authorization")
public interface TripApi {
@Operation(
summary = "여행 생성 API",
responses = {
@ApiResponse(
responseCode = "201",
description = "요청이 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "400",
description = "유효하지 않은 날짜 타입입니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 형식이 올바르지 않습니다. Bearer 타입을 확인해 주세요.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 값이 올바르지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰이 만료되었습니다. 재발급 받아주세요.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "존재하지 않는 회원입니다.",
content = @Content),
@ApiResponse(
responseCode = "405",
description = "잘못된 HTTP method 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<?>> createTrip(@Parameter(hidden = true)
@UserId final Long userId,
@RequestBody final TripCreateRequest request);

@Operation(
summary = "여행 대시보드 전체 조회 API",
responses = {
@ApiResponse(
responseCode = "200",
description = "요청이 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "400",
description = "유효하지 않은 요청 파라미터 값입니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 형식이 올바르지 않습니다. Bearer 타입을 확인해 주세요.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 값이 올바르지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰이 만료되었습니다. 재발급 받아주세요.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "존재하지 않는 회원입니다.",
content = @Content),
@ApiResponse(
responseCode = "405",
description = "잘못된 HTTP method 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<?>> getTrips(@Parameter(hidden = true)
@UserId final Long userId,
@Parameter(name = "progress", description = "complete/incomplete")
@RequestParam final String progress);

@Operation(
summary = "초대 코드 검증 API",
responses = {
@ApiResponse(
responseCode = "200",
description = "요청이 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 형식이 올바르지 않습니다. Bearer 타입을 확인해 주세요.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 값이 올바르지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰이 만료되었습니다. 재발급 받아주세요.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "존재하지 않는 여행입니다.",
content = @Content),
@ApiResponse(
responseCode = "405",
description = "잘못된 HTTP method 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<?>> verifyCode(@RequestBody final TripVerifyRequest request);

@Operation(
summary = "여행 입장 API",
responses = {
@ApiResponse(
responseCode = "201",
description = "요청이 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 형식이 올바르지 않습니다. Bearer 타입을 확인해 주세요.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 값이 올바르지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰이 만료되었습니다. 재발급 받아주세요.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "존재하지 않는 회원입니다.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "존재하지 않는 여행입니다.",
content = @Content),
@ApiResponse(
responseCode = "405",
description = "잘못된 HTTP method 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<?>> entryTrip(@PathVariable final Long tripId,
@Parameter(hidden = true)
@UserId final Long userId,
@RequestBody final TripEntryRequest request);

@Operation(
summary = "여행 My TODO 상세 조회 API",
responses = {
@ApiResponse(
responseCode = "200",
description = "요청이 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 형식이 올바르지 않습니다. Bearer 타입을 확인해 주세요.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 값이 올바르지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰이 만료되었습니다. 재발급 받아주세요.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "존재하지 않는 여행입니다.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "해당 여행에 참여자로 존재하지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "405",
description = "잘못된 HTTP method 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<?>> getMyTodoDetail(@Parameter(hidden = true)
@UserId final Long userId,
@PathVariable final Long tripId);

@Operation(
summary = "여행 Our TODO 상세 조회 API",
responses = {
@ApiResponse(
responseCode = "200",
description = "요청이 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 형식이 올바르지 않습니다. Bearer 타입을 확인해 주세요.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 값이 올바르지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰이 만료되었습니다. 재발급 받아주세요.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "존재하지 않는 여행입니다.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "해당 여행에 참여자로 존재하지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "405",
description = "잘못된 HTTP method 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<?>> getOurTodoDetail(@Parameter(hidden = true)
@UserId final Long userId,
@PathVariable final Long tripId);

@Operation(
summary = "여행 친구 전체 조회 API",
responses = {
@ApiResponse(
responseCode = "200",
description = "요청이 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 형식이 올바르지 않습니다. Bearer 타입을 확인해 주세요.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰의 값이 올바르지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "401",
description = "액세스 토큰이 만료되었습니다. 재발급 받아주세요.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "존재하지 않는 여행입니다.",
content = @Content),
@ApiResponse(
responseCode = "404",
description = "해당 여행에 참여자로 존재하지 않습니다.",
content = @Content),
@ApiResponse(
responseCode = "405",
description = "잘못된 HTTP method 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<?>> getParticipants(@Parameter(hidden = true)
@UserId final Long userId,
@PathVariable final Long tripId);
}
Loading

0 comments on commit 33decb5

Please sign in to comment.