]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonQuote.java
1 package org
.asamk
.signal
.json
;
3 import com
.fasterxml
.jackson
.annotation
.JsonInclude
;
5 import org
.asamk
.signal
.manager
.api
.MessageEnvelope
;
10 public record JsonQuote(
12 @Deprecated String author
,
16 @JsonInclude(JsonInclude
.Include
.NON_NULL
) List
<JsonMention
> mentions
,
17 List
<JsonQuotedAttachment
> attachments
,
18 @JsonInclude(JsonInclude
.Include
.NON_NULL
) List
<JsonTextStyle
> textStyles
21 static JsonQuote
from(MessageEnvelope
.Data
.Quote quote
) {
22 final var id
= quote
.id();
23 final var address
= quote
.author();
24 final var author
= address
.getLegacyIdentifier();
25 final var authorNumber
= address
.number().orElse(null);
26 final var authorUuid
= address
.uuid().map(UUID
::toString
).orElse(null);
27 final var text
= quote
.text().orElse(null);
29 final var mentions
= !quote
.mentions().isEmpty()
30 ? quote
.mentions().stream().map(JsonMention
::from
).toList()
33 final var attachments
= !quote
.attachments().isEmpty() ? quote
.attachments()
35 .map(JsonQuotedAttachment
::from
)
36 .toList() : List
.<JsonQuotedAttachment
>of();
38 final var textStyles
= !quote
.textStyles().isEmpty() ? quote
.textStyles()
40 .map(JsonTextStyle
::from
)
43 return new JsonQuote(id
, author
, authorNumber
, authorUuid
, text
, mentions
, attachments
, textStyles
);