1 package org
.asamk
.signal
.json
;
3 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceAttachment
;
5 record JsonAttachment(String contentType
, String filename
, String id
, Long size
) {
7 static JsonAttachment
from(SignalServiceAttachment attachment
) {
8 if (attachment
.isPointer()) {
9 final var pointer
= attachment
.asPointer();
10 final var id
= pointer
.getRemoteId().toString();
11 final var filename
= pointer
.getFileName().orNull();
12 final var size
= pointer
.getSize().transform(Integer
::longValue
).orNull();
13 return new JsonAttachment(attachment
.getContentType(), filename
, id
, size
);
15 final var stream
= attachment
.asStream();
16 final var filename
= stream
.getFileName().orNull();
17 final var size
= stream
.getLength();
18 return new JsonAttachment(attachment
.getContentType(), filename
, null, size
);
22 static JsonAttachment
from(String filename
) {
23 return new JsonAttachment(filename
, null, null, null);