]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/JsonReceiveMessageHandler.java
Implement socket/tcp for daemon command
[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 private 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 object.put("account", m.getSelfNumber());
28 if (exception != null) {
29 object.put("error", JsonError.from(exception));
30 }
31
32 if (envelope != null) {
33 object.put("envelope", JsonMessageEnvelope.from(envelope, exception, m));
34 }
35
36 jsonWriter.write(object);
37 }
38 }