]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
Add MultiAccountManager
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSyncDataMessage.java
index c9d887902e89023e7bbf5428d86bd502e4a826e2..7eea04729546a40d3f057c53c2f0ba98757d3fc1 100644 (file)
@@ -1,25 +1,28 @@
 package org.asamk.signal.json;
 
 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.asamk.signal.util.Util;
-import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage;
+import org.asamk.signal.manager.api.MessageEnvelope;
 
 
-class JsonSyncDataMessage extends JsonDataMessage {
+import java.util.UUID;
 
 
-    @JsonProperty
-    final String destination;
+record JsonSyncDataMessage(
+        @Deprecated String destination,
+        String destinationNumber,
+        String destinationUuid,
+        @JsonUnwrapped JsonDataMessage dataMessage
+) {
 
 
-    JsonSyncDataMessage(SentTranscriptMessage transcriptMessage, Manager m) {
-        super(transcriptMessage.getMessage(), m);
+    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()));
 
 
-        this.destination = transcriptMessage.getDestination().transform(Util::getLegacyIdentifier).orNull();
-    }
-
-    JsonSyncDataMessage(Signal.SyncMessageReceived messageReceived) {
-        super(messageReceived);
-        destination = messageReceived.getDestination();
+        } else {
+            return new JsonSyncDataMessage(null, null, null, JsonDataMessage.from(transcriptMessage.message()));
+        }
     }
 }
     }
 }