diff --git a/quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/relay/filters/FilterDeserializer.kt b/quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/relay/filters/FilterDeserializer.kt index 5bf629536..618491580 100644 --- a/quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/relay/filters/FilterDeserializer.kt +++ b/quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/relay/filters/FilterDeserializer.kt @@ -55,8 +55,8 @@ class ManualFilterDeserializer { ids = jsonObject.get("ids")?.mapNotNull { it.asTextOrNull() }, authors = jsonObject.get("authors")?.mapNotNull { it.asTextOrNull() }, kinds = jsonObject.get("kinds")?.mapNotNull { it.asIntOrNull() }, - tags = tagsIn.associateWith { jsonObject.get(it).mapNotNull { it.asTextOrNull() } }, - tagsAll = tagsAll.associateWith { jsonObject.get(it).mapNotNull { it.asTextOrNull() } }, + tags = tagsIn.associateWith { jsonObject.get("#$it").mapNotNull { it.asTextOrNull() } }, + tagsAll = tagsAll.associateWith { jsonObject.get("&$it").mapNotNull { it.asTextOrNull() } }, since = jsonObject.get("since")?.asLongOrNull(), until = jsonObject.get("until")?.asLongOrNull(), limit = jsonObject.get("limit")?.asIntOrNull(), diff --git a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/nip01Core/jackson/JacksonMapperTest.kt b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/nip01Core/jackson/JacksonMapperTest.kt index c691bd152..84844d0e2 100644 --- a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/nip01Core/jackson/JacksonMapperTest.kt +++ b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/nip01Core/jackson/JacksonMapperTest.kt @@ -161,4 +161,17 @@ class JacksonMapperTest { assertEquals(null, deserialized.ids) } + + @Test + fun shouldNotThrowExceptionWhenDeserializingFilterTags() { + val json = + Filter( + tags = mapOf("p" to listOf("123")), + tagsAll = mapOf("p" to listOf("123")), + ).toJson() + val deserialized = JacksonMapper.fromJsonTo(json) + + assertEquals(true, deserialized.tags?.keys?.contains("p")) + assertEquals(true, deserialized.tagsAll?.keys?.contains("p")) + } }