generated from pricelees/issue-pr-template
[#34] 회원 / 인증 도메인 재정의 #43
@ -66,14 +66,14 @@ class PaymentService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findDetailByReservationId(reservationId: Long): PaymentRetrieveResponse? {
|
||||
fun findDetailByReservationId(reservationId: Long): PaymentWithDetailResponse? {
|
||||
log.info { "[PaymentService.findDetailByReservationId] 예약 결제 정보 조회 시작: reservationId=$reservationId" }
|
||||
|
||||
val payment: PaymentEntity? = findByReservationIdOrNull(reservationId)
|
||||
val paymentDetail: PaymentDetailEntity? = payment?.let { findDetailByPaymentIdOrNull(it.id) }
|
||||
val cancelDetail: CanceledPaymentEntity? = payment?.let { findCancelByPaymentIdOrNull(it.id) }
|
||||
|
||||
return payment?.toRetrieveResponse(
|
||||
return payment?.toDetailResponse(
|
||||
detail = paymentDetail?.toPaymentDetailResponse(),
|
||||
cancel = cancelDetail?.toCancelDetailResponse()
|
||||
)
|
||||
|
||||
@ -27,7 +27,7 @@ data class PaymentCancelRequest(
|
||||
val requestedAt: LocalDateTime = LocalDateTime.now()
|
||||
)
|
||||
|
||||
data class PaymentRetrieveResponse(
|
||||
data class PaymentWithDetailResponse(
|
||||
val orderId: String,
|
||||
val totalAmount: Int,
|
||||
val method: String,
|
||||
@ -38,11 +38,11 @@ data class PaymentRetrieveResponse(
|
||||
val cancel: PaymentCancelDetailResponse?,
|
||||
)
|
||||
|
||||
fun PaymentEntity.toRetrieveResponse(
|
||||
fun PaymentEntity.toDetailResponse(
|
||||
detail: PaymentDetailResponse?,
|
||||
cancel: PaymentCancelDetailResponse?
|
||||
): PaymentRetrieveResponse {
|
||||
return PaymentRetrieveResponse(
|
||||
): PaymentWithDetailResponse {
|
||||
return PaymentWithDetailResponse(
|
||||
orderId = this.orderId,
|
||||
totalAmount = this.totalAmount,
|
||||
method = this.method.koreanName,
|
||||
|
||||
@ -11,9 +11,9 @@ import roomescape.common.dto.CurrentUserContext
|
||||
import roomescape.common.dto.PrincipalType
|
||||
import roomescape.common.util.DateUtils
|
||||
import roomescape.user.business.UserService
|
||||
import roomescape.user.web.UserContactRetrieveResponse
|
||||
import roomescape.user.web.UserContactResponse
|
||||
import roomescape.payment.business.PaymentService
|
||||
import roomescape.payment.web.PaymentRetrieveResponse
|
||||
import roomescape.payment.web.PaymentWithDetailResponse
|
||||
import roomescape.reservation.exception.ReservationErrorCode
|
||||
import roomescape.reservation.exception.ReservationException
|
||||
import roomescape.reservation.infrastructure.persistence.*
|
||||
@ -23,7 +23,7 @@ import roomescape.schedule.infrastructure.persistence.ScheduleStatus
|
||||
import roomescape.schedule.web.ScheduleSummaryResponse
|
||||
import roomescape.schedule.web.ScheduleUpdateRequest
|
||||
import roomescape.theme.business.ThemeService
|
||||
import roomescape.theme.web.ThemeInfoRetrieveResponse
|
||||
import roomescape.theme.web.ThemeInfoResponse
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalDateTime
|
||||
|
||||
@ -91,7 +91,7 @@ class ReservationService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findUserSummaryReservation(user: CurrentUserContext): ReservationSummaryRetrieveListResponse {
|
||||
fun findUserSummaryReservation(user: CurrentUserContext): ReservationSummaryListResponse {
|
||||
log.info { "[ReservationService.findSummaryByMemberId] 예약 조회 시작: userId=${user.id}" }
|
||||
|
||||
val reservations: List<ReservationEntity> = reservationRepository.findAllByUserIdAndStatusIsIn(
|
||||
@ -99,11 +99,11 @@ class ReservationService(
|
||||
statuses = listOf(ReservationStatus.CONFIRMED, ReservationStatus.CANCELED)
|
||||
)
|
||||
|
||||
return ReservationSummaryRetrieveListResponse(reservations.map {
|
||||
return ReservationSummaryListResponse(reservations.map {
|
||||
val schedule: ScheduleSummaryResponse = scheduleService.findSummaryById(it.scheduleId)
|
||||
val theme: ThemeInfoRetrieveResponse = themeService.findSummaryById(schedule.themeId)
|
||||
val theme: ThemeInfoResponse = themeService.findSummaryById(schedule.themeId)
|
||||
|
||||
ReservationSummaryRetrieveResponse(
|
||||
ReservationSummaryResponse(
|
||||
id = it.id,
|
||||
themeName = theme.name,
|
||||
date = schedule.date,
|
||||
@ -116,12 +116,12 @@ class ReservationService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findDetailById(id: Long): ReservationDetailRetrieveResponse {
|
||||
fun findDetailById(id: Long): ReservationDetailResponse {
|
||||
log.info { "[ReservationService.findDetailById] 예약 상세 조회 시작: reservationId=${id}" }
|
||||
|
||||
val reservation: ReservationEntity = findOrThrow(id)
|
||||
val user: UserContactRetrieveResponse = userService.findContactById(reservation.userId)
|
||||
val paymentDetail: PaymentRetrieveResponse? = paymentService.findDetailByReservationId(id)
|
||||
val user: UserContactResponse = userService.findContactById(reservation.userId)
|
||||
val paymentDetail: PaymentWithDetailResponse? = paymentService.findDetailByReservationId(id)
|
||||
|
||||
return reservation.toReservationDetailRetrieveResponse(
|
||||
user = user,
|
||||
|
||||
@ -8,7 +8,7 @@ import roomescape.reservation.exception.ReservationException
|
||||
import roomescape.reservation.web.PendingReservationCreateRequest
|
||||
import roomescape.schedule.infrastructure.persistence.ScheduleStatus
|
||||
import roomescape.schedule.web.ScheduleSummaryResponse
|
||||
import roomescape.theme.web.ThemeInfoRetrieveResponse
|
||||
import roomescape.theme.web.ThemeInfoResponse
|
||||
|
||||
private val log: KLogger = KotlinLogging.logger {}
|
||||
|
||||
@ -17,7 +17,7 @@ class ReservationValidator {
|
||||
|
||||
fun validateCanCreate(
|
||||
schedule: ScheduleSummaryResponse,
|
||||
theme: ThemeInfoRetrieveResponse,
|
||||
theme: ThemeInfoResponse,
|
||||
request: PendingReservationCreateRequest
|
||||
) {
|
||||
if (schedule.status != ScheduleStatus.HOLD) {
|
||||
|
||||
@ -54,12 +54,12 @@ interface ReservationAPI {
|
||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||
fun findSummaryByMemberId(
|
||||
@CurrentUser user: CurrentUserContext,
|
||||
): ResponseEntity<CommonApiResponse<ReservationSummaryRetrieveListResponse>>
|
||||
): ResponseEntity<CommonApiResponse<ReservationSummaryListResponse>>
|
||||
|
||||
@UserOnly
|
||||
@Operation(summary = "특정 예약에 대한 상세 조회", tags = ["로그인이 필요한 API"])
|
||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||
fun findDetailById(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<ReservationDetailRetrieveResponse>>
|
||||
): ResponseEntity<CommonApiResponse<ReservationDetailResponse>>
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ class ReservationController(
|
||||
@GetMapping("/reservations/summary")
|
||||
override fun findSummaryByMemberId(
|
||||
@CurrentUser user: CurrentUserContext,
|
||||
): ResponseEntity<CommonApiResponse<ReservationSummaryRetrieveListResponse>> {
|
||||
): ResponseEntity<CommonApiResponse<ReservationSummaryListResponse>> {
|
||||
val response = reservationService.findUserSummaryReservation(user)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
@ -65,7 +65,7 @@ class ReservationController(
|
||||
@GetMapping("/reservations/{id}/detail")
|
||||
override fun findDetailById(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<ReservationDetailRetrieveResponse>> {
|
||||
): ResponseEntity<CommonApiResponse<ReservationDetailResponse>> {
|
||||
val response = reservationService.findDetailById(id)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package roomescape.reservation.web
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty
|
||||
import roomescape.user.web.UserContactRetrieveResponse
|
||||
import roomescape.payment.web.PaymentRetrieveResponse
|
||||
import roomescape.user.web.UserContactResponse
|
||||
import roomescape.payment.web.PaymentWithDetailResponse
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationEntity
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationStatus
|
||||
import java.time.LocalDate
|
||||
@ -34,7 +34,7 @@ data class PendingReservationCreateResponse(
|
||||
val id: Long
|
||||
)
|
||||
|
||||
data class ReservationSummaryRetrieveResponse(
|
||||
data class ReservationSummaryResponse(
|
||||
val id: Long,
|
||||
val themeName: String,
|
||||
val date: LocalDate,
|
||||
@ -42,22 +42,22 @@ data class ReservationSummaryRetrieveResponse(
|
||||
val status: ReservationStatus
|
||||
)
|
||||
|
||||
data class ReservationSummaryRetrieveListResponse(
|
||||
val reservations: List<ReservationSummaryRetrieveResponse>
|
||||
data class ReservationSummaryListResponse(
|
||||
val reservations: List<ReservationSummaryResponse>
|
||||
)
|
||||
|
||||
data class ReservationDetailRetrieveResponse(
|
||||
data class ReservationDetailResponse(
|
||||
val id: Long,
|
||||
val user: UserContactRetrieveResponse,
|
||||
val user: UserContactResponse,
|
||||
val applicationDateTime: LocalDateTime,
|
||||
val payment: PaymentRetrieveResponse?,
|
||||
val payment: PaymentWithDetailResponse?,
|
||||
)
|
||||
|
||||
fun ReservationEntity.toReservationDetailRetrieveResponse(
|
||||
user: UserContactRetrieveResponse,
|
||||
payment: PaymentRetrieveResponse?,
|
||||
): ReservationDetailRetrieveResponse {
|
||||
return ReservationDetailRetrieveResponse(
|
||||
user: UserContactResponse,
|
||||
payment: PaymentWithDetailResponse?,
|
||||
): ReservationDetailResponse {
|
||||
return ReservationDetailResponse(
|
||||
id = this.id,
|
||||
user = user,
|
||||
applicationDateTime = this.createdAt,
|
||||
|
||||
@ -37,18 +37,18 @@ class ScheduleService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findSchedules(date: LocalDate, themeId: Long): ScheduleRetrieveListResponse {
|
||||
fun findSchedules(date: LocalDate, themeId: Long): ScheduleListByDateResponse {
|
||||
log.info { "[ScheduleService.findSchedules] 동일한 날짜와 테마인 모든 일정 조회: date=${date}, themeId=${themeId}" }
|
||||
|
||||
return scheduleRepository.findAllByDateAndThemeId(date, themeId)
|
||||
.toRetrieveListResponse()
|
||||
.toListResponse()
|
||||
.also {
|
||||
log.info { "[ScheduleService.findSchedules] date=${date}, themeId=${themeId} 인 ${it.schedules.size}개 일정 조회 완료" }
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findDetail(id: Long): ScheduleDetailRetrieveResponse {
|
||||
fun findDetail(id: Long): ScheduleDetailResponse {
|
||||
log.info { "[ScheduleService.findDetail] 일정 상세 정보조회 시작: id=$id" }
|
||||
|
||||
val schedule: ScheduleEntity = findOrThrow(id)
|
||||
@ -56,7 +56,7 @@ class ScheduleService(
|
||||
val createdBy = adminService.findOperatorById(schedule.createdBy)
|
||||
val updatedBy = adminService.findOperatorById(schedule.updatedBy)
|
||||
|
||||
return schedule.toDetailRetrieveResponse(createdBy, updatedBy)
|
||||
return schedule.toDetailResponse(createdBy, updatedBy)
|
||||
.also {
|
||||
log.info { "[ScheduleService.findDetail] 일정 상세 조회 완료: id=$id" }
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ interface ScheduleAPI {
|
||||
fun findAllTime(
|
||||
@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") date: LocalDate,
|
||||
@RequestParam("themeId") themeId: Long
|
||||
): ResponseEntity<CommonApiResponse<ScheduleRetrieveListResponse>>
|
||||
): ResponseEntity<CommonApiResponse<ScheduleListByDateResponse>>
|
||||
|
||||
@UserOnly
|
||||
@Operation(summary = "일정을 Hold 상태로 변경", tags = ["로그인이 필요한 API"])
|
||||
@ -58,7 +58,7 @@ interface ScheduleAPI {
|
||||
@ApiResponses(ApiResponse(responseCode = "200", description = "감사 정보를 포함하여 일정 상세 조회", useReturnTypeSchema = true))
|
||||
fun findScheduleDetail(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<ScheduleDetailRetrieveResponse>>
|
||||
): ResponseEntity<CommonApiResponse<ScheduleDetailResponse>>
|
||||
|
||||
@AdminOnly(privilege = Privilege.CREATE)
|
||||
@Operation(summary = "일정 생성", tags = ["관리자 로그인이 필요한 API"])
|
||||
|
||||
@ -26,7 +26,7 @@ class ScheduleController(
|
||||
override fun findAllTime(
|
||||
@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") date: LocalDate,
|
||||
@RequestParam("themeId") themeId: Long
|
||||
): ResponseEntity<CommonApiResponse<ScheduleRetrieveListResponse>> {
|
||||
): ResponseEntity<CommonApiResponse<ScheduleListByDateResponse>> {
|
||||
val response = scheduleService.findSchedules(date, themeId)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
@ -35,7 +35,7 @@ class ScheduleController(
|
||||
@GetMapping("/schedules/{id}")
|
||||
override fun findScheduleDetail(
|
||||
@PathVariable("id") id: Long
|
||||
): ResponseEntity<CommonApiResponse<ScheduleDetailRetrieveResponse>> {
|
||||
): ResponseEntity<CommonApiResponse<ScheduleDetailResponse>> {
|
||||
val response = scheduleService.findDetail(id)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
|
||||
@ -11,18 +11,18 @@ data class AvailableThemeIdListResponse(
|
||||
val themeIds: List<Long>
|
||||
)
|
||||
|
||||
data class ScheduleRetrieveResponse(
|
||||
data class ScheduleByDateResponse(
|
||||
val id: Long,
|
||||
val time: LocalTime,
|
||||
val status: ScheduleStatus
|
||||
)
|
||||
|
||||
data class ScheduleRetrieveListResponse(
|
||||
val schedules: List<ScheduleRetrieveResponse>
|
||||
data class ScheduleListByDateResponse(
|
||||
val schedules: List<ScheduleByDateResponse>
|
||||
)
|
||||
|
||||
fun List<ScheduleEntity>.toRetrieveListResponse() = ScheduleRetrieveListResponse(
|
||||
this.map { ScheduleRetrieveResponse(it.id, it.time, it.status) }
|
||||
fun List<ScheduleEntity>.toListResponse() = ScheduleListByDateResponse(
|
||||
this.map { ScheduleByDateResponse(it.id, it.time, it.status) }
|
||||
)
|
||||
|
||||
data class ScheduleCreateRequest(
|
||||
@ -44,7 +44,7 @@ data class ScheduleUpdateRequest(
|
||||
}
|
||||
}
|
||||
|
||||
data class ScheduleDetailRetrieveResponse(
|
||||
data class ScheduleDetailResponse(
|
||||
val id: Long,
|
||||
val date: LocalDate,
|
||||
val time: LocalTime,
|
||||
@ -55,7 +55,7 @@ data class ScheduleDetailRetrieveResponse(
|
||||
val updatedBy: OperatorInfo,
|
||||
)
|
||||
|
||||
fun ScheduleEntity.toDetailRetrieveResponse(createdBy: OperatorInfo, updatedBy: OperatorInfo) = ScheduleDetailRetrieveResponse(
|
||||
fun ScheduleEntity.toDetailResponse(createdBy: OperatorInfo, updatedBy: OperatorInfo) = ScheduleDetailResponse(
|
||||
id = this.id,
|
||||
date = this.date,
|
||||
time = this.time,
|
||||
|
||||
@ -24,7 +24,7 @@ class ThemeService(
|
||||
private val adminService: AdminService
|
||||
) {
|
||||
@Transactional(readOnly = true)
|
||||
fun findThemesByIds(request: ThemeIdListRetrieveResponse): ThemeInfoListRetrieveResponse {
|
||||
fun findThemesByIds(request: ThemeIdListResponse): ThemeInfoListResponse {
|
||||
log.info { "[ThemeService.findThemesByIds] 예약 페이지에서의 테마 목록 조회 시작: themeIds=${request.themeIds}" }
|
||||
val result: MutableList<ThemeEntity> = mutableListOf()
|
||||
|
||||
@ -37,22 +37,22 @@ class ThemeService(
|
||||
result.add(theme)
|
||||
}
|
||||
|
||||
return result.toRetrieveListResponse().also {
|
||||
return result.toListResponse().also {
|
||||
log.info { "[ThemeService.findThemesByIds] ${it.themes.size} / ${request.themeIds.size} 개 테마 조회 완료" }
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findThemesForReservation(): ThemeInfoListRetrieveResponse {
|
||||
fun findThemesForReservation(): ThemeInfoListResponse {
|
||||
log.info { "[ThemeService.findThemesForReservation] 예약 페이지에서의 테마 목록 조회 시작" }
|
||||
|
||||
return themeRepository.findOpenedThemes()
|
||||
.toRetrieveListResponse()
|
||||
.toListResponse()
|
||||
.also { log.info { "[ThemeService.findThemesForReservation] ${it.themes.size}개 테마 조회 완료" } }
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findAdminThemes(): AdminThemeSummaryListRetrieveResponse {
|
||||
fun findAdminThemes(): AdminThemeSummaryListResponse {
|
||||
log.info { "[ThemeService.findAdminThemes] 관리자 페이지에서의 테마 목록 조회 시작" }
|
||||
|
||||
return themeRepository.findAll()
|
||||
@ -61,7 +61,7 @@ class ThemeService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findAdminThemeDetail(id: Long): AdminThemeDetailRetrieveResponse {
|
||||
fun findAdminThemeDetail(id: Long): AdminThemeDetailResponse {
|
||||
log.info { "[ThemeService.findAdminThemeDetail] 관리자 페이지에서의 테마 상세 정보 조회 시작: id=${id}" }
|
||||
|
||||
val theme: ThemeEntity = findOrThrow(id)
|
||||
@ -74,7 +74,7 @@ class ThemeService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findSummaryById(id: Long): ThemeInfoRetrieveResponse {
|
||||
fun findSummaryById(id: Long): ThemeInfoResponse {
|
||||
log.info { "[ThemeService.findById] 테마 조회 시작: id=$id" }
|
||||
|
||||
return findOrThrow(id).toSummaryResponse()
|
||||
|
||||
@ -20,12 +20,12 @@ interface ThemeAPIV2 {
|
||||
@AdminOnly(privilege = Privilege.READ_SUMMARY)
|
||||
@Operation(summary = "모든 테마 조회", description = "관리자 페이지에서 요약된 테마 목록을 조회합니다.", tags = ["관리자 로그인이 필요한 API"])
|
||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||
fun findAdminThemes(): ResponseEntity<CommonApiResponse<AdminThemeSummaryListRetrieveResponse>>
|
||||
fun findAdminThemes(): ResponseEntity<CommonApiResponse<AdminThemeSummaryListResponse>>
|
||||
|
||||
@AdminOnly(privilege = Privilege.READ_DETAIL)
|
||||
@Operation(summary = "테마 상세 조회", description = "해당 테마의 상세 정보를 조회합니다.", tags = ["관리자 로그인이 필요한 API"])
|
||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||
fun findAdminThemeDetail(@PathVariable("id") id: Long): ResponseEntity<CommonApiResponse<AdminThemeDetailRetrieveResponse>>
|
||||
fun findAdminThemeDetail(@PathVariable("id") id: Long): ResponseEntity<CommonApiResponse<AdminThemeDetailResponse>>
|
||||
|
||||
@AdminOnly(privilege = Privilege.CREATE)
|
||||
@Operation(summary = "테마 추가", tags = ["관리자 로그인이 필요한 API"])
|
||||
@ -48,10 +48,10 @@ interface ThemeAPIV2 {
|
||||
@Public
|
||||
@Operation(summary = "예약 페이지에서 모든 테마 조회", description = "모든 테마를 조회합니다.")
|
||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||
fun findUserThemes(): ResponseEntity<CommonApiResponse<ThemeInfoListRetrieveResponse>>
|
||||
fun findUserThemes(): ResponseEntity<CommonApiResponse<ThemeInfoListResponse>>
|
||||
|
||||
@Public
|
||||
@Operation(summary = "예약 페이지에서 입력한 날짜에 가능한 테마 조회", description = "입력한 날짜에 가능한 테마를 조회합니다.")
|
||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||
fun findThemesByIds(request: ThemeIdListRetrieveResponse): ResponseEntity<CommonApiResponse<ThemeInfoListRetrieveResponse>>
|
||||
fun findThemesByIds(request: ThemeIdListResponse): ResponseEntity<CommonApiResponse<ThemeInfoListResponse>>
|
||||
}
|
||||
|
||||
@ -14,29 +14,29 @@ class ThemeController(
|
||||
|
||||
@PostMapping("/themes/retrieve")
|
||||
override fun findThemesByIds(
|
||||
@RequestBody request: ThemeIdListRetrieveResponse
|
||||
): ResponseEntity<CommonApiResponse<ThemeInfoListRetrieveResponse>> {
|
||||
@RequestBody request: ThemeIdListResponse
|
||||
): ResponseEntity<CommonApiResponse<ThemeInfoListResponse>> {
|
||||
val response = themeService.findThemesByIds(request)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@GetMapping("/v2/themes")
|
||||
override fun findUserThemes(): ResponseEntity<CommonApiResponse<ThemeInfoListRetrieveResponse>> {
|
||||
override fun findUserThemes(): ResponseEntity<CommonApiResponse<ThemeInfoListResponse>> {
|
||||
val response = themeService.findThemesForReservation()
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@GetMapping("/admin/themes")
|
||||
override fun findAdminThemes(): ResponseEntity<CommonApiResponse<AdminThemeSummaryListRetrieveResponse>> {
|
||||
override fun findAdminThemes(): ResponseEntity<CommonApiResponse<AdminThemeSummaryListResponse>> {
|
||||
val response = themeService.findAdminThemes()
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
}
|
||||
|
||||
@GetMapping("/admin/themes/{id}")
|
||||
override fun findAdminThemeDetail(@PathVariable id: Long): ResponseEntity<CommonApiResponse<AdminThemeDetailRetrieveResponse>> {
|
||||
override fun findAdminThemeDetail(@PathVariable id: Long): ResponseEntity<CommonApiResponse<AdminThemeDetailResponse>> {
|
||||
val response = themeService.findAdminThemeDetail(id)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
|
||||
@ -66,7 +66,7 @@ data class ThemeUpdateRequest(
|
||||
}
|
||||
}
|
||||
|
||||
data class AdminThemeSummaryRetrieveResponse(
|
||||
data class AdminThemeSummaryResponse(
|
||||
val id: Long,
|
||||
val name: String,
|
||||
val difficulty: Difficulty,
|
||||
@ -74,7 +74,7 @@ data class AdminThemeSummaryRetrieveResponse(
|
||||
val isOpen: Boolean
|
||||
)
|
||||
|
||||
fun ThemeEntity.toAdminThemeSummaryResponse() = AdminThemeSummaryRetrieveResponse(
|
||||
fun ThemeEntity.toAdminThemeSummaryResponse() = AdminThemeSummaryResponse(
|
||||
id = this.id,
|
||||
name = this.name,
|
||||
difficulty = this.difficulty,
|
||||
@ -82,15 +82,15 @@ fun ThemeEntity.toAdminThemeSummaryResponse() = AdminThemeSummaryRetrieveRespons
|
||||
isOpen = this.isOpen
|
||||
)
|
||||
|
||||
data class AdminThemeSummaryListRetrieveResponse(
|
||||
val themes: List<AdminThemeSummaryRetrieveResponse>
|
||||
data class AdminThemeSummaryListResponse(
|
||||
val themes: List<AdminThemeSummaryResponse>
|
||||
)
|
||||
|
||||
fun List<ThemeEntity>.toAdminThemeSummaryListResponse() = AdminThemeSummaryListRetrieveResponse(
|
||||
fun List<ThemeEntity>.toAdminThemeSummaryListResponse() = AdminThemeSummaryListResponse(
|
||||
themes = this.map { it.toAdminThemeSummaryResponse() }
|
||||
)
|
||||
|
||||
data class AdminThemeDetailRetrieveResponse(
|
||||
data class AdminThemeDetailResponse(
|
||||
val id: Long,
|
||||
val name: String,
|
||||
val description: String,
|
||||
@ -110,7 +110,7 @@ data class AdminThemeDetailRetrieveResponse(
|
||||
)
|
||||
|
||||
fun ThemeEntity.toAdminThemeDetailResponse(createdBy: OperatorInfo, updatedBy: OperatorInfo) =
|
||||
AdminThemeDetailRetrieveResponse(
|
||||
AdminThemeDetailResponse(
|
||||
id = this.id,
|
||||
name = this.name,
|
||||
description = this.description,
|
||||
@ -129,11 +129,11 @@ fun ThemeEntity.toAdminThemeDetailResponse(createdBy: OperatorInfo, updatedBy: O
|
||||
updatedBy = updatedBy
|
||||
)
|
||||
|
||||
data class ThemeIdListRetrieveResponse(
|
||||
data class ThemeIdListResponse(
|
||||
val themeIds: List<Long>
|
||||
)
|
||||
|
||||
data class ThemeInfoRetrieveResponse(
|
||||
data class ThemeInfoResponse(
|
||||
val id: Long,
|
||||
val name: String,
|
||||
val thumbnailUrl: String,
|
||||
@ -147,7 +147,7 @@ data class ThemeInfoRetrieveResponse(
|
||||
val expectedMinutesTo: Short
|
||||
)
|
||||
|
||||
fun ThemeEntity.toSummaryResponse() = ThemeInfoRetrieveResponse(
|
||||
fun ThemeEntity.toSummaryResponse() = ThemeInfoResponse(
|
||||
id = this.id,
|
||||
name = this.name,
|
||||
thumbnailUrl = this.thumbnailUrl,
|
||||
@ -161,10 +161,10 @@ fun ThemeEntity.toSummaryResponse() = ThemeInfoRetrieveResponse(
|
||||
expectedMinutesTo = this.expectedMinutesTo
|
||||
)
|
||||
|
||||
data class ThemeInfoListRetrieveResponse(
|
||||
val themes: List<ThemeInfoRetrieveResponse>
|
||||
data class ThemeInfoListResponse(
|
||||
val themes: List<ThemeInfoResponse>
|
||||
)
|
||||
|
||||
fun List<ThemeEntity>.toRetrieveListResponse() = ThemeInfoListRetrieveResponse(
|
||||
fun List<ThemeEntity>.toListResponse() = ThemeInfoListResponse(
|
||||
themes = this.map { it.toSummaryResponse() }
|
||||
)
|
||||
|
||||
@ -13,7 +13,7 @@ import roomescape.common.dto.UserLoginCredentials
|
||||
import roomescape.user.exception.UserErrorCode
|
||||
import roomescape.user.exception.UserException
|
||||
import roomescape.user.infrastructure.persistence.*
|
||||
import roomescape.user.web.UserContactRetrieveResponse
|
||||
import roomescape.user.web.UserContactResponse
|
||||
import roomescape.user.web.UserCreateRequest
|
||||
import roomescape.user.web.UserCreateResponse
|
||||
import roomescape.user.web.toEntity
|
||||
@ -56,12 +56,12 @@ class UserService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findContactById(id: Long) : UserContactRetrieveResponse {
|
||||
fun findContactById(id: Long) : UserContactResponse {
|
||||
log.info { "[UserService.findContactById] 회원 연락 정보 조회 시작: id=${id}" }
|
||||
|
||||
val user = findOrThrow(id)
|
||||
|
||||
return UserContactRetrieveResponse(user.id, user.name, user.phone)
|
||||
return UserContactResponse(user.id, user.name, user.phone)
|
||||
.also {
|
||||
log.info { "[UserService.findContactById] 회원 연락 정보 조회 완료: id=${id}, name=${it.name}" }
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ import roomescape.auth.web.support.Public
|
||||
import roomescape.auth.web.support.UserOnly
|
||||
import roomescape.common.dto.CurrentUserContext
|
||||
import roomescape.common.dto.response.CommonApiResponse
|
||||
import roomescape.user.web.UserContactRetrieveResponse
|
||||
import roomescape.user.web.UserContactResponse
|
||||
import roomescape.user.web.UserCreateRequest
|
||||
import roomescape.user.web.UserCreateResponse
|
||||
|
||||
@ -43,6 +43,6 @@ interface UserAPI {
|
||||
)
|
||||
fun findContact(
|
||||
@CurrentUser user: CurrentUserContext
|
||||
): ResponseEntity<CommonApiResponse<UserContactRetrieveResponse>>
|
||||
): ResponseEntity<CommonApiResponse<UserContactResponse>>
|
||||
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ class UserController(
|
||||
@GetMapping("/users/contact")
|
||||
override fun findContact(
|
||||
@CurrentUser user: CurrentUserContext
|
||||
): ResponseEntity<CommonApiResponse<UserContactRetrieveResponse>> {
|
||||
): ResponseEntity<CommonApiResponse<UserContactResponse>> {
|
||||
val response = userService.findContactById(user.id)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
|
||||
@ -42,7 +42,7 @@ data class UserCreateResponse(
|
||||
val name: String
|
||||
)
|
||||
|
||||
data class UserContactRetrieveResponse(
|
||||
data class UserContactResponse(
|
||||
val id: Long,
|
||||
val name: String,
|
||||
val phone: String
|
||||
|
||||
@ -14,9 +14,9 @@ import roomescape.payment.infrastructure.persistence.CanceledPaymentEntity
|
||||
import roomescape.payment.infrastructure.persistence.PaymentEntity
|
||||
import roomescape.payment.infrastructure.persistence.PaymentRepository
|
||||
import roomescape.payment.web.PaymentConfirmRequest
|
||||
import roomescape.payment.web.PaymentRetrieveResponse
|
||||
import roomescape.payment.web.PaymentWithDetailResponse
|
||||
import roomescape.payment.web.toPaymentDetailResponse
|
||||
import roomescape.payment.web.toRetrieveResponse
|
||||
import roomescape.payment.web.toDetailResponse
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationEntity
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationRepository
|
||||
import roomescape.reservation.web.PendingReservationCreateRequest
|
||||
@ -171,7 +171,7 @@ class DummyInitializer(
|
||||
cardDetail: CardDetail? = null,
|
||||
easyPayDetail: EasyPayDetail? = null,
|
||||
transferDetail: TransferDetail? = null,
|
||||
): PaymentRetrieveResponse {
|
||||
): PaymentWithDetailResponse {
|
||||
val method = if (easyPayDetail != null) {
|
||||
PaymentMethod.EASY_PAY
|
||||
} else if (cardDetail != null) {
|
||||
@ -200,7 +200,7 @@ class DummyInitializer(
|
||||
|
||||
val detail = paymentWriter.createDetail(clientConfirmResponse, payment.id)
|
||||
|
||||
return payment.toRetrieveResponse(detail = detail.toPaymentDetailResponse(), cancel = null)
|
||||
return payment.toDetailResponse(detail = detail.toPaymentDetailResponse(), cancel = null)
|
||||
}
|
||||
|
||||
fun cancelPayment(
|
||||
|
||||
@ -18,7 +18,7 @@ import roomescape.theme.business.MIN_PRICE
|
||||
import roomescape.theme.exception.ThemeErrorCode
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository
|
||||
import roomescape.theme.web.ThemeIdListRetrieveResponse
|
||||
import roomescape.theme.web.ThemeIdListResponse
|
||||
import roomescape.theme.web.ThemeUpdateRequest
|
||||
import roomescape.supports.*
|
||||
import roomescape.supports.ThemeFixture.createRequest
|
||||
@ -296,7 +296,7 @@ class ThemeApiTest(
|
||||
runTest(
|
||||
token = authUtil.defaultUserLogin(),
|
||||
using = {
|
||||
body(ThemeIdListRetrieveResponse(themeIds))
|
||||
body(ThemeIdListResponse(themeIds))
|
||||
},
|
||||
on = {
|
||||
post("/themes/retrieve")
|
||||
@ -322,7 +322,7 @@ class ThemeApiTest(
|
||||
runTest(
|
||||
token = authUtil.defaultUserLogin(),
|
||||
using = {
|
||||
body(ThemeIdListRetrieveResponse(themeIds))
|
||||
body(ThemeIdListResponse(themeIds))
|
||||
},
|
||||
on = {
|
||||
post("/themes/retrieve")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user