package org.asamk.signal.json;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer;
+import org.asamk.signal.manager.api.MessageEnvelope;
-class JsonAttachment {
+record JsonAttachment(String contentType, String filename, String id, Long size) {
- String contentType;
- String filename;
- String id;
- int size;
-
- JsonAttachment(SignalServiceAttachment attachment) {
- this.contentType = attachment.getContentType();
-
- final SignalServiceAttachmentPointer pointer = attachment.asPointer();
- if (attachment.isPointer()) {
- this.id = String.valueOf(pointer.getId());
- if (pointer.getFileName().isPresent()) {
- this.filename = pointer.getFileName().get();
- }
- if (pointer.getSize().isPresent()) {
- this.size = pointer.getSize().get();
- }
- }
+ static JsonAttachment from(MessageEnvelope.Data.Attachment attachment) {
+ final var id = attachment.id().orElse(null);
+ final var filename = attachment.fileName().orElse(null);
+ final var size = attachment.size().orElse(null);
+ return new JsonAttachment(attachment.contentType(), filename, id, size);
}
- JsonAttachment(String filename) {
- this.filename = filename;
+ static JsonAttachment from(String filename) {
+ return new JsonAttachment(filename, null, null, null);
}
}