generated from pricelees/issue-pr-template
refactor: ReservationSummaryResponse -> ReservationOverviewResponse 클래스명 수정 및 schedule에 추가된 ScheduleOverviewResponse 조회 적용
This commit is contained in:
parent
5a6f7c4763
commit
70b9c58c15
@ -17,10 +17,9 @@ import roomescape.reservation.infrastructure.persistence.*
|
||||
import roomescape.reservation.web.*
|
||||
import roomescape.schedule.business.ScheduleService
|
||||
import roomescape.schedule.infrastructure.persistence.ScheduleStatus
|
||||
import roomescape.schedule.web.ScheduleSummaryResponse
|
||||
import roomescape.schedule.web.ScheduleOverviewResponse
|
||||
import roomescape.schedule.web.ScheduleUpdateRequest
|
||||
import roomescape.theme.business.ThemeService
|
||||
import roomescape.theme.web.ThemeInfoResponse
|
||||
import roomescape.user.business.UserService
|
||||
import roomescape.user.web.UserContactResponse
|
||||
import java.time.LocalDate
|
||||
@ -90,7 +89,7 @@ class ReservationService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findUserSummaryReservation(user: CurrentUserContext): ReservationSummaryListResponse {
|
||||
fun findAllUserReservationOverview(user: CurrentUserContext): ReservationOverviewListResponse {
|
||||
log.info { "[ReservationService.findSummaryByMemberId] 예약 조회 시작: userId=${user.id}" }
|
||||
|
||||
val reservations: List<ReservationEntity> = reservationRepository.findAllByUserIdAndStatusIsIn(
|
||||
@ -98,17 +97,9 @@ class ReservationService(
|
||||
statuses = listOf(ReservationStatus.CONFIRMED, ReservationStatus.CANCELED)
|
||||
)
|
||||
|
||||
return ReservationSummaryListResponse(reservations.map {
|
||||
val schedule: ScheduleSummaryResponse = scheduleService.findSummaryById(it.scheduleId)
|
||||
val theme: ThemeInfoResponse = themeService.findInfoById(schedule.themeId)
|
||||
|
||||
ReservationSummaryResponse(
|
||||
id = it.id,
|
||||
themeName = theme.name,
|
||||
date = schedule.date,
|
||||
startAt = schedule.time,
|
||||
status = it.status
|
||||
)
|
||||
return ReservationOverviewListResponse(reservations.map {
|
||||
val schedule: ScheduleOverviewResponse = scheduleService.findScheduleOverviewById(it.scheduleId)
|
||||
it.toOverviewResponse(schedule)
|
||||
}).also {
|
||||
log.info { "[ReservationService.findSummaryByMemberId] ${it.reservations.size}개의 예약 조회 완료: userId=${user.id}" }
|
||||
}
|
||||
|
||||
@ -50,7 +50,7 @@ interface ReservationAPI {
|
||||
@ApiResponses(ApiResponse(responseCode = "200", useReturnTypeSchema = true))
|
||||
fun findSummaryByMemberId(
|
||||
@User user: CurrentUserContext,
|
||||
): ResponseEntity<CommonApiResponse<ReservationSummaryListResponse>>
|
||||
): ResponseEntity<CommonApiResponse<ReservationOverviewListResponse>>
|
||||
|
||||
@UserOnly
|
||||
@Operation(summary = "특정 예약에 대한 상세 조회")
|
||||
|
||||
@ -57,8 +57,8 @@ class ReservationController(
|
||||
@GetMapping("/summary")
|
||||
override fun findSummaryByMemberId(
|
||||
@User user: CurrentUserContext,
|
||||
): ResponseEntity<CommonApiResponse<ReservationSummaryListResponse>> {
|
||||
val response = reservationService.findUserSummaryReservation(user)
|
||||
): ResponseEntity<CommonApiResponse<ReservationOverviewListResponse>> {
|
||||
val response = reservationService.findAllUserReservationOverview(user)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import jakarta.validation.constraints.NotEmpty
|
||||
import roomescape.payment.web.PaymentWithDetailResponse
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationEntity
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationStatus
|
||||
import roomescape.schedule.web.ScheduleOverviewResponse
|
||||
import roomescape.user.web.UserContactResponse
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalDateTime
|
||||
@ -34,16 +35,30 @@ data class PendingReservationCreateResponse(
|
||||
val id: Long
|
||||
)
|
||||
|
||||
data class ReservationSummaryResponse(
|
||||
data class ReservationOverviewResponse(
|
||||
val id: Long,
|
||||
val storeName: String,
|
||||
val themeName: String,
|
||||
val date: LocalDate,
|
||||
val startAt: LocalTime,
|
||||
val startFrom: LocalTime,
|
||||
val endAt: LocalTime,
|
||||
val status: ReservationStatus
|
||||
)
|
||||
|
||||
data class ReservationSummaryListResponse(
|
||||
val reservations: List<ReservationSummaryResponse>
|
||||
fun ReservationEntity.toOverviewResponse(
|
||||
schedule: ScheduleOverviewResponse
|
||||
) = ReservationOverviewResponse(
|
||||
id = this.id,
|
||||
storeName = schedule.storeName,
|
||||
themeName = schedule.themeName,
|
||||
date = schedule.date,
|
||||
startFrom = schedule.startFrom,
|
||||
endAt = schedule.endAt,
|
||||
status = this.status
|
||||
)
|
||||
|
||||
data class ReservationOverviewListResponse(
|
||||
val reservations: List<ReservationOverviewResponse>
|
||||
)
|
||||
|
||||
data class ReservationDetailResponse(
|
||||
|
||||
@ -21,7 +21,7 @@ import roomescape.reservation.infrastructure.persistence.ReservationRepository
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationStatus
|
||||
import roomescape.reservation.web.MostReservedThemeIdListResponse
|
||||
import roomescape.reservation.web.ReservationCancelRequest
|
||||
import roomescape.reservation.web.ReservationSummaryResponse
|
||||
import roomescape.reservation.web.ReservationOverviewResponse
|
||||
import roomescape.schedule.infrastructure.persistence.ScheduleEntity
|
||||
import roomescape.schedule.infrastructure.persistence.ScheduleRepository
|
||||
import roomescape.schedule.infrastructure.persistence.ScheduleStatus
|
||||
@ -349,7 +349,7 @@ class ReservationApiTest(
|
||||
)
|
||||
}
|
||||
).also { response ->
|
||||
ResponseParser.parseListResponse<ReservationSummaryResponse>(
|
||||
ResponseParser.parseListResponse<ReservationOverviewResponse>(
|
||||
response.extract().path("data.reservations")
|
||||
).forEach {
|
||||
it.status shouldBe ReservationStatus.CONFIRMED
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user