Fixes for interop (#4)

This commit is contained in:
Tanguy 2022-11-07 18:09:41 +01:00 committed by GitHub
parent 9fba811117
commit c282ff68c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 4 deletions

View File

@ -64,7 +64,7 @@ type
topic: string
event {.serializedFieldName: "payload".}: Option[Event]
networkConf {.serializedFieldName: "payload".}: Option[NetworkConf]
payload: Option[string]
payload: Option[JsonNode]
Event* = object
#workaround https://github.com/status-im/nim-json-serialization/pull/50
@ -207,13 +207,13 @@ proc subscribe*[T](c: Client, topic: string, _: type[T]): AsyncQueue[T] =
while true:
let elem = await theQueue.popFirst()
let decoded = json_serialization.decode(Json, unescape(elem), T, allowUnknownFields = true)
let decoded = json_serialization.decode(Json, elem, T, allowUnknownFields = true)
resQueue.addLastNoWait(decoded)
asyncSpawn getter()
resQueue
proc publish*(c: Client, topic: string, content: string) {.async.} =
proc publish*(c: Client, topic: string, content: JsonNode) {.async.} =
## Publish `content` to `topic`
let r = await c.request(Request(
publish: some PublishRequest(
@ -224,7 +224,8 @@ proc publish*(c: Client, topic: string, content: string) {.async.} =
proc publish*[T](c: Client, topic: string, content: T) {.async.} =
mixin toJson
await c.publish(topic, content.toJson())
let asJsonNode = json_serialization.decode(Json, content.toJson(), JsonNode)
await c.publish(topic, asJsonNode)
proc param*[T](c: Client, _: type[T], name: string): T =
let params = getEnv("TEST_INSTANCE_PARAMS").split("|").mapIt(it.split("=", 2)).mapIt((it[0], it[1])).toTable()