Skip to content

Commit

Permalink
πŸ“ [DOCS] MemoController Swagger λ¬Έμ„œν™”
Browse files Browse the repository at this point in the history
  • Loading branch information
7beunseo committed Dec 7, 2024
1 parent f0ac696 commit f606f99
Showing 1 changed file with 43 additions and 2 deletions.
45 changes: 43 additions & 2 deletions src/main/java/com/carely/backend/controller/docs/MemoAPI.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,63 @@
package com.carely.backend.controller.docs;

import com.carely.backend.dto.memo.CreateMemoDTO;
import com.carely.backend.dto.response.ErrorResponseDTO;
import com.carely.backend.dto.response.ResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
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 org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

public interface MemoAPI {
@Operation(summary = "λ°©λͺ…둝 μž‘μ„±ν•˜κΈ°(λ©”λͺ¨)", description = "λ°©λͺ…둝을 μž‘μ„±ν•©λ‹ˆλ‹€. μž‘μ„±ν•œ λ°©λͺ…둝은 aiκ°€ μš”μ•½ν•©λ‹ˆλ‹€.")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "μ„±κ³΅μ μœΌλ‘œ λ©”λͺ¨λ₯Ό μž‘μ„±ν•œ 경우",
content = @Content(mediaType = "application/json",
schema = @Schema(implementation = ResponseDTO.class),
examples = @ExampleObject(value =
"{ \"status\": 200, \"code\": \"SUCCESS_CREATE_MEMO\", \"message\": \"λ©”λͺ¨λ₯Ό μ„±κ³΅μ μœΌλ‘œ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.\", \"data\": { \"memoId\": 33, \"content\": \"였늘 μ˜€μ „ 9μ‹œμ— μ²΄μ˜¨μ„ μΈ‘μ •ν–ˆμœΌλ©°, 37.2λ„λ‘œ μ•½κ°„μ˜ 열이 μžˆμŠ΅λ‹ˆλ‹€. ν™˜μžκ°€ 식사λ₯Ό 절반 μ •λ„λ§Œ λ“œμ…¨κ³ , ν‰μ†Œλ³΄λ‹€ μ‹μš•μ΄ 떨어진 λͺ¨μŠ΅μ„ λ³΄μ˜€μŠ΅λ‹ˆλ‹€. μ•½λ¬Ό λ³΅μš©μ€ μ˜€μ „ 8μ‹œ μ •μ‹œμ— μ™„λ£Œλ˜μ—ˆμœΌλ©°, λΆ€μž‘μš©μ€ μ—†μŠ΅λ‹ˆλ‹€. 배변은 ν•˜λ£¨ 두 번으둜 정상적인 μƒνƒœλ₯Ό λ³΄μ˜€μ§€λ§Œ, μ•½κ°„μ˜ λ³€λΉ„ 증상이 μžˆμŠ΅λ‹ˆλ‹€. 였늘 물리치료 쀑 κ±ΈμŒκ±Έμ΄κ°€ 이전보닀 쑰금 더 μ•ˆμ •μ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. μ†λ‹˜(보호자)이 μ˜€ν›„ 3μ‹œμ— λ°©λ¬Έν•˜μ—¬ ν™˜μžμ™€ μ•½ 1μ‹œκ°„ λ™μ•ˆ λŒ€ν™”λ₯Ό λ‚˜λˆ΄μŠ΅λ‹ˆλ‹€. ν™˜μžκ°€ 였λ₯Έμͺ½ 무릎 톡증을 ν˜Έμ†Œν•˜μ—¬ λ³΄ν˜Έμžμ—κ²Œ 보고 ν›„ μΆ”κ°€ 검사 ν•„μš”μ„±μ„ μ „λ‹¬ν–ˆμŠ΅λ‹ˆλ‹€. κ΅λŒ€ μ‹œ, ν™˜μžκ°€ 밀사이에 λΆˆμ•ˆκ°μ„ 느껴 μž μ„ μ œλŒ€λ‘œ λͺ» μž€λ‹€λŠ” 점을 λ‹€μŒ κ°„λ³‘μΈμ—κ²Œ μ•Œλ ΈμŠ΅λ‹ˆλ‹€. μ˜€μ „ λͺ©μš•μ„ μ§„ν–‰ν–ˆμœΌλ©°, λŒ€μƒμžκ°€ μƒμΎŒν•˜λ‹€λŠ” λ°˜μ‘μ„ λ³΄μ˜€μŠ΅λ‹ˆλ‹€. ν™˜μžκ°€ 'μ†μžκ°€ 보고 μ‹Άλ‹€'라고 λ§μ”€ν•˜μ…”μ„œ λ³΄ν˜Έμžμ™€ μ˜μƒν†΅ν™”λ₯Ό λ„μ™€λ“œλ ΈμŠ΅λ‹ˆλ‹€.\", \"writerName\": \"κΉ€μ€μ„œ\", \"all\": \"ν™˜μžμ˜ μ²΄μ˜¨μ€ 37.2λ„λ‘œ μ•½κ°„μ˜ 열이 μžˆμŠ΅λ‹ˆλ‹€. λ³€λΉ„ 증상이 μžˆμœΌλ‚˜ 배변은 정상 λ²”μœ„λ₯Ό μœ μ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ‹μ‚¬λŸ‰μ€ ν‰μ†Œμ™€ λΉ„μŠ·ν•©λ‹ˆλ‹€. μ•½λ¬Ό λ³΅μš©μ€ μ •μƒμ μœΌλ‘œ μ΄λ£¨μ–΄μ‘ŒμœΌλ©° λΆ€μž‘μš©μ€ μ—†μŠ΅λ‹ˆλ‹€. 물리치료λ₯Ό 톡해 κ±ΈμŒκ±Έμ΄κ°€ μ•ˆμ •μ μœΌλ‘œ κ°œμ„ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μˆ˜λ©΄μ— 어렀움을 κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. 였λ₯Έμͺ½ λ¬΄λ¦Žμ— 톡증이 μžˆμ–΄ μΆ”κ°€ 검사가 ν•„μš”ν•©λ‹ˆλ‹€. λ°°λ‡¨λŠ” ν•˜λ£¨μ— μ„Έ 번으둜 μ •μƒμž…λ‹ˆλ‹€.\", \"healthy\": \"ν™˜μžμ˜ μ²΄μ˜¨μ€ 37.2λ„μž…λ‹ˆλ‹€.\", \"eat\": \"ν™˜μžλŠ” μ‹μ‚¬λŸ‰μ„ ν‰μ†Œμ™€ λΉ„μŠ·ν•˜κ²Œ μœ μ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ•½λ¬Ό λ³΅μš©μ€ μ •μƒμ μœΌλ‘œ μ΄λ£¨μ–΄μ‘ŒμœΌλ©° λΆ€μž‘μš©μ€ μ—†μŠ΅λ‹ˆλ‹€.\", \"additionalHealth\": \"였λ₯Έμͺ½ λ¬΄λ¦Žμ— 톡증이 μžˆμ–΄ μΆ”κ°€ 검사가 ν•„μš”ν•©λ‹ˆλ‹€.\", \"social\": \"ν™˜μžλŠ” μ†μžμ™€μ˜ μ˜μƒν†΅ν™”λ₯Ό 톡해 λŒ€ν™”λ₯Ό λ‚˜λˆ„μ—ˆμŠ΅λ‹ˆλ‹€.\", \"voiding\": \"배변이 μ •μƒμ μœΌλ‘œ μ΄λ£¨μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€.\" } }"))),

