X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/30690785fd51f9ba841f6f57d5f403bd970f26e3..0a287b0b3eef6591fed86fd4b39506e4d32eb69c:/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java diff --git a/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java b/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java index c9d88790..4c2cd6ab 100644 --- a/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java @@ -1,25 +1,29 @@ package org.asamk.signal.json; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonUnwrapped; -import org.asamk.Signal; import org.asamk.signal.manager.Manager; -import org.asamk.signal.util.Util; -import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage; +import org.asamk.signal.manager.api.MessageEnvelope; +import org.asamk.signal.manager.api.RecipientAddress; -class JsonSyncDataMessage extends JsonDataMessage { +import java.util.UUID; - @JsonProperty - final String destination; +record JsonSyncDataMessage( + @Deprecated String destination, + String destinationNumber, + String destinationUuid, + @JsonInclude(JsonInclude.Include.NON_NULL) JsonEditMessage editMessage, + @JsonUnwrapped JsonDataMessage dataMessage +) { - JsonSyncDataMessage(SentTranscriptMessage transcriptMessage, Manager m) { - super(transcriptMessage.getMessage(), m); - - this.destination = transcriptMessage.getDestination().transform(Util::getLegacyIdentifier).orNull(); - } - - JsonSyncDataMessage(Signal.SyncMessageReceived messageReceived) { - super(messageReceived); - destination = messageReceived.getDestination(); + static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage, Manager m) { + return new JsonSyncDataMessage(transcriptMessage.destination() + .map(RecipientAddress::getLegacyIdentifier) + .orElse(null), + transcriptMessage.destination().flatMap(RecipientAddress::number).orElse(null), + transcriptMessage.destination().flatMap(address -> address.uuid().map(UUID::toString)).orElse(null), + transcriptMessage.editMessage().map(data -> JsonEditMessage.from(data, m)).orElse(null), + transcriptMessage.message().map(data -> JsonDataMessage.from(data, m)).orElse(null)); } }