]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonQuotedAttachment.java
Update libsignal-service-java
[signal-cli] / src / main / java / org / asamk / signal / json / JsonQuotedAttachment.java
index bcbbe2a538d49d651b196fddc2430caed9eea656..e5022798ff455ae42599fd0c5d3771c50ee2652a 100644 (file)
@@ -1,20 +1,19 @@
 package org.asamk.signal.json;
 
-import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
+import com.fasterxml.jackson.annotation.JsonInclude;
 
-public class JsonQuotedAttachment {
+import org.asamk.signal.manager.api.MessageEnvelope;
 
-    String contentType;
-    String filename;
-    JsonAttachment thumbnail;
+public record JsonQuotedAttachment(
+        String contentType, String filename, @JsonInclude(JsonInclude.Include.NON_NULL) 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);
     }
 }