From f585c83197cda39e00b2e5e355d930a158c4b3a0 Mon Sep 17 00:00:00 2001 From: pricelees Date: Tue, 22 Jul 2025 14:46:05 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20payment=EC=97=90=EC=84=9C=20client?= =?UTF-8?q?=EC=97=90=20=EC=8A=B9=EC=9D=B8=20=EC=9A=94=EC=B2=AD=20/=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=EC=97=90=EB=A7=8C=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EB=90=98=EB=8A=94=20DTO=20=ED=8C=A8=ED=82=A4=EC=A7=80=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../payment/business/PaymentService.kt | 12 ++++++---- .../client/TossPaymentClient.kt | 2 -- .../infrastructure/client/TossPaymentDTO.kt | 24 +++++++++++++++++++ .../client/TossPaymentErrorResponse.kt | 6 ----- .../java/roomescape/payment/web/PaymentDTO.kt | 20 ++-------------- .../business/ReservationWithPaymentService.kt | 2 +- .../reservation/web/ReservationController.kt | 4 ++-- .../reservation/web/ReservationRequest.kt | 2 +- .../client/SampleTossPaymentConst.kt | 2 +- .../client/TossPaymentClientTest.kt | 3 +-- .../ReservationWithPaymentServiceTest.kt | 4 ++-- .../web/ReservationControllerTest.kt | 4 ++-- src/test/java/roomescape/util/Fixtures.kt | 6 ++--- 13 files changed, 47 insertions(+), 44 deletions(-) create mode 100644 src/main/java/roomescape/payment/infrastructure/client/TossPaymentDTO.kt delete mode 100644 src/main/java/roomescape/payment/infrastructure/client/TossPaymentErrorResponse.kt diff --git a/src/main/java/roomescape/payment/business/PaymentService.kt b/src/main/java/roomescape/payment/business/PaymentService.kt index a2e555b4..4f198db3 100644 --- a/src/main/java/roomescape/payment/business/PaymentService.kt +++ b/src/main/java/roomescape/payment/business/PaymentService.kt @@ -5,11 +5,15 @@ import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import roomescape.common.exception.ErrorType import roomescape.common.exception.RoomescapeException +import roomescape.payment.infrastructure.client.PaymentApproveResponse import roomescape.payment.infrastructure.persistence.CanceledPaymentEntity import roomescape.payment.infrastructure.persistence.CanceledPaymentRepository import roomescape.payment.infrastructure.persistence.PaymentEntity import roomescape.payment.infrastructure.persistence.PaymentRepository -import roomescape.payment.web.* +import roomescape.payment.web.PaymentCancelRequest +import roomescape.payment.web.PaymentCancelResponse +import roomescape.payment.web.PaymentCreateResponse +import roomescape.payment.web.toCreateResponse import roomescape.reservation.infrastructure.persistence.ReservationEntity import java.time.OffsetDateTime @@ -22,15 +26,15 @@ class PaymentService( fun createPayment( paymentResponse: PaymentApproveResponse, reservation: ReservationEntity - ): ReservationPaymentResponse = PaymentEntity( + ): PaymentCreateResponse = PaymentEntity( orderId = paymentResponse.orderId, paymentKey = paymentResponse.paymentKey, - totalAmount = paymentResponse.totalAmount, + totalAmount = paymentResponse.amount, reservation = reservation, approvedAt = paymentResponse.approvedAt ).also { paymentRepository.save(it) - }.toReservationPaymentResponse() + }.toCreateResponse() @Transactional(readOnly = true) fun isReservationPaid( diff --git a/src/main/java/roomescape/payment/infrastructure/client/TossPaymentClient.kt b/src/main/java/roomescape/payment/infrastructure/client/TossPaymentClient.kt index 1e56ade3..ca72ba2e 100644 --- a/src/main/java/roomescape/payment/infrastructure/client/TossPaymentClient.kt +++ b/src/main/java/roomescape/payment/infrastructure/client/TossPaymentClient.kt @@ -12,8 +12,6 @@ import org.springframework.stereotype.Component import org.springframework.web.client.RestClient import roomescape.common.exception.ErrorType import roomescape.common.exception.RoomescapeException -import roomescape.payment.web.PaymentApproveRequest -import roomescape.payment.web.PaymentApproveResponse import roomescape.payment.web.PaymentCancelRequest import roomescape.payment.web.PaymentCancelResponse import java.io.IOException diff --git a/src/main/java/roomescape/payment/infrastructure/client/TossPaymentDTO.kt b/src/main/java/roomescape/payment/infrastructure/client/TossPaymentDTO.kt new file mode 100644 index 00000000..e7f7ae21 --- /dev/null +++ b/src/main/java/roomescape/payment/infrastructure/client/TossPaymentDTO.kt @@ -0,0 +1,24 @@ +package roomescape.payment.infrastructure.client + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties +import java.time.OffsetDateTime + +data class TossPaymentErrorResponse( + val code: String, + val message: String +) + +data class PaymentApproveRequest( + val paymentKey: String, + val orderId: String, + val amount: Long, + val paymentType: String +) + +@JsonIgnoreProperties(ignoreUnknown = true) +data class PaymentApproveResponse( + val paymentKey: String, + val orderId: String, + val totalAmount: Long, + val approvedAt: OffsetDateTime +) diff --git a/src/main/java/roomescape/payment/infrastructure/client/TossPaymentErrorResponse.kt b/src/main/java/roomescape/payment/infrastructure/client/TossPaymentErrorResponse.kt deleted file mode 100644 index 2f9f9801..00000000 --- a/src/main/java/roomescape/payment/infrastructure/client/TossPaymentErrorResponse.kt +++ /dev/null @@ -1,6 +0,0 @@ -package roomescape.payment.infrastructure.client - -data class TossPaymentErrorResponse( - val code: String, - val message: String -) diff --git a/src/main/java/roomescape/payment/web/PaymentDTO.kt b/src/main/java/roomescape/payment/web/PaymentDTO.kt index 6c594b5d..7c2b8a43 100644 --- a/src/main/java/roomescape/payment/web/PaymentDTO.kt +++ b/src/main/java/roomescape/payment/web/PaymentDTO.kt @@ -1,6 +1,5 @@ package roomescape.payment.web -import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.databind.annotation.JsonDeserialize import roomescape.payment.infrastructure.client.PaymentCancelResponseDeserializer import roomescape.payment.infrastructure.persistence.PaymentEntity @@ -8,21 +7,6 @@ import roomescape.reservation.web.ReservationResponse import roomescape.reservation.web.toCreateResponse import java.time.OffsetDateTime -data class PaymentApproveRequest( - val paymentKey: String, - val orderId: String, - val amount: Long, - val paymentType: String -) - -@JsonIgnoreProperties(ignoreUnknown = true) -data class PaymentApproveResponse( - val paymentKey: String, - val orderId: String, - val approvedAt: OffsetDateTime, - val totalAmount: Long -) - data class PaymentCancelRequest( val paymentKey: String, val amount: Long, @@ -37,7 +21,7 @@ data class PaymentCancelResponse( val canceledAt: OffsetDateTime ) -data class ReservationPaymentResponse( +data class PaymentCreateResponse( val id: Long, val orderId: String, val paymentKey: String, @@ -46,7 +30,7 @@ data class ReservationPaymentResponse( val approvedAt: OffsetDateTime ) -fun PaymentEntity.toReservationPaymentResponse(): ReservationPaymentResponse = ReservationPaymentResponse( +fun PaymentEntity.toCreateResponse(): PaymentCreateResponse = PaymentCreateResponse( id = this.id!!, orderId = this.orderId, paymentKey = this.paymentKey, diff --git a/src/main/java/roomescape/reservation/business/ReservationWithPaymentService.kt b/src/main/java/roomescape/reservation/business/ReservationWithPaymentService.kt index 79418bf3..0210a576 100644 --- a/src/main/java/roomescape/reservation/business/ReservationWithPaymentService.kt +++ b/src/main/java/roomescape/reservation/business/ReservationWithPaymentService.kt @@ -3,7 +3,7 @@ package roomescape.reservation.business import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import roomescape.payment.business.PaymentService -import roomescape.payment.web.PaymentApproveResponse +import roomescape.payment.infrastructure.client.PaymentApproveResponse import roomescape.payment.web.PaymentCancelRequest import roomescape.payment.web.PaymentCancelResponse import roomescape.reservation.infrastructure.persistence.ReservationEntity diff --git a/src/main/java/roomescape/reservation/web/ReservationController.kt b/src/main/java/roomescape/reservation/web/ReservationController.kt index 5a63555c..492c8c80 100644 --- a/src/main/java/roomescape/reservation/web/ReservationController.kt +++ b/src/main/java/roomescape/reservation/web/ReservationController.kt @@ -7,9 +7,9 @@ import org.springframework.web.bind.annotation.* import roomescape.auth.web.support.MemberId import roomescape.common.dto.response.CommonApiResponse import roomescape.common.exception.RoomescapeException +import roomescape.payment.infrastructure.client.PaymentApproveRequest import roomescape.payment.infrastructure.client.TossPaymentClient -import roomescape.payment.web.PaymentApproveRequest -import roomescape.payment.web.PaymentApproveResponse +import roomescape.payment.infrastructure.client.PaymentApproveResponse import roomescape.payment.web.PaymentCancelRequest import roomescape.reservation.business.ReservationService import roomescape.reservation.business.ReservationWithPaymentService diff --git a/src/main/java/roomescape/reservation/web/ReservationRequest.kt b/src/main/java/roomescape/reservation/web/ReservationRequest.kt index c0f6ebea..3ac06436 100644 --- a/src/main/java/roomescape/reservation/web/ReservationRequest.kt +++ b/src/main/java/roomescape/reservation/web/ReservationRequest.kt @@ -2,7 +2,7 @@ package roomescape.reservation.web import com.fasterxml.jackson.annotation.JsonIgnore import io.swagger.v3.oas.annotations.media.Schema -import roomescape.payment.web.PaymentApproveRequest +import roomescape.payment.infrastructure.client.PaymentApproveRequest import java.time.LocalDate @Schema(name = "관리자 예약 저장 요청", description = "관리자의 예약 저장 요청시 사용됩니다.") diff --git a/src/test/java/roomescape/payment/infrastructure/client/SampleTossPaymentConst.kt b/src/test/java/roomescape/payment/infrastructure/client/SampleTossPaymentConst.kt index 69852d90..30f544a9 100644 --- a/src/test/java/roomescape/payment/infrastructure/client/SampleTossPaymentConst.kt +++ b/src/test/java/roomescape/payment/infrastructure/client/SampleTossPaymentConst.kt @@ -1,6 +1,6 @@ package roomescape.payment.infrastructure.client -import roomescape.payment.web.PaymentApproveRequest +import roomescape.payment.infrastructure.client.PaymentApproveRequest import roomescape.payment.web.PaymentCancelRequest import kotlin.math.roundToLong diff --git a/src/test/java/roomescape/payment/infrastructure/client/TossPaymentClientTest.kt b/src/test/java/roomescape/payment/infrastructure/client/TossPaymentClientTest.kt index 3d0780d7..cbb51428 100644 --- a/src/test/java/roomescape/payment/infrastructure/client/TossPaymentClientTest.kt +++ b/src/test/java/roomescape/payment/infrastructure/client/TossPaymentClientTest.kt @@ -16,7 +16,6 @@ import org.springframework.test.web.client.response.MockRestResponseCreators.wit import org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess import roomescape.common.exception.ErrorType import roomescape.common.exception.RoomescapeException -import roomescape.payment.web.PaymentApproveResponse import roomescape.payment.web.PaymentCancelRequest import roomescape.payment.web.PaymentCancelResponse @@ -53,7 +52,7 @@ class TossPaymentClientTest( assertSoftly(paymentResponse) { this.paymentKey shouldBe paymentRequest.paymentKey this.orderId shouldBe paymentRequest.orderId - this.totalAmount shouldBe paymentRequest.amount + this.amount shouldBe paymentRequest.amount } } diff --git a/src/test/java/roomescape/reservation/business/ReservationWithPaymentServiceTest.kt b/src/test/java/roomescape/reservation/business/ReservationWithPaymentServiceTest.kt index 629ec324..3fef3aad 100644 --- a/src/test/java/roomescape/reservation/business/ReservationWithPaymentServiceTest.kt +++ b/src/test/java/roomescape/reservation/business/ReservationWithPaymentServiceTest.kt @@ -10,7 +10,7 @@ import io.mockk.mockk import roomescape.payment.business.PaymentService import roomescape.payment.infrastructure.persistence.PaymentEntity import roomescape.payment.web.PaymentCancelRequest -import roomescape.payment.web.toReservationPaymentResponse +import roomescape.payment.web.toCreateResponse import roomescape.reservation.infrastructure.persistence.ReservationEntity import roomescape.reservation.infrastructure.persistence.ReservationStatus import roomescape.reservation.web.ReservationRequest @@ -53,7 +53,7 @@ class ReservationWithPaymentServiceTest : FunSpec({ every { paymentService.createPayment(paymentApproveResponse, reservationEntity) - } returns paymentEntity.toReservationPaymentResponse() + } returns paymentEntity.toCreateResponse() val result: ReservationResponse = reservationWithPaymentService.addReservationWithPayment( request = reservationRequest, diff --git a/src/test/java/roomescape/reservation/web/ReservationControllerTest.kt b/src/test/java/roomescape/reservation/web/ReservationControllerTest.kt index e37a8245..2db062f3 100644 --- a/src/test/java/roomescape/reservation/web/ReservationControllerTest.kt +++ b/src/test/java/roomescape/reservation/web/ReservationControllerTest.kt @@ -66,7 +66,7 @@ class ReservationControllerTest( val paymentApproveResponse = PaymentFixture.createApproveResponse().copy( paymentKey = reservationRequest.paymentKey, orderId = reservationRequest.orderId, - totalAmount = reservationRequest.amount, + amount = reservationRequest.amount, ) every { @@ -116,7 +116,7 @@ class ReservationControllerTest( val paymentApproveResponse = PaymentFixture.createApproveResponse().copy( paymentKey = reservationRequest.paymentKey, orderId = reservationRequest.orderId, - totalAmount = reservationRequest.amount, + amount = reservationRequest.amount, ) every { diff --git a/src/test/java/roomescape/util/Fixtures.kt b/src/test/java/roomescape/util/Fixtures.kt index 0ce3a9f1..48a8b044 100644 --- a/src/test/java/roomescape/util/Fixtures.kt +++ b/src/test/java/roomescape/util/Fixtures.kt @@ -6,8 +6,8 @@ import roomescape.member.infrastructure.persistence.MemberEntity import roomescape.member.infrastructure.persistence.Role import roomescape.payment.infrastructure.persistence.CanceledPaymentEntity import roomescape.payment.infrastructure.persistence.PaymentEntity -import roomescape.payment.web.PaymentApproveRequest -import roomescape.payment.web.PaymentApproveResponse +import roomescape.payment.infrastructure.client.PaymentApproveRequest +import roomescape.payment.infrastructure.client.PaymentApproveResponse import roomescape.payment.web.PaymentCancelRequest import roomescape.payment.web.PaymentCancelResponse import roomescape.reservation.infrastructure.persistence.ReservationEntity @@ -168,7 +168,7 @@ object PaymentFixture { paymentKey = PAYMENT_KEY, orderId = ORDER_ID, approvedAt = OffsetDateTime.now(), - totalAmount = AMOUNT + amount = AMOUNT ) fun createCancelRequest(): PaymentCancelRequest = PaymentCancelRequest(