]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/JsonDataMessage.java
Implement json output for receive
[signal-cli] / src / main / java / org / asamk / signal / JsonDataMessage.java
diff --git a/src/main/java/org/asamk/signal/JsonDataMessage.java b/src/main/java/org/asamk/signal/JsonDataMessage.java
new file mode 100644 (file)
index 0000000..eda5402
--- /dev/null
@@ -0,0 +1,34 @@
+package org.asamk.signal;
+
+import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
+import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
+
+import java.util.ArrayList;
+import java.util.List;
+
+class JsonDataMessage {
+    long timestamp;
+    String message;
+    int expiresInSeconds;
+    List<JsonAttachment> attachments;
+    JsonGroupInfo groupInfo;
+
+    JsonDataMessage(SignalServiceDataMessage dataMessage) {
+        this.timestamp = dataMessage.getTimestamp();
+        if (dataMessage.getGroupInfo().isPresent()) {
+            this.groupInfo = new JsonGroupInfo(dataMessage.getGroupInfo().get());
+        }
+        if (dataMessage.getBody().isPresent()) {
+            this.message = dataMessage.getBody().get();
+        }
+        this.expiresInSeconds = dataMessage.getExpiresInSeconds();
+        if (dataMessage.getAttachments().isPresent()) {
+            this.attachments = new ArrayList<>(dataMessage.getAttachments().get().size());
+            for (SignalServiceAttachment attachment : dataMessage.getAttachments().get()) {
+                this.attachments.add(new JsonAttachment(attachment));
+            }
+        } else {
+            this.attachments = new ArrayList<>();
+        }
+    }
+}