X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/ce7aa580b6f0580cdcf7fd68fcc8efba737d21ed..eac2a47163a07c2553fee8a0cfcdf3f1e6adafd2:/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 98139c84..391181b0 100644 --- a/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java @@ -1,37 +1,33 @@ package org.asamk.signal.json; +import com.fasterxml.jackson.annotation.JsonInclude; 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 org.asamk.signal.manager.api.RecipientAddress; -import static org.asamk.signal.util.Util.getLegacyIdentifier; +import java.util.UUID; record JsonSyncDataMessage( @Deprecated String destination, String destinationNumber, String destinationUuid, + @JsonInclude(JsonInclude.Include.NON_NULL) JsonEditMessage editMessage, @JsonUnwrapped JsonDataMessage dataMessage ) { - static JsonSyncDataMessage from(SentTranscriptMessage transcriptMessage, Manager m) { - if (transcriptMessage.getDestination().isPresent()) { - 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)); - } - } - - static JsonSyncDataMessage from(Signal.SyncMessageReceived messageReceived) { - return new JsonSyncDataMessage(messageReceived.getDestination(), - null, - null, - JsonDataMessage.from(messageReceived)); + 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)); } }