X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/a80e18169a9cc68c59c5d7bc6dcdc7b747dfcf37..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 fc84b088..4c2cd6ab 100644 --- a/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java @@ -1,8 +1,11 @@ package org.asamk.signal.json; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonUnwrapped; +import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.api.MessageEnvelope; +import org.asamk.signal.manager.api.RecipientAddress; import java.util.UUID; @@ -10,22 +13,17 @@ record JsonSyncDataMessage( @Deprecated String destination, String destinationNumber, String destinationUuid, + @JsonInclude(JsonInclude.Include.NON_NULL) JsonEditMessage editMessage, @JsonUnwrapped JsonDataMessage dataMessage ) { - static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage) { - if (transcriptMessage.destination().isPresent()) { - final var address = transcriptMessage.destination().get(); - return new JsonSyncDataMessage(address.getLegacyIdentifier(), - address.number().orElse(null), - address.uuid().map(UUID::toString).orElse(null), - transcriptMessage.message().map(JsonDataMessage::from).orElse(null)); - - } else { - return new JsonSyncDataMessage(null, - null, - null, - transcriptMessage.message().map(JsonDataMessage::from).orElse(null)); - } + 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)); } }