package org.asamk.signal.json;
-import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
+import com.fasterxml.jackson.annotation.JsonInclude;
-public class JsonQuotedAttachment {
+import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
- 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();
+ static JsonQuotedAttachment from(SignalServiceDataMessage.Quote.QuotedAttachment quotedAttachment) {
+ final var contentType = quotedAttachment.getContentType();
+ final var filename = quotedAttachment.getFileName();
+ final JsonAttachment thumbnail;
if (quotedAttachment.getThumbnail() != null) {
- thumbnail = new JsonAttachment(quotedAttachment.getThumbnail());
+ thumbnail = JsonAttachment.from(quotedAttachment.getThumbnail());
} else {
thumbnail = null;
}
+ return new JsonQuotedAttachment(contentType, filename, thumbnail);
}
}