]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonAttachment.java
Implement configuring of group link
[signal-cli] / src / main / java / org / asamk / signal / json / JsonAttachment.java
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonProperty;
4
5 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
6
7 class JsonAttachment {
8
9 @JsonProperty
10 final String contentType;
11
12 @JsonProperty
13 final String filename;
14
15 @JsonProperty
16 final String id;
17
18 @JsonProperty
19 final Long size;
20
21 JsonAttachment(SignalServiceAttachment attachment) {
22 this.contentType = attachment.getContentType();
23
24 if (attachment.isPointer()) {
25 final var pointer = attachment.asPointer();
26 this.id = pointer.getRemoteId().toString();
27 this.filename = pointer.getFileName().orNull();
28 this.size = pointer.getSize().transform(Integer::longValue).orNull();
29 } else {
30 final var stream = attachment.asStream();
31 this.id = null;
32 this.filename = stream.getFileName().orNull();
33 this.size = stream.getLength();
34 }
35 }
36
37 JsonAttachment(String filename) {
38 this.filename = filename;
39 this.contentType = null;
40 this.id = null;
41 this.size = null;
42 }
43 }