@ApiResponse(responseCode = "400", description = "잘λͺ»λœ μš”μ²­ λ°μ΄ν„°λ‘œ λ©”λͺ¨ 생성 μ‹€νŒ¨",
content = @Content(mediaType = "application/json",
schema = @Schema(implementation = ErrorResponseDTO.class),
examples = @ExampleObject(value =
"{ \"status\": 400, \"code\": \"INVALID_REQUEST\", \"message\": \"μš”μ²­ 데이터가 잘λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\", \"data\": null }")))
})
@Operation(summary = "λ°©λͺ…둝 μž‘μ„±ν•˜κΈ°(λ©”λͺ¨)", description = "λ°©λͺ…둝을 μž‘μ„±ν•©λ‹ˆλ‹€. μž‘μ„±ν•œ λ°©λͺ…둝은 AIκ°€ μš”μ•½ν•©λ‹ˆλ‹€.")
ResponseEntity<ResponseDTO> createMemo(@RequestBody CreateMemoDTO createMemoDTO);

// @Operation(summary = "λ°©λͺ…둝 μ‘°νšŒν•˜κΈ°", description = "λ‹€λ₯Έ μœ μ €κ°€ μž‘μ„±ν•œ λ°©λͺ…둝을 μ‘°νšŒν•©λ‹ˆλ‹€.")
// public ResponseEntity<ResponseDTO> getMemoList(@PathVariable("userId") Long userId);

