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);
}
}