]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
Extend updateContact command with nick given/family name and note
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSyncDataMessage.java
index 98139c84bd68811d074a92f3d52f38e86356910f..4c2cd6abe1ce4194f1ea7d13349a3afa876805ea 100644 (file)
@@ -1,37 +1,29 @@
 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));
     }
 }