]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
391181b03aac4bee7789193598ced55191a08271
[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()
27 .map(data -> JsonEditMessage.from(data, m))
28 .orElse(null),
29 transcriptMessage.message()
30 .map(data -> JsonDataMessage.from(data, m))
31 .orElse(null));
32 }
33 }