From 4ec62263f3b2432ccc534bf1b735fc77cdf5dc0c Mon Sep 17 00:00:00 2001 From: thguss Date: Wed, 20 Mar 2024 16:35:02 +0900 Subject: [PATCH] =?UTF-8?q?[ADD]=20=EC=9D=91=EB=8B=B5=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=ED=83=80=EC=9E=85=20=EC=B6=94=EA=B0=80,=20?= =?UTF-8?q?=EC=8A=A4=EC=9B=A8=EA=B1=B0=20=EC=84=A4=EB=AA=85=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/smeem/api/diary/api/DiaryApi.java | 101 +++++++++++++++--- .../api/diary/api/DiaryApiController.java | 6 +- .../java/com/smeem/api/goal/api/GoalApi.java | 33 ++++-- .../smeem/api/goal/api/GoalApiController.java | 4 +- .../com/smeem/api/topic/api/TopicApi.java | 24 ++++- .../api/topic/api/TopicApiController.java | 2 +- .../com/smeem/api/version/api/VersionApi.java | 12 ++- .../api/version/api/VersionApiController.java | 2 +- 8 files changed, 148 insertions(+), 36 deletions(-) diff --git a/smeem-api/src/main/java/com/smeem/api/diary/api/DiaryApi.java b/smeem-api/src/main/java/com/smeem/api/diary/api/DiaryApi.java index c4d805a2..ecab02e2 100644 --- a/smeem-api/src/main/java/com/smeem/api/diary/api/DiaryApi.java +++ b/smeem-api/src/main/java/com/smeem/api/diary/api/DiaryApi.java @@ -1,12 +1,16 @@ package com.smeem.api.diary.api; +import com.smeem.api.common.dto.FailureResponse; import com.smeem.api.common.dto.SuccessResponse; import com.smeem.api.diary.api.dto.request.DiaryCreateRequest; import com.smeem.api.diary.api.dto.request.DiaryModifyRequest; +import com.smeem.api.diary.api.dto.response.DiaryCreateResponse; import com.smeem.api.diary.api.dto.response.DiaryGetResponse; +import com.smeem.api.diary.api.dto.response.DiaryListGetResponse; 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.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; @@ -26,19 +30,46 @@ public interface DiaryApi { @Parameter(name = "Authorization", description = "Bearer ${Smeem Access Token}", in = HEADER, required = true) @ApiResponses(value = { @ApiResponse(responseCode = "201", description = "성공"), - @ApiResponse(responseCode = "4xx", description = "유효하지 않은 요청"), - @ApiResponse(responseCode = "401", description = "유효하지 않은 토큰"), - @ApiResponse(responseCode = "500", description = "서버 내부 오류") + @ApiResponse( + responseCode = "4xx", + description = "유효하지 않은 요청", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "401", + description = "유효하지 않은 토큰", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) - ResponseEntity> createDiary(Principal principal, @RequestBody DiaryCreateRequest request); + ResponseEntity> createDiary( + Principal principal, + @RequestBody DiaryCreateRequest request + ); @Operation(summary = "일기 상세 조회 API") @Parameter(name = "Authorization", description = "Bearer ${Smeem Access Token}", in = HEADER, required = true) @ApiResponses(value = { @ApiResponse(responseCode = "201", description = "성공"), - @ApiResponse(responseCode = "4xx", description = "유효하지 않은 요청", content = @Content), - @ApiResponse(responseCode = "401", description = "유효하지 않은 토큰", content = @Content), - @ApiResponse(responseCode = "500", description = "서버 내부 오류", content = @Content) + @ApiResponse( + responseCode = "4xx", + description = "유효하지 않은 요청", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "401", + description = "유효하지 않은 토큰", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) ResponseEntity> getDiaryDetail(@PathVariable long diaryId); @@ -46,9 +77,21 @@ public interface DiaryApi { @Parameter(name = "Authorization", description = "Bearer ${Smeem Access Token}", in = HEADER, required = true) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "성공"), - @ApiResponse(responseCode = "4xx", description = "유효하지 않은 요청"), - @ApiResponse(responseCode = "401", description = "유효하지 않은 토큰"), - @ApiResponse(responseCode = "500", description = "서버 내부 오류") + @ApiResponse( + responseCode = "4xx", + description = "유효하지 않은 요청", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "401", + description = "유효하지 않은 토큰", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) ResponseEntity> modifyDiary(@PathVariable long diaryId, @RequestBody DiaryModifyRequest request); @@ -56,9 +99,21 @@ public interface DiaryApi { @Parameter(name = "Authorization", description = "Bearer ${Smeem Access Token}", in = HEADER, required = true) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "성공"), - @ApiResponse(responseCode = "4xx", description = "유효하지 않은 요청"), - @ApiResponse(responseCode = "401", description = "유효하지 않은 토큰"), - @ApiResponse(responseCode = "500", description = "서버 내부 오류") + @ApiResponse( + responseCode = "4xx", + description = "유효하지 않은 요청", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "401", + description = "유효하지 않은 토큰", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) ResponseEntity> deleteDiary(@PathVariable long diaryId); @@ -66,11 +121,23 @@ public interface DiaryApi { @Parameter(name = "Authorization", description = "Bearer ${Smeem Access Token}", in = HEADER, required = true) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "성공"), - @ApiResponse(responseCode = "4xx", description = "유효하지 않은 요청"), - @ApiResponse(responseCode = "401", description = "유효하지 않은 토큰"), - @ApiResponse(responseCode = "500", description = "서버 내부 오류") + @ApiResponse( + responseCode = "4xx", + description = "유효하지 않은 요청", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "401", + description = "유효하지 않은 토큰", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) - ResponseEntity> getDiaries( + ResponseEntity> getDiaries( Principal principal, @RequestParam String start, @RequestParam String end diff --git a/smeem-api/src/main/java/com/smeem/api/diary/api/DiaryApiController.java b/smeem-api/src/main/java/com/smeem/api/diary/api/DiaryApiController.java index 75190f61..7a8df23b 100644 --- a/smeem-api/src/main/java/com/smeem/api/diary/api/DiaryApiController.java +++ b/smeem-api/src/main/java/com/smeem/api/diary/api/DiaryApiController.java @@ -39,7 +39,7 @@ public class DiaryApiController implements DiaryApi { private final DiaryQueryService diaryQueryService; @PostMapping - public ResponseEntity> createDiary(Principal principal, @RequestBody DiaryCreateRequest request) { + public ResponseEntity> createDiary(Principal principal, @RequestBody DiaryCreateRequest request) { val memberId = Util.getMemberId(principal); val response = DiaryCreateResponse.from( diaryCommandService.createDiary(DiaryCreateServiceRequest.of(memberId, request))); @@ -51,7 +51,7 @@ public ResponseEntity> createDiary(Principal principal, @Requ public ResponseEntity> getDiaryDetail(@PathVariable long diaryId) { val response = DiaryGetResponse.from( diaryQueryService.getDiaryDetail(DiaryGetServiceRequest.of(diaryId))); - return ApiResponseUtil.successTest(SUCCESS_GET_DIARY, response); + return ApiResponseUtil.success(SUCCESS_GET_DIARY, response); } @PatchMapping("/{diaryId}") @@ -67,7 +67,7 @@ public ResponseEntity> deleteDiary(@PathVariable long diaryId } @GetMapping - public ResponseEntity> getDiaries( + public ResponseEntity> getDiaries( Principal principal, @RequestParam String start, @RequestParam String end diff --git a/smeem-api/src/main/java/com/smeem/api/goal/api/GoalApi.java b/smeem-api/src/main/java/com/smeem/api/goal/api/GoalApi.java index 2a38b006..5712b295 100644 --- a/smeem-api/src/main/java/com/smeem/api/goal/api/GoalApi.java +++ b/smeem-api/src/main/java/com/smeem/api/goal/api/GoalApi.java @@ -1,8 +1,13 @@ package com.smeem.api.goal.api; +import com.smeem.api.common.dto.FailureResponse; import com.smeem.api.common.dto.SuccessResponse; +import com.smeem.api.goal.api.dto.response.GoalGetResponse; +import com.smeem.api.goal.api.dto.response.GoalListGetResponse; import com.smeem.domain.goal.model.GoalType; import io.swagger.v3.oas.annotations.Operation; +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.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; @@ -15,16 +20,32 @@ public interface GoalApi { @Operation(summary = "목표 전체 목록 조회 API") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "성공"), - @ApiResponse(responseCode = "4xx", description = "유효하지 않은 요청"), - @ApiResponse(responseCode = "500", description = "서버 내부 오류") + @ApiResponse( + responseCode = "4xx", + description = "유효하지 않은 요청", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) - ResponseEntity> getAllGoals(); + ResponseEntity> getAllGoals(); @Operation(summary = "목표 상세 조회 API") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "성공"), - @ApiResponse(responseCode = "4xx", description = "유효하지 않은 요청"), - @ApiResponse(responseCode = "500", description = "서버 내부 오류") + @ApiResponse( + responseCode = "4xx", + description = "유효하지 않은 요청", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) - ResponseEntity> getGoalByType(@PathVariable GoalType type); + ResponseEntity> getGoalByType(@PathVariable GoalType type); } diff --git a/smeem-api/src/main/java/com/smeem/api/goal/api/GoalApiController.java b/smeem-api/src/main/java/com/smeem/api/goal/api/GoalApiController.java index 4cf07890..109fbb0c 100644 --- a/smeem-api/src/main/java/com/smeem/api/goal/api/GoalApiController.java +++ b/smeem-api/src/main/java/com/smeem/api/goal/api/GoalApiController.java @@ -28,13 +28,13 @@ public class GoalApiController implements GoalApi { private final GoalService goalService; @GetMapping - public ResponseEntity> getAllGoals() { + public ResponseEntity> getAllGoals() { val response = GoalListGetResponse.from(goalService.getAllGoals()); return ApiResponseUtil.success(SUCCESS_GET_GOALS, response); } @GetMapping("/{type}") - public ResponseEntity> getGoalByType(@PathVariable GoalType type) { + public ResponseEntity> getGoalByType(@PathVariable GoalType type) { val response = GoalGetResponse.from(goalService.getByType(GoalGetServiceRequest.of(type))); return ApiResponseUtil.success(SUCCESS_GET_GOAL, response); } diff --git a/smeem-api/src/main/java/com/smeem/api/topic/api/TopicApi.java b/smeem-api/src/main/java/com/smeem/api/topic/api/TopicApi.java index fd1318f4..063815c3 100644 --- a/smeem-api/src/main/java/com/smeem/api/topic/api/TopicApi.java +++ b/smeem-api/src/main/java/com/smeem/api/topic/api/TopicApi.java @@ -1,8 +1,12 @@ package com.smeem.api.topic.api; +import com.smeem.api.common.dto.FailureResponse; import com.smeem.api.common.dto.SuccessResponse; +import com.smeem.api.topic.api.dto.response.RandomTopicGetResponse; 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.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; @@ -17,9 +21,21 @@ public interface TopicApi { @Parameter(name = "Authorization", description = "Bearer ${Smeem Access Token}", in = HEADER, required = true) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "성공"), - @ApiResponse(responseCode = "4xx", description = "유효하지 않은 요청"), - @ApiResponse(responseCode = "401", description = "유효하지 않은 토큰"), - @ApiResponse(responseCode = "500", description = "서버 내부 오류") + @ApiResponse( + responseCode = "4xx", + description = "유효하지 않은 요청", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "401", + description = "유효하지 않은 토큰", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ), + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) - ResponseEntity> getTopicByRandom(); + ResponseEntity> getTopicByRandom(); } diff --git a/smeem-api/src/main/java/com/smeem/api/topic/api/TopicApiController.java b/smeem-api/src/main/java/com/smeem/api/topic/api/TopicApiController.java index 149e2513..a68221fa 100644 --- a/smeem-api/src/main/java/com/smeem/api/topic/api/TopicApiController.java +++ b/smeem-api/src/main/java/com/smeem/api/topic/api/TopicApiController.java @@ -22,7 +22,7 @@ public class TopicApiController implements TopicApi { private final TopicService topicService; @GetMapping("/random") - public ResponseEntity> getTopicByRandom() { + public ResponseEntity> getTopicByRandom() { val response = RandomTopicGetResponse.from(topicService.getTopicByRandom()); return ApiResponseUtil.success(SUCCESS_GET_RANDOM_TOPIC, response); } diff --git a/smeem-api/src/main/java/com/smeem/api/version/api/VersionApi.java b/smeem-api/src/main/java/com/smeem/api/version/api/VersionApi.java index 269d9705..ea4bb764 100644 --- a/smeem-api/src/main/java/com/smeem/api/version/api/VersionApi.java +++ b/smeem-api/src/main/java/com/smeem/api/version/api/VersionApi.java @@ -1,7 +1,11 @@ package com.smeem.api.version.api; +import com.smeem.api.common.dto.FailureResponse; import com.smeem.api.common.dto.SuccessResponse; +import com.smeem.api.version.api.dto.response.ClientVersionGetResponse; import io.swagger.v3.oas.annotations.Operation; +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.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; @@ -13,7 +17,11 @@ public interface VersionApi { @Operation(summary = "클라이언트 앱 버전 조회 API") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "성공"), - @ApiResponse(responseCode = "500", description = "서버 내부 오류") + @ApiResponse( + responseCode = "500", + description = "서버 내부 오류", + content = @Content(schema = @Schema(implementation = FailureResponse.class)) + ) }) - ResponseEntity> getClientVersion(); + ResponseEntity> getClientVersion(); } diff --git a/smeem-api/src/main/java/com/smeem/api/version/api/VersionApiController.java b/smeem-api/src/main/java/com/smeem/api/version/api/VersionApiController.java index bb4e2d5e..3fafd8cb 100644 --- a/smeem-api/src/main/java/com/smeem/api/version/api/VersionApiController.java +++ b/smeem-api/src/main/java/com/smeem/api/version/api/VersionApiController.java @@ -21,7 +21,7 @@ public class VersionApiController implements VersionApi { private final VersionService versionService; @GetMapping("/client/app") - public ResponseEntity> getClientVersion() { + public ResponseEntity> getClientVersion() { val response = ClientVersionGetResponse.of(versionService.getClientVersion()); return ApiResponseUtil.success(SUCCESS_GET_APP_VERSION, response); }