]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonQuotedAttachment.java
add group info on json message
[signal-cli] / src / main / java / org / asamk / signal / json / JsonQuotedAttachment.java
index f3f809dc1fadb3d87e58c8863dd1a34de47d3399..e5022798ff455ae42599fd0c5d3771c50ee2652a 100644 (file)
@@ -1,29 +1,19 @@
 package org.asamk.signal.json;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
 
-import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
+import org.asamk.signal.manager.api.MessageEnvelope;
 
-public class JsonQuotedAttachment {
+public record JsonQuotedAttachment(
+        String contentType, String filename, @JsonInclude(JsonInclude.Include.NON_NULL) JsonAttachment thumbnail
+) {
 
-    @JsonProperty
-    final String contentType;
-
-    @JsonProperty
-    final String filename;
-
-    @JsonProperty
-    @JsonInclude(JsonInclude.Include.NON_NULL)
-    final JsonAttachment thumbnail;
-
-    JsonQuotedAttachment(SignalServiceDataMessage.Quote.QuotedAttachment quotedAttachment) {
-        contentType = quotedAttachment.getContentType();
-        filename = quotedAttachment.getFileName();
-        if (quotedAttachment.getThumbnail() != null) {
-            thumbnail = new JsonAttachment(quotedAttachment.getThumbnail());
-        } else {
-            thumbnail = null;
-        }
+    static JsonQuotedAttachment from(MessageEnvelope.Data.Attachment quotedAttachment) {
+        final var contentType = quotedAttachment.contentType();
+        final var filename = quotedAttachment.fileName().orElse(null);
+        final var thumbnail = quotedAttachment.thumbnail().isPresent()
+                ? JsonAttachment.from(quotedAttachment.thumbnail().get())
+                : null;
+        return new JsonQuotedAttachment(contentType, filename, thumbnail);
     }
 }