[#41] 예약 스키마 재정의 #42

Merged
pricelees merged 41 commits from refactor/#41 into main 2025-09-09 00:43:39 +00:00
Showing only changes of commit 9ce66d8074 - Show all commits

View File

@ -52,7 +52,7 @@ class TosspayClient(
}
private class ConfirmClient(
objectMapper: ObjectMapper,
private val objectMapper: ObjectMapper,
private val client: RestClient,
) {
companion object {
@ -61,27 +61,33 @@ private class ConfirmClient(
private val errorHandler: TosspayErrorHandler = TosspayErrorHandler(objectMapper)
fun request(paymentKey: String, orderId: String, amount: Int): PaymentClientConfirmResponse = client.post()
.uri(CONFIRM_URI)
.contentType(MediaType.APPLICATION_JSON)
.body(
mapOf(
"paymentKey" to paymentKey,
"orderId" to orderId,
"amount" to amount
fun request(paymentKey: String, orderId: String, amount: Int): PaymentClientConfirmResponse {
val response = client.post()
.uri(CONFIRM_URI)
.contentType(MediaType.APPLICATION_JSON)
.body(
mapOf(
"paymentKey" to paymentKey,
"orderId" to orderId,
"amount" to amount
)
)
)
.retrieve()
.onStatus(errorHandler)
.body(PaymentClientConfirmResponse::class.java)
?: run {
log.error { "[TosspayConfirmClient.request] 응답 바디 변환 실패" }
throw PaymentException(PaymentErrorCode.PAYMENT_UNEXPECTED_ERROR)
}
.retrieve()
.onStatus(errorHandler)
.body(String::class.java)
?: run {
log.error { "[TosspayClient] 응답 바디 변환 실패" }
throw PaymentException(PaymentErrorCode.PAYMENT_UNEXPECTED_ERROR)
}
log.debug { "[TosspayClient.confirm] 응답 수신: json = $response" }
return objectMapper.readValue(response, PaymentClientConfirmResponse::class.java)
}
}
private class CancelClient(
objectMapper: ObjectMapper,
private val objectMapper: ObjectMapper,
private val client: RestClient,
) {
companion object {
@ -94,21 +100,26 @@ private class CancelClient(
paymentKey: String,
amount: Int,
cancelReason: String
): PaymentClientCancelResponse = client.post()
.uri(CANCEL_URI, paymentKey)
.body(
mapOf(
"cancelReason" to cancelReason,
"cancelAmount" to amount,
): PaymentClientCancelResponse {
val response = client.post()
.uri(CANCEL_URI, paymentKey)
.body(
mapOf(
"cancelReason" to cancelReason,
"cancelAmount" to amount,
)
)
)
.retrieve()
.onStatus(errorHandler)
.body(PaymentClientCancelResponse::class.java)
?: run {
log.error { "[TosspayClient] 응답 바디 변환 실패" }
throw PaymentException(PaymentErrorCode.PAYMENT_UNEXPECTED_ERROR)
}
.retrieve()
.onStatus(errorHandler)
.body(String::class.java)
?: run {
log.error { "[TosspayClient] 응답 바디 변환 실패" }
throw PaymentException(PaymentErrorCode.PAYMENT_UNEXPECTED_ERROR)
}
log.debug { "[TosspayClient.cancel] 응답 수신: json = $response" }
return objectMapper.readValue(response, PaymentClientCancelResponse::class.java)
}
}
private class TosspayErrorHandler(