]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
Reformat files
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSyncDataMessage.java
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonInclude;
4 import com.fasterxml.jackson.annotation.JsonUnwrapped;
5
6 import org.asamk.signal.manager.Manager;
7 import org.asamk.signal.manager.api.MessageEnvelope;
8 import org.asamk.signal.manager.api.RecipientAddress;
9
10 import java.util.UUID;
11
12 record JsonSyncDataMessage(
13 @Deprecated String destination,
14 String destinationNumber,
15 String destinationUuid,
16 @JsonInclude(JsonInclude.Include.NON_NULL) JsonEditMessage editMessage,
17 @JsonUnwrapped JsonDataMessage dataMessage
18 ) {
19
20 static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage, Manager m) {
21 return new JsonSyncDataMessage(transcriptMessage.destination()
22 .map(RecipientAddress::getLegacyIdentifier)
23 .orElse(null),
24 transcriptMessage.destination().flatMap(RecipientAddress::number).orElse(null),
25 transcriptMessage.destination().flatMap(address -> address.uuid().map(UUID::toString)).orElse(null),
26 transcriptMessage.editMessage().map(data -> JsonEditMessage.from(data, m)).orElse(null),
27 transcriptMessage.message().map(data -> JsonDataMessage.from(data, m)).orElse(null));
28 }
29 }