From 8c3e6f612710c9ebdcdb063f2ddb2376a8f51108 Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Fri, 15 Aug 2025 02:54:41 +0900 Subject: [PATCH] =?UTF-8?q?[REFACTOR]=20controller=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GuesthouseController.java | 8 ----- .../review/controller/ReviewController.java | 29 ++++++++++++++++--- .../sumte/room/controller/RoomController.java | 19 ++++++------ .../user/controller/FavoriteController.java | 5 ++-- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/sumte/guesthouse/controller/GuesthouseController.java b/src/main/java/com/sumte/guesthouse/controller/GuesthouseController.java index 4dd361e..b201964 100644 --- a/src/main/java/com/sumte/guesthouse/controller/GuesthouseController.java +++ b/src/main/java/com/sumte/guesthouse/controller/GuesthouseController.java @@ -123,14 +123,6 @@ public ResponseEntity updateGuesthouse( return ResponseEntity.ok(guesthouseId); } - // @Operation(summary = "홈 화면 게스트하우스 목록 조회 (광고 우선)", description = "게스트하우스 목록을 보여줍니다") - // @GetMapping("/home") - // public ApiResponse> getGuesthousesForHome( - // @ParameterObject - // @PageableDefault(size = 10) Pageable pageable) { - // return ApiResponse.success(guesthouseQueryService.getGuesthousesForHome(pageable)); - // } - @GetMapping("/home") @Operation(summary = "홈 화면 조회", description = "홈 화면에 출력할 홈 화면 전용 게스트하우스 조회 API입니다.") public ResponseEntity>> getGuesthousesForHome( diff --git a/src/main/java/com/sumte/review/controller/ReviewController.java b/src/main/java/com/sumte/review/controller/ReviewController.java index 75f16c9..a8a15ee 100644 --- a/src/main/java/com/sumte/review/controller/ReviewController.java +++ b/src/main/java/com/sumte/review/controller/ReviewController.java @@ -15,12 +15,16 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.sumte.apiPayload.ApiResponse; import com.sumte.review.dto.ReviewRequestDto; import com.sumte.review.dto.ReviewSearchDto; import com.sumte.review.service.ReviewService; import com.sumte.security.authorization.UserId; 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.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -35,21 +39,38 @@ public class ReviewController { @Operation(summary = "리뷰 등록") @PostMapping - public ResponseEntity createReview( + @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "리뷰 등록 요청", + required = true, + content = @Content( + schema = @Schema(implementation = ReviewRequestDto.class), + examples = @ExampleObject( + name = "Guesthouse Update Example", + value = """ + { + "roomId": 1, + "contents": "정~밀 조으네요..", + "score": 5 + } + """ + ) + ) + ) + public ResponseEntity> createReview( @UserId Long userId, @RequestBody @Valid ReviewRequestDto dto) { Long reviewId = reviewService.createReview(userId, dto); - return ResponseEntity.ok(reviewId); + return ResponseEntity.ok(ApiResponse.success(reviewId)); } @Operation(summary = "리뷰 수정") @PatchMapping("/{reviewId}") - public ResponseEntity updateReview( + public ResponseEntity> updateReview( @UserId Long userId, @PathVariable Long reviewId, @RequestBody @Valid ReviewRequestDto dto) { reviewService.updateReview(userId, reviewId, dto); - return ResponseEntity.ok(reviewId); + return ResponseEntity.ok(ApiResponse.success(reviewId)); } @Operation(summary = "리뷰 삭제") diff --git a/src/main/java/com/sumte/room/controller/RoomController.java b/src/main/java/com/sumte/room/controller/RoomController.java index 21b3808..1688a96 100644 --- a/src/main/java/com/sumte/room/controller/RoomController.java +++ b/src/main/java/com/sumte/room/controller/RoomController.java @@ -65,12 +65,12 @@ public class RoomController { ) ) ) - public ApiResponse registerRoom( + public ResponseEntity> registerRoom( @PathVariable Long guesthouseId, @RequestBody @Valid RoomRequestDTO.RegisterRoom dto) { RoomResponseDTO.Registered room = roomCommandService.registerRoom(dto, guesthouseId); Long roomId = room.getRoomId(); - return ApiResponse.created(roomId); + return ResponseEntity.ok(ApiResponse.created(roomId)); } @PatchMapping("/{guesthouseId}/room/{roomId}") @@ -100,12 +100,12 @@ public ApiResponse registerRoom( ) ) ) - public ApiResponse updateRoom( + public ResponseEntity> updateRoom( @PathVariable Long guesthouseId, @PathVariable Long roomId, @RequestBody @Valid RoomRequestDTO.UpdateRoom dto ) { roomCommandService.updateRoom(dto, guesthouseId, roomId); - return ApiResponse.success(roomId); + return ResponseEntity.ok(ApiResponse.success(roomId)); } @DeleteMapping("/{guesthouseId}/room/{roomId}") @@ -114,12 +114,12 @@ public ApiResponse updateRoom( @Parameter(name = "guesthouseId", description = "숙소 아이디를 넘겨주세요"), @Parameter(name = "roomId", description = "방 아이디를 넘겨주세요.") }) - public ApiResponse deleteRoom( + public ResponseEntity> deleteRoom( @PathVariable Long guesthouseId, @PathVariable Long roomId ) { roomCommandService.deleteRoom(roomId, guesthouseId); - return ApiResponse.successWithNoData(); + return ResponseEntity.ok(ApiResponse.successWithNoData()); } @@ -135,19 +135,20 @@ public ResponseEntity> getRoom( return ResponseEntity.ok(ApiResponse.success(result)); } - @GetMapping("/guesthouse/{guesthouseId}/rooms") + @GetMapping("/{guesthouseId}/rooms") // @Operation(summary = "특정 게스트하우스의 객실 목록 조회", description = "선택한 날짜 기준 예약 가능한 객실만 필터링하거나 전체 보여줄 수 있습니다.") @Operation( summary = "특정 게스트하우스의 객실 목록 조회", description = "선택한 날짜 기준으로 예약 가능한 객실만 필터링하거나 전체를 조회할 수 있습니다.\n각 방마다 예약 가능 여부가 포함되어 응답됩니다." ) - public ApiResponse> getRoomsByGuesthouse( + public ResponseEntity>> getRoomsByGuesthouse( @PathVariable Long guesthouseId, @Parameter(description = "체크인 날짜", example = "2025-08-13") @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate startDate, @Parameter(description = "체크아웃 날짜", example = "2025-08-14") @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate endDate ) { - return ApiResponse.success(roomQueryService.getRoomsByGuesthouse(guesthouseId, startDate, endDate)); + return ResponseEntity.ok( + ApiResponse.success(roomQueryService.getRoomsByGuesthouse(guesthouseId, startDate, endDate))); } } diff --git a/src/main/java/com/sumte/user/controller/FavoriteController.java b/src/main/java/com/sumte/user/controller/FavoriteController.java index 108233b..764d102 100644 --- a/src/main/java/com/sumte/user/controller/FavoriteController.java +++ b/src/main/java/com/sumte/user/controller/FavoriteController.java @@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import com.sumte.apiPayload.ApiResponse; import com.sumte.security.authorization.UserId; import com.sumte.user.dto.FavoriteResponseDto; import com.sumte.user.service.FavoriteService; @@ -25,14 +26,14 @@ @Tag(name = "찜", description = "찜 관련 API") @RestController -@RequestMapping("/api/favorites") +@RequestMapping("/favorites") @RequiredArgsConstructor public class FavoriteController { private final FavoriteService favService; @Operation(summary = "찜 추가") @PostMapping("/{guesthouseId}") - public ResponseEntity addFavorite( + public ResponseEntity> addFavorite( @PathVariable Long guesthouseId, @UserId Long userId ) {