package org.asamk.signal.json;
+import com.fasterxml.jackson.annotation.JsonUnwrapped;
+
import org.asamk.Signal;
+import org.asamk.signal.manager.Manager;
import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage;
-class JsonSyncDataMessage extends JsonDataMessage {
+import static org.asamk.signal.util.Util.getLegacyIdentifier;
- String destination;
+record JsonSyncDataMessage(
+ @Deprecated String destination,
+ String destinationNumber,
+ String destinationUuid,
+ @JsonUnwrapped JsonDataMessage dataMessage
+) {
- JsonSyncDataMessage(SentTranscriptMessage transcriptMessage) {
- super(transcriptMessage.getMessage());
+ static JsonSyncDataMessage from(SentTranscriptMessage transcriptMessage, Manager m) {
if (transcriptMessage.getDestination().isPresent()) {
- this.destination = transcriptMessage.getDestination().get().getLegacyIdentifier();
+ final var address = transcriptMessage.getDestination().get();
+ return new JsonSyncDataMessage(getLegacyIdentifier(address),
+ address.getNumber().orNull(),
+ address.getUuid().toString(),
+ JsonDataMessage.from(transcriptMessage.getMessage(), m));
+
+ } else {
+ return new JsonSyncDataMessage(null, null, null, JsonDataMessage.from(transcriptMessage.getMessage(), m));
}
}
- JsonSyncDataMessage(Signal.SyncMessageReceived messageReceived) {
- super(messageReceived);
- destination = messageReceived.getDestination();
+ static JsonSyncDataMessage from(Signal.SyncMessageReceived messageReceived) {
+ return new JsonSyncDataMessage(messageReceived.getDestination(),
+ null,
+ null,
+ JsonDataMessage.from(messageReceived));
}
}