]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSyncDataMessage.java
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonUnwrapped;
4
5 import org.asamk.Signal;
6 import org.asamk.signal.manager.Manager;
7 import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage;
8
9 import static org.asamk.signal.util.Util.getLegacyIdentifier;
10
11 record JsonSyncDataMessage(
12 @Deprecated String destination,
13 String destinationNumber,
14 String destinationUuid,
15 @JsonUnwrapped JsonDataMessage dataMessage
16 ) {
17
18 static JsonSyncDataMessage from(SentTranscriptMessage transcriptMessage, Manager m) {
19 if (transcriptMessage.getDestination().isPresent()) {
20 final var address = transcriptMessage.getDestination().get();
21 return new JsonSyncDataMessage(getLegacyIdentifier(address),
22 address.getNumber().orNull(),
23 address.getUuid().toString(),
24 JsonDataMessage.from(transcriptMessage.getMessage(), m));
25
26 } else {
27 return new JsonSyncDataMessage(null, null, null, JsonDataMessage.from(transcriptMessage.getMessage(), m));
28 }
29 }
30
31 static JsonSyncDataMessage from(Signal.SyncMessageReceived messageReceived) {
32 return new JsonSyncDataMessage(messageReceived.getDestination(),
33 null,
34 null,
35 JsonDataMessage.from(messageReceived));
36 }
37 }