X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/382d8d22d0ccad109106b140616638799cc646f6..fc8b6d0fcbedd6a4c9ae394a0640e79690e28337:/src/main/java/org/asamk/signal/json/JsonReceiveMessageHandler.java diff --git a/src/main/java/org/asamk/signal/json/JsonReceiveMessageHandler.java b/src/main/java/org/asamk/signal/json/JsonReceiveMessageHandler.java new file mode 100644 index 00000000..758c5f5a --- /dev/null +++ b/src/main/java/org/asamk/signal/json/JsonReceiveMessageHandler.java @@ -0,0 +1,37 @@ +package org.asamk.signal.json; + +import org.asamk.signal.manager.Manager; +import org.asamk.signal.manager.api.MessageEnvelope; +import org.asamk.signal.output.JsonWriter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; + +public class JsonReceiveMessageHandler implements Manager.ReceiveMessageHandler { + + private final static Logger logger = LoggerFactory.getLogger(JsonReceiveMessageHandler.class); + + private final Manager m; + private final JsonWriter jsonWriter; + + public JsonReceiveMessageHandler(Manager m, JsonWriter jsonWriter) { + this.m = m; + this.jsonWriter = jsonWriter; + } + + @Override + public void handleMessage(MessageEnvelope envelope, Throwable exception) { + final var object = new HashMap(); + object.put("account", m.getSelfNumber()); + if (exception != null) { + object.put("error", JsonError.from(exception)); + } + + if (envelope != null) { + object.put("envelope", JsonMessageEnvelope.from(envelope, exception, m)); + } + + jsonWriter.write(object); + } +}