X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/de273586b4106171a3940ce5ec2c2b3712430c8c..ce7aa580b6f0580cdcf7fd68fcc8efba737d21ed:/src/main/java/org/asamk/signal/JsonReceiveMessageHandler.java diff --git a/src/main/java/org/asamk/signal/JsonReceiveMessageHandler.java b/src/main/java/org/asamk/signal/JsonReceiveMessageHandler.java index 38657f5e..96f4acb5 100644 --- a/src/main/java/org/asamk/signal/JsonReceiveMessageHandler.java +++ b/src/main/java/org/asamk/signal/JsonReceiveMessageHandler.java @@ -8,7 +8,6 @@ import org.slf4j.LoggerFactory; import org.whispersystems.signalservice.api.messages.SignalServiceContent; import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import java.io.IOException; import java.util.HashMap; public class JsonReceiveMessageHandler implements Manager.ReceiveMessageHandler { @@ -18,24 +17,22 @@ public class JsonReceiveMessageHandler implements Manager.ReceiveMessageHandler protected final Manager m; private final JsonWriter jsonWriter; - public JsonReceiveMessageHandler(Manager m) { + public JsonReceiveMessageHandler(Manager m, JsonWriter jsonWriter) { this.m = m; - jsonWriter = new JsonWriter(System.out); + this.jsonWriter = jsonWriter; } @Override public void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception) { final var object = new HashMap(); if (exception != null) { - object.put("error", new JsonError(exception)); + object.put("error", JsonError.from(exception)); } + if (envelope != null) { - object.put("envelope", new JsonMessageEnvelope(envelope, content, m)); - } - try { - jsonWriter.write(object); - } catch (IOException e) { - logger.error("Failed to write json object: {}", e.getMessage()); + object.put("envelope", JsonMessageEnvelope.from(envelope, content, exception, m)); } + + jsonWriter.write(object); } }