From cf23122e91c8b45c56cf964ebccca4633549242a Mon Sep 17 00:00:00 2001 From: pricelees Date: Wed, 6 Aug 2025 19:09:47 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=ED=81=B4=EB=9E=98=EC=8A=A4=EB=AA=85?= =?UTF-8?q?=20=EC=88=98=EC=A0=95(Query=20->=20Find=20/=20Command=20->=20Wr?= =?UTF-8?q?ite)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ryService.kt => ReservationFindService.kt} | 2 +- .../business/ReservationWithPaymentService.kt | 6 ++-- ...dService.kt => ReservationWriteService.kt} | 2 +- .../reservation/web/ReservationController.kt | 28 ++++++++--------- .../business/ReservationCommandServiceTest.kt | 31 +++++++++---------- .../business/ReservationQueryServiceTest.kt | 12 +++---- .../ReservationWithPaymentServiceTest.kt | 4 +-- 7 files changed, 42 insertions(+), 43 deletions(-) rename src/main/kotlin/roomescape/reservation/business/{ReservationQueryService.kt => ReservationFindService.kt} (98%) rename src/main/kotlin/roomescape/reservation/business/{ReservationCommandService.kt => ReservationWriteService.kt} (99%) diff --git a/src/main/kotlin/roomescape/reservation/business/ReservationQueryService.kt b/src/main/kotlin/roomescape/reservation/business/ReservationFindService.kt similarity index 98% rename from src/main/kotlin/roomescape/reservation/business/ReservationQueryService.kt rename to src/main/kotlin/roomescape/reservation/business/ReservationFindService.kt index 2a0386da..3b2bf390 100644 --- a/src/main/kotlin/roomescape/reservation/business/ReservationQueryService.kt +++ b/src/main/kotlin/roomescape/reservation/business/ReservationFindService.kt @@ -14,7 +14,7 @@ private val log = KotlinLogging.logger {} @Service @Transactional(readOnly = true) -class ReservationQueryService( +class ReservationFindService( private val reservationFinder: ReservationFinder ) { fun findReservations(): ReservationRetrieveListResponse { diff --git a/src/main/kotlin/roomescape/reservation/business/ReservationWithPaymentService.kt b/src/main/kotlin/roomescape/reservation/business/ReservationWithPaymentService.kt index d02d5648..3c50e5de 100644 --- a/src/main/kotlin/roomescape/reservation/business/ReservationWithPaymentService.kt +++ b/src/main/kotlin/roomescape/reservation/business/ReservationWithPaymentService.kt @@ -18,7 +18,7 @@ private val log = KotlinLogging.logger {} @Service @Transactional class ReservationWithPaymentService( - private val reservationCommandService: ReservationCommandService, + private val reservationWriteService: ReservationWriteService, private val paymentService: PaymentService, ) { fun createReservationAndPayment( @@ -28,7 +28,7 @@ class ReservationWithPaymentService( ): ReservationCreateResponse { log.info { "[ReservationWithPaymentService.createReservationAndPayment] 시작: memberId=$memberId, paymentInfo=$approvedPaymentInfo" } - val reservation: ReservationEntity = reservationCommandService.createReservationWithPayment(request, memberId) + val reservation: ReservationEntity = reservationWriteService.createReservationWithPayment(request, memberId) .also { paymentService.createPayment(approvedPaymentInfo, it) } return reservation.toCreateResponse() @@ -50,7 +50,7 @@ class ReservationWithPaymentService( log.info { "[ReservationWithPaymentService.deleteReservationAndPayment] 시작: reservationId=$reservationId" } val paymentCancelRequest = paymentService.createCanceledPayment(reservationId) - reservationCommandService.deleteReservation(reservationId, memberId) + reservationWriteService.deleteReservation(reservationId, memberId) log.info { "[ReservationWithPaymentService.deleteReservationAndPayment] 완료: reservationId=$reservationId" } return paymentCancelRequest } diff --git a/src/main/kotlin/roomescape/reservation/business/ReservationCommandService.kt b/src/main/kotlin/roomescape/reservation/business/ReservationWriteService.kt similarity index 99% rename from src/main/kotlin/roomescape/reservation/business/ReservationCommandService.kt rename to src/main/kotlin/roomescape/reservation/business/ReservationWriteService.kt index bf296ae8..56cbe099 100644 --- a/src/main/kotlin/roomescape/reservation/business/ReservationCommandService.kt +++ b/src/main/kotlin/roomescape/reservation/business/ReservationWriteService.kt @@ -14,7 +14,7 @@ private val log: KLogger = KotlinLogging.logger {} @Service @Transactional -class ReservationCommandService( +class ReservationWriteService( private val reservationFinder: ReservationFinder, private val reservationWriter: ReservationWriter ) { diff --git a/src/main/kotlin/roomescape/reservation/web/ReservationController.kt b/src/main/kotlin/roomescape/reservation/web/ReservationController.kt index 8e4ff5ec..431a57be 100644 --- a/src/main/kotlin/roomescape/reservation/web/ReservationController.kt +++ b/src/main/kotlin/roomescape/reservation/web/ReservationController.kt @@ -10,8 +10,8 @@ import roomescape.payment.infrastructure.client.PaymentApproveRequest import roomescape.payment.infrastructure.client.PaymentApproveResponse import roomescape.payment.infrastructure.client.TossPaymentClient import roomescape.payment.web.PaymentCancelRequest -import roomescape.reservation.business.ReservationCommandService -import roomescape.reservation.business.ReservationQueryService +import roomescape.reservation.business.ReservationWriteService +import roomescape.reservation.business.ReservationFindService import roomescape.reservation.business.ReservationWithPaymentService import roomescape.reservation.docs.ReservationAPI import java.net.URI @@ -20,13 +20,13 @@ import java.time.LocalDate @RestController class ReservationController( private val reservationWithPaymentService: ReservationWithPaymentService, - private val reservationQueryService: ReservationQueryService, - private val reservationCommandService: ReservationCommandService, + private val reservationFindService: ReservationFindService, + private val reservationWriteService: ReservationWriteService, private val paymentClient: TossPaymentClient ) : ReservationAPI { @GetMapping("/reservations") override fun findReservations(): ResponseEntity> { - val response: ReservationRetrieveListResponse = reservationQueryService.findReservations() + val response: ReservationRetrieveListResponse = reservationFindService.findReservations() return ResponseEntity.ok(CommonApiResponse(response)) } @@ -35,7 +35,7 @@ class ReservationController( override fun findReservationsByMemberId( @MemberId @Parameter(hidden = true) memberId: Long ): ResponseEntity> { - val response: MyReservationRetrieveListResponse = reservationQueryService.findReservationsByMemberId(memberId) + val response: MyReservationRetrieveListResponse = reservationFindService.findReservationsByMemberId(memberId) return ResponseEntity.ok(CommonApiResponse(response)) } @@ -47,7 +47,7 @@ class ReservationController( @RequestParam(required = false) dateFrom: LocalDate?, @RequestParam(required = false) dateTo: LocalDate? ): ResponseEntity> { - val response: ReservationRetrieveListResponse = reservationQueryService.searchReservations( + val response: ReservationRetrieveListResponse = reservationFindService.searchReservations( themeId, memberId, dateFrom, @@ -63,7 +63,7 @@ class ReservationController( @PathVariable("id") reservationId: Long ): ResponseEntity> { if (reservationWithPaymentService.isNotPaidReservation(reservationId)) { - reservationCommandService.deleteReservation(reservationId, memberId) + reservationWriteService.deleteReservation(reservationId, memberId) return ResponseEntity.noContent().build() } @@ -116,7 +116,7 @@ class ReservationController( @MemberId @Parameter(hidden = true) memberId: Long, ): ResponseEntity> { val response: ReservationCreateResponse = - reservationCommandService.createReservationByAdmin(adminReservationRequest, memberId) + reservationWriteService.createReservationByAdmin(adminReservationRequest, memberId) return ResponseEntity.created(URI.create("/reservations/${response.id}")) .body(CommonApiResponse(response)) @@ -124,7 +124,7 @@ class ReservationController( @GetMapping("/reservations/waiting") override fun findAllWaiting(): ResponseEntity> { - val response: ReservationRetrieveListResponse = reservationQueryService.findAllWaiting() + val response: ReservationRetrieveListResponse = reservationFindService.findAllWaiting() return ResponseEntity.ok(CommonApiResponse(response)) } @@ -134,7 +134,7 @@ class ReservationController( @Valid @RequestBody waitingCreateRequest: WaitingCreateRequest, @MemberId @Parameter(hidden = true) memberId: Long, ): ResponseEntity> { - val response: ReservationCreateResponse = reservationCommandService.createWaiting( + val response: ReservationCreateResponse = reservationWriteService.createWaiting( waitingCreateRequest, memberId ) @@ -148,7 +148,7 @@ class ReservationController( @MemberId @Parameter(hidden = true) memberId: Long, @PathVariable("id") reservationId: Long ): ResponseEntity> { - reservationCommandService.deleteWaiting(reservationId, memberId) + reservationWriteService.deleteWaiting(reservationId, memberId) return ResponseEntity.noContent().build() } @@ -158,7 +158,7 @@ class ReservationController( @MemberId @Parameter(hidden = true) memberId: Long, @PathVariable("id") reservationId: Long ): ResponseEntity> { - reservationCommandService.confirmWaiting(reservationId, memberId) + reservationWriteService.confirmWaiting(reservationId, memberId) return ResponseEntity.ok().build() } @@ -168,7 +168,7 @@ class ReservationController( @MemberId @Parameter(hidden = true) memberId: Long, @PathVariable("id") reservationId: Long ): ResponseEntity> { - reservationCommandService.deleteWaiting(reservationId, memberId) + reservationWriteService.deleteWaiting(reservationId, memberId) return ResponseEntity.noContent().build() } diff --git a/src/test/kotlin/roomescape/reservation/business/ReservationCommandServiceTest.kt b/src/test/kotlin/roomescape/reservation/business/ReservationCommandServiceTest.kt index 173dcd9d..d75b2366 100644 --- a/src/test/kotlin/roomescape/reservation/business/ReservationCommandServiceTest.kt +++ b/src/test/kotlin/roomescape/reservation/business/ReservationCommandServiceTest.kt @@ -10,7 +10,6 @@ import roomescape.reservation.exception.ReservationErrorCode import roomescape.reservation.exception.ReservationException import roomescape.reservation.implement.ReservationFinder import roomescape.reservation.implement.ReservationWriter -import roomescape.reservation.infrastructure.persistence.ReservationEntity import roomescape.reservation.infrastructure.persistence.ReservationStatus import roomescape.util.MemberFixture import roomescape.util.ReservationFixture @@ -21,7 +20,7 @@ class ReservationCommandServiceTest : FunSpec({ val reservationFinder: ReservationFinder = mockk() val reservationWriter: ReservationWriter = mockk() - val reservationCommandService = ReservationCommandService(reservationFinder, reservationWriter) + val reservationWriteService = ReservationWriteService(reservationFinder, reservationWriter) context("createReservationWithPayment") { val request = ReservationFixture.createRequest() @@ -47,7 +46,7 @@ class ReservationCommandServiceTest : FunSpec({ ) } returns createdReservation - val result = reservationCommandService.createReservationWithPayment(request, memberId) + val result = reservationWriteService.createReservationWithPayment(request, memberId) assertSoftly(result) { this.date shouldBe request.date @@ -64,7 +63,7 @@ class ReservationCommandServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.RESERVATION_DUPLICATED) shouldThrow { - reservationCommandService.createReservationWithPayment(request, memberId) + reservationWriteService.createReservationWithPayment(request, memberId) }.also { it.errorCode shouldBe ReservationErrorCode.RESERVATION_DUPLICATED } @@ -95,7 +94,7 @@ class ReservationCommandServiceTest : FunSpec({ ) } returns createdReservation - val response = reservationCommandService.createReservationByAdmin(request, adminId) + val response = reservationWriteService.createReservationByAdmin(request, adminId) assertSoftly(response) { this.date shouldBe request.date @@ -131,7 +130,7 @@ class ReservationCommandServiceTest : FunSpec({ ) } returns createdWaiting - val response = reservationCommandService.createWaiting(request, memberId) + val response = reservationWriteService.createWaiting(request, memberId) assertSoftly(response) { this.date shouldBe request.date @@ -148,7 +147,7 @@ class ReservationCommandServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.ALREADY_RESERVE) shouldThrow { - reservationCommandService.createWaiting(request, memberId) + reservationWriteService.createWaiting(request, memberId) }.also { it.errorCode shouldBe ReservationErrorCode.ALREADY_RESERVE } @@ -165,7 +164,7 @@ class ReservationCommandServiceTest : FunSpec({ every { reservationWriter.deleteConfirmed(reservation, memberId) } just Runs shouldNotThrow { - reservationCommandService.deleteReservation(reservationId, memberId) + reservationWriteService.deleteReservation(reservationId, memberId) } verify(exactly = 1) { reservationWriter.deleteConfirmed(reservation, memberId) } @@ -177,7 +176,7 @@ class ReservationCommandServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.RESERVATION_NOT_FOUND) shouldThrow { - reservationCommandService.deleteReservation(reservationId, memberId) + reservationWriteService.deleteReservation(reservationId, memberId) }.also { it.errorCode shouldBe ReservationErrorCode.RESERVATION_NOT_FOUND } @@ -190,7 +189,7 @@ class ReservationCommandServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.NOT_RESERVATION_OWNER) shouldThrow { - reservationCommandService.deleteReservation(reservationId, memberId) + reservationWriteService.deleteReservation(reservationId, memberId) }.also { it.errorCode shouldBe ReservationErrorCode.NOT_RESERVATION_OWNER } @@ -205,7 +204,7 @@ class ReservationCommandServiceTest : FunSpec({ every { reservationWriter.confirm(reservationId) } just Runs shouldNotThrow { - reservationCommandService.confirmWaiting(reservationId, memberId) + reservationWriteService.confirmWaiting(reservationId, memberId) } verify(exactly = 1) { reservationWriter.confirm(reservationId) } @@ -217,7 +216,7 @@ class ReservationCommandServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.CONFIRMED_RESERVATION_ALREADY_EXISTS) shouldThrow { - reservationCommandService.confirmWaiting(reservationId, memberId) + reservationWriteService.confirmWaiting(reservationId, memberId) }.also { it.errorCode shouldBe ReservationErrorCode.CONFIRMED_RESERVATION_ALREADY_EXISTS } @@ -238,7 +237,7 @@ class ReservationCommandServiceTest : FunSpec({ every { reservationWriter.deleteWaiting(waitingReservation, memberId) } just Runs shouldNotThrow { - reservationCommandService.deleteWaiting(reservationId, memberId) + reservationWriteService.deleteWaiting(reservationId, memberId) } verify(exactly = 1) { reservationWriter.deleteWaiting(waitingReservation, memberId) } @@ -250,7 +249,7 @@ class ReservationCommandServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.RESERVATION_NOT_FOUND) shouldThrow< ReservationException> { - reservationCommandService.deleteWaiting(reservationId, memberId) + reservationWriteService.deleteWaiting(reservationId, memberId) }.also { it.errorCode shouldBe ReservationErrorCode.RESERVATION_NOT_FOUND } @@ -263,7 +262,7 @@ class ReservationCommandServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.ALREADY_CONFIRMED) shouldThrow { - reservationCommandService.deleteWaiting(reservationId, memberId) + reservationWriteService.deleteWaiting(reservationId, memberId) }.also { it.errorCode shouldBe ReservationErrorCode.ALREADY_CONFIRMED } @@ -276,7 +275,7 @@ class ReservationCommandServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.NOT_RESERVATION_OWNER) shouldThrow { - reservationCommandService.deleteWaiting(reservationId, memberId) + reservationWriteService.deleteWaiting(reservationId, memberId) }.also { it.errorCode shouldBe ReservationErrorCode.NOT_RESERVATION_OWNER } diff --git a/src/test/kotlin/roomescape/reservation/business/ReservationQueryServiceTest.kt b/src/test/kotlin/roomescape/reservation/business/ReservationQueryServiceTest.kt index 0b909840..782b149c 100644 --- a/src/test/kotlin/roomescape/reservation/business/ReservationQueryServiceTest.kt +++ b/src/test/kotlin/roomescape/reservation/business/ReservationQueryServiceTest.kt @@ -20,7 +20,7 @@ import java.time.LocalDate class ReservationQueryServiceTest : FunSpec({ val reservationFinder: ReservationFinder = mockk() - val reservationQueryService = ReservationQueryService(reservationFinder) + val reservationFindService = ReservationFindService(reservationFinder) context("findReservations") { test("정상 응답") { @@ -32,7 +32,7 @@ class ReservationQueryServiceTest : FunSpec({ reservationFinder.findAllByStatuses(*ReservationStatus.confirmedStatus()) } returns confirmedReservations - val response = reservationQueryService.findReservations() + val response = reservationFindService.findReservations() assertSoftly(response.reservations) { this shouldHaveSize 2 @@ -50,7 +50,7 @@ class ReservationQueryServiceTest : FunSpec({ reservationFinder.findAllByStatuses(ReservationStatus.WAITING) } returns waitingReservations - val response = reservationQueryService.findAllWaiting() + val response = reservationFindService.findAllWaiting() assertSoftly(response.reservations) { this shouldHaveSize 2 @@ -67,7 +67,7 @@ class ReservationQueryServiceTest : FunSpec({ reservationFinder.findAllByMemberId(memberId) } returns myReservations - val response = reservationQueryService.findReservationsByMemberId(memberId) + val response = reservationFindService.findReservationsByMemberId(memberId) response.reservations shouldHaveSize 2 } @@ -92,7 +92,7 @@ class ReservationQueryServiceTest : FunSpec({ reservationFinder.searchReservations(themeId, memberId, startFrom, endAt) } returns searchedReservations - val response = reservationQueryService.searchReservations(themeId, memberId, startFrom, endAt) + val response = reservationFindService.searchReservations(themeId, memberId, startFrom, endAt) assertSoftly(response.reservations) { this shouldHaveSize 1 @@ -109,7 +109,7 @@ class ReservationQueryServiceTest : FunSpec({ } throws ReservationException(ReservationErrorCode.INVALID_SEARCH_DATE_RANGE) shouldThrow { - reservationQueryService.searchReservations(themeId, memberId, startFrom, invalidEndAt) + reservationFindService.searchReservations(themeId, memberId, startFrom, invalidEndAt) }.also { it.errorCode shouldBe ReservationErrorCode.INVALID_SEARCH_DATE_RANGE } diff --git a/src/test/kotlin/roomescape/reservation/business/ReservationWithPaymentServiceTest.kt b/src/test/kotlin/roomescape/reservation/business/ReservationWithPaymentServiceTest.kt index 404b6bd4..b3d0ed60 100644 --- a/src/test/kotlin/roomescape/reservation/business/ReservationWithPaymentServiceTest.kt +++ b/src/test/kotlin/roomescape/reservation/business/ReservationWithPaymentServiceTest.kt @@ -18,11 +18,11 @@ import roomescape.reservation.web.ReservationCreateWithPaymentRequest import roomescape.util.* class ReservationWithPaymentServiceTest : FunSpec({ - val reservationService: ReservationCommandService = mockk() + val reservationService: ReservationWriteService = mockk() val paymentService: PaymentService = mockk() val reservationWithPaymentService = ReservationWithPaymentService( - reservationCommandService = reservationService, + reservationWriteService = reservationService, paymentService = paymentService )