diff --git a/src/main/java/roomescape/payment/web/support/PaymentCancelResponseDeserializer.kt b/src/main/java/roomescape/payment/web/support/PaymentCancelResponseDeserializer.kt index 60993797..c1e7b904 100644 --- a/src/main/java/roomescape/payment/web/support/PaymentCancelResponseDeserializer.kt +++ b/src/main/java/roomescape/payment/web/support/PaymentCancelResponseDeserializer.kt @@ -1,38 +1,32 @@ -package roomescape.payment.web.support; +package roomescape.payment.web.support -import java.io.IOException; -import java.time.OffsetDateTime; -import java.time.format.DateTimeFormatter; +import com.fasterxml.jackson.core.JsonParser +import com.fasterxml.jackson.core.TreeNode +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; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +class PaymentCancelResponseDeserializer( + vc: Class? = null +) : StdDeserializer(vc) { -import roomescape.payment.web.dto.response.PaymentCancelResponse; + @Throws(IOException::class) + override fun deserialize( + jsonParser: JsonParser, + deserializationContext: DeserializationContext? + ): PaymentCancelResponse { + val cancels: JsonNode = jsonParser.codec.readTree(jsonParser) + .get("cancels") + .get(0) as JsonNode -public class PaymentCancelResponseDeserializer extends StdDeserializer { - - 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("cancelReason").asText(), - cancels.get("cancelAmount").asLong(), - OffsetDateTime.parse(cancels.get("canceledAt").asText()) - ); - } + return PaymentCancelResponse( + cancels.get("cancelStatus").asText(), + cancels.get("cancelReason").asText(), + cancels.get("cancelAmount").asLong(), + OffsetDateTime.parse(cancels.get("canceledAt").asText()) + ) + } }