]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonReceiveMessageHandler.java
Extend listContacts command with profiles and filtering
[signal-cli] / src / main / java / org / asamk / signal / json / JsonReceiveMessageHandler.java
1 package org.asamk.signal.json;
2
3 import org.asamk.signal.manager.Manager;
4 import org.asamk.signal.manager.api.MessageEnvelope;
5 import org.asamk.signal.output.JsonWriter;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
8
9 import java.util.HashMap;
10
11 public class JsonReceiveMessageHandler implements Manager.ReceiveMessageHandler {
12
13 private final static Logger logger = LoggerFactory.getLogger(JsonReceiveMessageHandler.class);
14
15 private final Manager m;
16 private final JsonWriter jsonWriter;
17
18 public JsonReceiveMessageHandler(Manager m, JsonWriter jsonWriter) {
19 this.m = m;
20 this.jsonWriter = jsonWriter;
21 }
22
23 @Override
24 public void handleMessage(MessageEnvelope envelope, Throwable exception) {
25 final var object = new HashMap<String, Object>();
26 object.put("account", m.getSelfNumber());
27 if (exception != null) {
28 object.put("exception", 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 }