[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-taler-android] branch master updated: [wallet] Implemented JSON serializer for TalerErrorCode,
gnunet <=