]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
Extend json output with number and uuid fields
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSyncDataMessage.java
index c9d887902e89023e7bbf5428d86bd502e4a826e2..28c9d9369403a41fdd95d87bea0a082e21e2594f 100644 (file)
@@ -4,22 +4,43 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 
 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 java.util.UUID;
+
+import static org.asamk.signal.util.Util.getLegacyIdentifier;
+
 class JsonSyncDataMessage extends JsonDataMessage {
 
     @JsonProperty
+    @Deprecated
     final String destination;
 
+    @JsonProperty
+    final String destinationNumber;
+
+    @JsonProperty
+    final String destinationUuid;
+
     JsonSyncDataMessage(SentTranscriptMessage transcriptMessage, Manager m) {
         super(transcriptMessage.getMessage(), m);
 
-        this.destination = transcriptMessage.getDestination().transform(Util::getLegacyIdentifier).orNull();
+        if (transcriptMessage.getDestination().isPresent()) {
+            final var address = transcriptMessage.getDestination().get();
+            this.destination = getLegacyIdentifier(address);
+            this.destinationNumber = address.getNumber().orNull();
+            this.destinationUuid = address.getUuid().transform(UUID::toString).orNull();
+        } else {
+            this.destination = null;
+            this.destinationNumber = null;
+            this.destinationUuid = null;
+        }
     }
 
     JsonSyncDataMessage(Signal.SyncMessageReceived messageReceived) {
         super(messageReceived);
-        destination = messageReceived.getDestination();
+        this.destination = messageReceived.getDestination();
+        this.destinationNumber = null;
+        this.destinationUuid = null;
     }
 }