]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
add received and delivered timestamps on json message
[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.api.MessageEnvelope;
7 import org.asamk.signal.manager.api.RecipientAddress;
8
9 import java.util.UUID;
10
11 record JsonSyncDataMessage(
12 @Deprecated String destination,
13 String destinationNumber,
14 String destinationUuid,
15 @JsonInclude(JsonInclude.Include.NON_NULL) JsonEditMessage editMessage,
16 @JsonUnwrapped JsonDataMessage dataMessage
17 ) {
18
19 static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage) {
20 return new JsonSyncDataMessage(transcriptMessage.destination()
21 .map(RecipientAddress::getLegacyIdentifier)
22 .orElse(null),
23 transcriptMessage.destination().flatMap(RecipientAddress::number).orElse(null),
24 transcriptMessage.destination().flatMap(address -> address.uuid().map(UUID::toString)).orElse(null),
25 transcriptMessage.editMessage().map(JsonEditMessage::from).orElse(null),
26 transcriptMessage.message().map(JsonDataMessage::from).orElse(null));
27 }
28 }