Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -123,14 +123,6 @@ public ResponseEntity<Long> updateGuesthouse(
return ResponseEntity.ok(guesthouseId);
}

// @Operation(summary = "홈 화면 게스트하우스 목록 조회 (광고 우선)", description = "게스트하우스 목록을 보여줍니다")
// @GetMapping("/home")
// public ApiResponse<Slice<GuesthouseResponseDTO.HomeSummary>> getGuesthousesForHome(
// @ParameterObject
// @PageableDefault(size = 10) Pageable pageable) {
// return ApiResponse.success(guesthouseQueryService.getGuesthousesForHome(pageable));
// }

@GetMapping("/home")
@Operation(summary = "홈 화면 조회", description = "홈 화면에 출력할 홈 화면 전용 게스트하우스 조회 API입니다.")
public ResponseEntity<ApiResponse<Slice<GuesthouseResponseDTO.HomeSummary>>> getGuesthousesForHome(
Expand Down
29 changes: 25 additions & 4 deletions src/main/java/com/sumte/review/controller/ReviewController.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -35,21 +39,38 @@ public class ReviewController {

@Operation(summary = "리뷰 등록")
@PostMapping
public ResponseEntity<Long> 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<ApiResponse<Long>> 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<Long> updateReview(
public ResponseEntity<ApiResponse<Long>> 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 = "리뷰 삭제")
Expand Down
19 changes: 10 additions & 9 deletions src/main/java/com/sumte/room/controller/RoomController.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,12 @@ public class RoomController {
)
)
)
public ApiResponse<Long> registerRoom(
public ResponseEntity<ApiResponse<Long>> 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}")
Expand Down Expand Up @@ -100,12 +100,12 @@ public ApiResponse<Long> registerRoom(
)
)
)
public ApiResponse<Long> updateRoom(
public ResponseEntity<ApiResponse<Long>> 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}")
Expand All @@ -114,12 +114,12 @@ public ApiResponse<Long> updateRoom(
@Parameter(name = "guesthouseId", description = "숙소 아이디를 넘겨주세요"),
@Parameter(name = "roomId", description = "방 아이디를 넘겨주세요.")
})
public ApiResponse<Void> deleteRoom(
public ResponseEntity<ApiResponse<Void>> deleteRoom(
@PathVariable Long guesthouseId, @PathVariable Long roomId
) {
roomCommandService.deleteRoom(roomId, guesthouseId);

return ApiResponse.successWithNoData();
return ResponseEntity.ok(ApiResponse.successWithNoData());

}

Expand All @@ -135,19 +135,20 @@ public ResponseEntity<ApiResponse<RoomResponseDTO.GetRoomResponse>> getRoom(
return ResponseEntity.ok(ApiResponse.success(result));
}

@GetMapping("/guesthouse/{guesthouseId}/rooms")
@GetMapping("/{guesthouseId}/rooms")
// @Operation(summary = "특정 게스트하우스의 객실 목록 조회", description = "선택한 날짜 기준 예약 가능한 객실만 필터링하거나 전체 보여줄 수 있습니다.")
@Operation(
summary = "특정 게스트하우스의 객실 목록 조회", description = "선택한 날짜 기준으로 예약 가능한 객실만 필터링하거나 전체를 조회할 수 있습니다.\n각 방마다 예약 가능 여부가 포함되어 응답됩니다."
)
public ApiResponse<List<RoomResponseDTO.RoomSummary>> getRoomsByGuesthouse(
public ResponseEntity<ApiResponse<List<RoomResponseDTO.RoomSummary>>> 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)));
}

// 1) 게스트하우스: 앞으로 3개월간 모든 객실 매진일
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<Void> addFavorite(
public ResponseEntity<ApiResponse<Void>> addFavorite(
@PathVariable Long guesthouseId,
@UserId Long userId
) {
Expand Down