gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-android] branch master updated: [wallet] Implemented JSON s


From: gnunet
Subject: [taler-taler-android] branch master updated: [wallet] Implemented JSON serializer for TalerErrorCode
Date: Tue, 07 Mar 2023 19:16:18 +0100

This is an automated email from the git hooks/post-receive script.

torsten-grote pushed a commit to branch master
in repository taler-android.

The following commit(s) were added to refs/heads/master by this push:
     new 2d9cd67  [wallet] Implemented JSON serializer for TalerErrorCode
2d9cd67 is described below

commit 2d9cd67b9952e4915e4bf23ac645ff7d2c9edaff
Author: Iván Ávalos <avalos@disroot.org>
AuthorDate: Thu Mar 2 20:57:29 2023 -0600

    [wallet] Implemented JSON serializer for TalerErrorCode
    
    bug 0007606
---
 .../main/java/net/taler/wallet/backend/WalletResponse.kt   | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt 
b/wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt
index 22dcba9..37bf91e 100644
--- a/wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt
+++ b/wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt
@@ -26,6 +26,9 @@ import kotlinx.serialization.encoding.Decoder
 import kotlinx.serialization.encoding.Encoder
 import kotlinx.serialization.json.JsonDecoder
 import kotlinx.serialization.json.JsonElement
+import kotlinx.serialization.json.JsonObject
+import kotlinx.serialization.json.JsonPrimitive
+import kotlinx.serialization.json.buildJsonObject
 import kotlinx.serialization.json.jsonPrimitive
 
 @Serializable
@@ -53,7 +56,7 @@ sealed class WalletResponse<T> {
     }
 }
 
-@Serializable(with = TalerErrorInfoDeserializer::class)
+@Serializable(with = TalerErrorInfoSerializer::class)
 data class TalerErrorInfo(
     // Numeric error code defined defined in the
     // GANA gnu-taler-error-codes registry.
@@ -81,7 +84,7 @@ data class TalerErrorInfo(
         extra[key]?.jsonPrimitive?.content
 }
 
-class TalerErrorInfoDeserializer : KSerializer<TalerErrorInfo> {
+class TalerErrorInfoSerializer : KSerializer<TalerErrorInfo> {
     private val stringToJsonElementSerializer = 
MapSerializer(String.serializer(), JsonElement.serializer())
 
     override val descriptor: SerialDescriptor
@@ -110,6 +113,11 @@ class TalerErrorInfoDeserializer : 
KSerializer<TalerErrorInfo> {
     }
 
     override fun serialize(encoder: Encoder, value: TalerErrorInfo) {
-        error("not supported")
+        encoder.encodeSerializableValue(JsonObject.serializer(), 
buildJsonObject {
+            put("code", JsonPrimitive(value.code.code))
+            put("hint", JsonPrimitive(value.hint))
+            put("message", JsonPrimitive(value.message))
+            value.extra.forEach { (key, value) -> put(key, value) }
+        })
     }
 }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]