refactor: 취소 응답을 역직렬화하는 PaymentCancelResponseDeserializer 코틀린 마이그레이션

This commit is contained in:
이상진 2025-07-15 17:34:35 +09:00
parent f59853ead1
commit 3bf65422d3

View File

@ -1,38 +1,32 @@
package roomescape.payment.web.support; package roomescape.payment.web.support
import java.io.IOException; import com.fasterxml.jackson.core.JsonParser
import java.time.OffsetDateTime; import com.fasterxml.jackson.core.TreeNode
import java.time.format.DateTimeFormatter; import com.fasterxml.jackson.databind.DeserializationContext
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.deser.std.StdDeserializer
import roomescape.payment.web.dto.response.PaymentCancelResponse
import java.io.IOException
import java.time.OffsetDateTime
import com.fasterxml.jackson.core.JsonParser; class PaymentCancelResponseDeserializer(
import com.fasterxml.jackson.databind.DeserializationContext; vc: Class<PaymentCancelResponse?>? = null
import com.fasterxml.jackson.databind.JsonNode; ) : StdDeserializer<PaymentCancelResponse?>(vc) {
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import roomescape.payment.web.dto.response.PaymentCancelResponse; @Throws(IOException::class)
override fun deserialize(
jsonParser: JsonParser,
deserializationContext: DeserializationContext?
): PaymentCancelResponse {
val cancels: JsonNode = jsonParser.codec.readTree<TreeNode>(jsonParser)
.get("cancels")
.get(0) as JsonNode
public class PaymentCancelResponseDeserializer extends StdDeserializer<PaymentCancelResponse> { return PaymentCancelResponse(
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(
"yyyy-MM-dd'T'HH:mm:ssXXX");
public PaymentCancelResponseDeserializer() {
this(null);
}
public PaymentCancelResponseDeserializer(Class<?> vc) {
super(vc);
}
@Override
public PaymentCancelResponse deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
throws IOException {
JsonNode cancels = (JsonNode)jsonParser.getCodec().readTree(jsonParser).get("cancels").get(0);
return new PaymentCancelResponse(
cancels.get("cancelStatus").asText(), cancels.get("cancelStatus").asText(),
cancels.get("cancelReason").asText(), cancels.get("cancelReason").asText(),
cancels.get("cancelAmount").asLong(), cancels.get("cancelAmount").asLong(),
OffsetDateTime.parse(cancels.get("canceledAt").asText()) OffsetDateTime.parse(cancels.get("canceledAt").asText())
); )
} }
} }