@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "μ„±κ³΅μ μœΌλ‘œ μžμ›λ΄‰μ‚¬ μš”μ²­ 상세 정보λ₯Ό μ‘°νšŒν•œ 경우",
content = @Content(mediaType = "application/json",
schema = @Schema(implementation = ResponseDTO.class),
examples = @ExampleObject(value =
"{ \"status\": 200, \"code\": \"SUCCESS_RETRIEVE_VOLUNTEER\", \"message\": \"μžμ›λ΄‰μ‚¬ μš”μ²­μ„ μ„±κ³΅μ μœΌλ‘œ μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€.\", \"data\": { \"id\": 5, \"volunteerId\": 51, \"volunteerName\": \"κΉ€μ€μ„œ\", \"volunteerAge\": 0, \"phoneNum\": \"string\", \"address\": \"뒷골 1둜 42\", \"startTime\": \"2024-11-17T04:33:06.36\", \"endTime\": \"2024-11-17T04:33:06.36\", \"durationHours\": 4, \"salary\": 0, \"location\": \"경기도 μš©μΈμ‹œ μˆ˜μ§€κ΅¬ μ–΄λ”˜κ°€\", \"mainTask\": \"섀거지\", \"volunteerType\": \"VOLUNTEER_REQUEST\", \"roomId\": \"c0babffb-a39b-45e5-b326-a964b49e9409\" } }"))),

})
@Operation(summary = "λ©”λͺ¨λ₯Ό μž‘μ„±ν•˜μ§€ μ•Šμ€ 약속 μ‘°νšŒν•˜κΈ°", description = "λ©”λͺ¨λ₯Ό μž‘μ„±ν•˜μ§€ μ•Šμ€ 약속 μ‘°νšŒν•˜κΈ°")
ResponseEntity<ResponseDTO> getNotWrittenVolunteer();

@Operation(summary = "μœ μ €μ˜ μš”μ•½λœ λ©”λͺ¨ μ‘°νšŒν•˜κΈ°", description = "μœ μ €μ˜ μš”μ•½λœ λ©”λͺ¨ μ‘°νšŒν•˜κΈ°")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "μ„±κ³΅μ μœΌλ‘œ λ©”λͺ¨λ₯Ό μ‘°νšŒν•œ 경우",
content = @Content(mediaType = "application/json",
schema = @Schema(implementation = ResponseDTO.class),
examples = @ExampleObject(value =
"{ \"status\": 200, \"code\": \"SUCCESS_RETRIEVE_MEMO\", \"message\": \"μ„±κ³΅μ μœΌλ‘œ λ©”λͺ¨λ₯Ό μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€.\", \"data\": [ { \"memoId\": 32, \"content\": \"였늘 μ˜€μ „ 9μ‹œμ— μ²΄μ˜¨μ„ μΈ‘μ •ν–ˆμœΌλ©°, 37.2λ„λ‘œ μ•½κ°„μ˜ 열이 μžˆμŠ΅λ‹ˆλ‹€. ν™˜μžκ°€ 식사λ₯Ό 절반 μ •λ„λ§Œ λ“œμ…¨κ³ , ν‰μ†Œλ³΄λ‹€ μ‹μš•μ΄ 떨어진 λͺ¨μŠ΅μ„ λ³΄μ˜€μŠ΅λ‹ˆλ‹€...\", \"writerName\": \"κΉ€μ€μ„œ\", \"all\": \"ν™˜μžμ˜ μ²΄μ˜¨μ€ 37.2λ„λ‘œ μ•½κ°„μ˜ 열이 μžˆμŠ΅λ‹ˆλ‹€...\", \"healthy\": \"ν™˜μžμ˜ μ²΄μ˜¨μ€ 37.2λ„λ‘œ μ•½κ°„μ˜ 열이 μžˆμŠ΅λ‹ˆλ‹€.\", \"eat\": \"μ‹μš•μ€ κ°μ†Œν•˜μ˜€μœΌλ‚˜ μ‹μ‚¬λŸ‰μ€ ν‰μ†Œμ™€ λΉ„μŠ·ν•˜λ©°, μ˜μ–‘ λ³΄μΆ©μ œλ„ μ„­μ·¨ν•˜μ˜€μŠ΅λ‹ˆλ‹€...\", \"additionalHealth\": \"λ³€λΉ„ 증상이 μžˆμœΌλ‚˜ 배변은 정상 λ²”μœ„λ₯Ό μœ μ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.\", \"social\": \"μˆ˜λ©΄μ— 어렀움을 κ²ͺκ³  있으며 였λ₯Έμͺ½ 무릎 ν†΅μ¦μœΌλ‘œ μΆ”κ°€ 검사가 ν•„μš”ν•©λ‹ˆλ‹€...\", \"voiding\": null } ] }"))),

@ApiResponse(responseCode = "404", description = "ν•΄λ‹Ή userIdλ₯Ό 찾을 수 μ—†λŠ” 경우",
content = @Content(mediaType = "application/json",
schema = @Schema(implementation = ErrorResponseDTO.class),
examples = @ExampleObject(value =
"{ \"status\": 404, \"code\": \"USER_NOT_FOUND\", \"message\": \"ν•΄λ‹Ή μœ μ €λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.\", \"data\": null }"))),
})
@Operation(summary = "μœ μ €μ˜ μš”μ•½λœ λ©”λͺ¨ μ‘°νšŒν•˜κΈ°", description = "μœ μ €μ˜ μš”μ•½λœ λ©”λͺ¨ μ‘°νšŒν•©λ‹ˆλ‹€.")
ResponseEntity<ResponseDTO> getRecentMemo(@PathVariable("userId") Long userId);

}

0 comments on commit f606f99

Please sign in to comment.