X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/8bcd8d87d219ae0496986cba4bd6b89f3b2ad6f6..eec7aec069307827034702f6fde4026f42b96bdd:/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 e2c92bac..805c32c8 100644 --- a/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java @@ -1,44 +1,36 @@ package org.asamk.signal.json; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonUnwrapped; import org.asamk.Signal; -import org.asamk.signal.manager.Manager; -import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage; +import org.asamk.signal.manager.api.MessageEnvelope; -import static org.asamk.signal.util.Util.getLegacyIdentifier; +import java.util.UUID; -class JsonSyncDataMessage extends JsonDataMessage { +record JsonSyncDataMessage( + @Deprecated String destination, + String destinationNumber, + String destinationUuid, + @JsonUnwrapped JsonDataMessage dataMessage +) { - @JsonProperty - @Deprecated - final String destination; + static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage) { + if (transcriptMessage.destination().isPresent()) { + final var address = transcriptMessage.destination().get(); + return new JsonSyncDataMessage(address.getLegacyIdentifier(), + address.getNumber().orElse(null), + address.getUuid().map(UUID::toString).orElse(null), + JsonDataMessage.from(transcriptMessage.message())); - @JsonProperty - final String destinationNumber; - - @JsonProperty - final String destinationUuid; - - JsonSyncDataMessage(SentTranscriptMessage transcriptMessage, Manager m) { - super(transcriptMessage.getMessage(), m); - - if (transcriptMessage.getDestination().isPresent()) { - final var address = transcriptMessage.getDestination().get(); - this.destination = getLegacyIdentifier(address); - this.destinationNumber = address.getNumber().orNull(); - this.destinationUuid = address.getUuid().toString(); } else { - this.destination = null; - this.destinationNumber = null; - this.destinationUuid = null; + return new JsonSyncDataMessage(null, null, null, JsonDataMessage.from(transcriptMessage.message())); } } - JsonSyncDataMessage(Signal.SyncMessageReceived messageReceived) { - super(messageReceived); - this.destination = messageReceived.getDestination(); - this.destinationNumber = null; - this.destinationUuid = null; + static JsonSyncDataMessage from(Signal.SyncMessageReceived messageReceived) { + return new JsonSyncDataMessage(messageReceived.getDestination(), + null, + null, + JsonDataMessage.from(messageReceived)); } }