diff --git a/src/main/java/org/routemaster/api/total/domain/attraction/controller/AttractionReviewRestController.java b/src/main/java/org/routemaster/api/total/domain/attraction/controller/AttractionReviewRestController.java index 8b51511..c67e580 100644 --- a/src/main/java/org/routemaster/api/total/domain/attraction/controller/AttractionReviewRestController.java +++ b/src/main/java/org/routemaster/api/total/domain/attraction/controller/AttractionReviewRestController.java @@ -1,8 +1,13 @@ package org.routemaster.api.total.domain.attraction.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import lombok.RequiredArgsConstructor; import org.routemaster.api.total.domain.attraction.data.review.AttractionReview; import org.routemaster.api.total.domain.attraction.data.review.AttractionReviewSaveRequest; +import org.routemaster.api.total.domain.attraction.data.search.AttractionSearchVO; import org.routemaster.api.total.domain.attraction.service.AttractionReviewService; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -19,11 +24,45 @@ public class AttractionReviewRestController { private final AttractionReviewService service; + @Operation( + summary = "관광지 리뷰 조회", + description = "관광지 리뷰 조회", + tags = { + "attraction-review" + } + ) + @ApiResponses({ + @ApiResponse( + responseCode = "200", + description= "Success Response", + content = @Content( + mediaType = "application/json", + schema = @io.swagger.v3.oas.annotations.media.Schema(implementation = AttractionReview.class) + ) + ) + }) @GetMapping("/list/{attractionContentId}") public ResponseEntity> attractionReviewList(@PathVariable(name = "attractionContentId") String attractionContentId) { return new ResponseEntity<>(service.listByContentId(attractionContentId), HttpStatus.OK); } + @Operation( + summary = "관광지 리뷰 저장", + description = "관광지 리뷰 저장", + tags = { + "attraction-review" + } + ) + @ApiResponses({ + @ApiResponse( + responseCode = "200", + description= "Success Response", + content = @Content( + mediaType = "application/json", + schema = @io.swagger.v3.oas.annotations.media.Schema(implementation = AttractionReview.class) + ) + ) + }) @PostMapping("/save") public ResponseEntity> saveAttractionReview(@RequestBody AttractionReviewSaveRequest request) { if (request.getId() == null) { @@ -33,6 +72,13 @@ public ResponseEntity> saveAttractionReview(@RequestBody } } + @Operation( + summary = "관광지 리뷰 삭제", + description = "Attraction content id와 user id로 관광지 리뷰를 삭제", + tags = { + "attraction-review" + } + ) @DeleteMapping("/delete/{attractionContentId}") public ResponseEntity> deleteAttractionReview( @RequestParam(name = "attractionContentId") String attractionContentId, @@ -41,6 +87,19 @@ public ResponseEntity> deleteAttractionReview( return new ResponseEntity<>(service.delete(attractionContentId, userId), HttpStatus.OK); } + @Operation( + summary = "관광지 리뷰 이미지 조회", + description = "Attraction content id에 따른 관광지 리뷰 이미지 URL 조회", + tags = { + "attraction-review" + } + ) + @ApiResponses({ + @ApiResponse( + responseCode = "200", + description= "Success Response" + ) + }) @GetMapping("/list/reviewImages/{attractionContentId}") public ResponseEntity>> attractionReviewImagesList(@PathVariable(name = "attractionContentId") String attractionContentId) { return new ResponseEntity<>(service.listReviewImagesByContentId(attractionContentId), HttpStatus.OK);