X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/58db3cbd53f3faec94ddfcd5e029865a380e6242..fe752e0c7998bc8ca66c46d981624e6fbce7abf9:/src/main/java/org/asamk/signal/json/JsonQuotedAttachment.java diff --git a/src/main/java/org/asamk/signal/json/JsonQuotedAttachment.java b/src/main/java/org/asamk/signal/json/JsonQuotedAttachment.java index 1aae3104..e5022798 100644 --- a/src/main/java/org/asamk/signal/json/JsonQuotedAttachment.java +++ b/src/main/java/org/asamk/signal/json/JsonQuotedAttachment.java @@ -1,21 +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); } }