From 35bc91761ad1f8336f331c6b04cff8bf4d9ae064 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 24 Aug 2020 14:28:34 -0300 Subject: Upgrade to Kotlin 1.4 --- .../src/main/java/net/taler/merchantlib/Orders.kt | 23 ++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'merchant-lib/src/main/java/net/taler/merchantlib/Orders.kt') diff --git a/merchant-lib/src/main/java/net/taler/merchantlib/Orders.kt b/merchant-lib/src/main/java/net/taler/merchantlib/Orders.kt index 0a405ad..9c23ef1 100644 --- a/merchant-lib/src/main/java/net/taler/merchantlib/Orders.kt +++ b/merchant-lib/src/main/java/net/taler/merchantlib/Orders.kt @@ -16,14 +16,16 @@ package net.taler.merchantlib -import kotlinx.serialization.Decoder -import kotlinx.serialization.Encoder import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.Serializer -import kotlinx.serialization.json.JsonInput +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.JsonDecoder import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.boolean +import kotlinx.serialization.json.jsonPrimitive import net.taler.common.ContractTerms import net.taler.lib.common.Duration @@ -45,19 +47,20 @@ data class PostOrderResponse( sealed class CheckPaymentResponse { abstract val paid: Boolean + @Suppress("EXPERIMENTAL_API_USAGE") @Serializer(forClass = CheckPaymentResponse::class) companion object : KSerializer { override fun deserialize(decoder: Decoder): CheckPaymentResponse { - val input = decoder as JsonInput - val tree = input.decodeJson() as JsonObject - val orderStatus = tree.getPrimitive("order_status").content -// return if (orderStatus == "paid") decoder.json.fromJson(Paid.serializer(), tree) -// else decoder.json.fromJson(Unpaid.serializer(), tree) + val input = decoder as JsonDecoder + val tree = input.decodeJsonElement() as JsonObject + val orderStatus = tree.getValue("order_status").jsonPrimitive.content +// return if (orderStatus == "paid") decoder.json.decodeFromJsonElement(Paid.serializer(), tree) +// else decoder.json.decodeFromJsonElement(Unpaid.serializer(), tree) // manual parsing due to https://github.com/Kotlin/kotlinx.serialization/issues/576 return if (orderStatus == "paid") Paid( - refunded = tree.getPrimitive("refunded").boolean + refunded = tree.getValue("refunded").jsonPrimitive.boolean ) else Unpaid( - talerPayUri = tree.getPrimitive("taler_pay_uri").content + talerPayUri = tree.getValue("taler_pay_uri").jsonPrimitive.content ) } -- cgit v1.2.3