From: AsamK Date: Thu, 10 Aug 2023 22:35:48 +0000 (+0200) Subject: Adapt receive subscription notification to have payload in result field X-Git-Tag: v0.12.0~5 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/b51c7916293cb3303193c48e281f2a9d55224f85 Adapt receive subscription notification to have payload in result field --- diff --git a/CHANGELOG.md b/CHANGELOG.md index 89a34114..11271473 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ ## [Unreleased] **Attention**: Now requires native libsignal-client version 0.30.0 +### Breaking changes +- Adapt receive subscription notification in JSON-RPC to have payload in result field + - Before: `{"jsonrpc":"2.0","method":"receive","params":{"envelope":{ ... },"account":"+XXX","subscription":0}}` + - After: `{"jsonrpc":"2.0","method":"receive","params":{"subscription":0,"result":{"envelope":{ ... },"account":"+XXX"}}}` + ### Added - Manage identities via DBus (Thanks @bublath) - Added support for SVR2 PINs @@ -597,7 +602,7 @@ Bug fixes and small improvements * new listGroups command * Support for attachments with file names * Support for complete contacts sync -* Support for contact verification sync +* Support for contact verification sync * DBus interface: * Get/Set group info * Get/Set contact info diff --git a/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcDispatcherHandler.java b/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcDispatcherHandler.java index 3548f655..aea332fd 100644 --- a/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcDispatcherHandler.java +++ b/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcDispatcherHandler.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ContainerNode; import com.fasterxml.jackson.databind.node.IntNode; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -86,8 +85,9 @@ public class SignalJsonRpcDispatcherHandler { final var subscriptionId = nextSubscriptionId.getAndIncrement(); final var handlers = managers.stream().map(m -> { final var receiveMessageHandler = new JsonReceiveMessageHandler(m, s -> { - final ContainerNode params = objectMapper.valueToTree(s); - ((ObjectNode) params).set("subscription", IntNode.valueOf(subscriptionId)); + final var params = new ObjectNode(objectMapper.getNodeFactory()); + params.set("subscription", IntNode.valueOf(subscriptionId)); + params.set("result", objectMapper.valueToTree(s)); final var jsonRpcRequest = JsonRpcRequest.forNotification("receive", params, null); try { jsonRpcSender.sendRequest(jsonRpcRequest);