]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/JsonReceiveMessageHandler.java
Move Writer creation out of WriterImpls
[signal-cli] / src / main / java / org / asamk / signal / JsonReceiveMessageHandler.java
1 package org.asamk.signal;
2
3 import org.asamk.signal.json.JsonError;
4 import org.asamk.signal.json.JsonMessageEnvelope;
5 import org.asamk.signal.manager.Manager;
6 import org.asamk.signal.manager.api.MessageEnvelope;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9
10 import java.util.HashMap;
11
12 public class JsonReceiveMessageHandler implements Manager.ReceiveMessageHandler {
13
14 private final static Logger logger = LoggerFactory.getLogger(JsonReceiveMessageHandler.class);
15
16 protected final Manager m;
17 private final JsonWriter jsonWriter;
18
19 public JsonReceiveMessageHandler(Manager m, JsonWriter jsonWriter) {
20 this.m = m;
21 this.jsonWriter = jsonWriter;
22 }
23
24 @Override
25 public void handleMessage(MessageEnvelope envelope, Throwable exception) {
26 final var object = new HashMap<String, Object>();
27 if (exception != null) {
28 object.put("error", JsonError.from(exception));
29 }
30
31 if (envelope != null) {
32 object.put("envelope", JsonMessageEnvelope.from(envelope, exception, m));
33 }
34
35 jsonWriter.write(object);
36 }
37 }