Skip to content

Commit

Permalink
#6 - Feat: Add attraction review rest docs
Browse files Browse the repository at this point in the history
  • Loading branch information
eun61n00 committed Aug 25, 2023
1 parent 4007040 commit fe175ef
Showing 1 changed file with 59 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<Flux<AttractionReview>> 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<Mono<AttractionReview>> saveAttractionReview(@RequestBody AttractionReviewSaveRequest request) {
if (request.getId() == null) {
Expand All @@ -33,6 +72,13 @@ public ResponseEntity<Mono<AttractionReview>> saveAttractionReview(@RequestBody
}
}

@Operation(
summary = "관광지 리뷰 삭제",
description = "Attraction content id와 user id로 관광지 리뷰를 삭제",
tags = {
"attraction-review"
}
)
@DeleteMapping("/delete/{attractionContentId}")
public ResponseEntity<Mono<Void>> deleteAttractionReview(
@RequestParam(name = "attractionContentId") String attractionContentId,
Expand All @@ -41,6 +87,19 @@ public ResponseEntity<Mono<Void>> 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<Mono<List<String>>> attractionReviewImagesList(@PathVariable(name = "attractionContentId") String attractionContentId) {
return new ResponseEntity<>(service.listReviewImagesByContentId(attractionContentId), HttpStatus.OK);
Expand Down

0 comments on commit fe175ef

Please sign in to comment.