]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonGroupInfo.java
Implement sending message quotes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonGroupInfo.java
index d79941edaf36f7d6b5e9e3cc34327f4bd83cf332..f00ace993a76654ae12ea5e514b3ec10fd7e9a6c 100644 (file)
@@ -1,59 +1,17 @@
 package org.asamk.signal.json;
 
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-import org.asamk.signal.manager.groups.GroupUtils;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
-import org.whispersystems.signalservice.api.push.SignalServiceAddress;
+import org.asamk.signal.manager.api.MessageEnvelope;
 
 import java.util.Base64;
-import java.util.List;
-import java.util.stream.Collectors;
-
-class JsonGroupInfo {
-
-    @JsonProperty
-    final String groupId;
-
-    @JsonProperty
-    final String type;
 
-    @JsonProperty
-    @JsonInclude(JsonInclude.Include.NON_NULL)
-    final String name;
-
-    @JsonProperty
-    @JsonInclude(JsonInclude.Include.NON_NULL)
-    final List<String> members;
-
-    JsonGroupInfo(SignalServiceGroup groupInfo) {
-        this.groupId = Base64.getEncoder().encodeToString(groupInfo.getGroupId());
-        this.type = groupInfo.getType().toString();
-        this.name = groupInfo.getName().orNull();
-        if (groupInfo.getMembers().isPresent()) {
-            this.members = groupInfo.getMembers()
-                    .get()
-                    .stream()
-                    .map(SignalServiceAddress::getLegacyIdentifier)
-                    .collect(Collectors.toList());
-        } else {
-            this.members = null;
-        }
-    }
+record JsonGroupInfo(String groupId, String type) {
 
-    JsonGroupInfo(SignalServiceGroupV2 groupInfo) {
-        this.groupId = GroupUtils.getGroupIdV2(groupInfo.getMasterKey()).toBase64();
-        this.type = groupInfo.hasSignedGroupChange() ? "UPDATE" : "DELIVER";
-        this.members = null;
-        this.name = null;
+    static JsonGroupInfo from(MessageEnvelope.Data.GroupContext groupContext) {
+        return new JsonGroupInfo(groupContext.groupId().toBase64(),
+                groupContext.isGroupUpdate() ? "UPDATE" : "DELIVER");
     }
 
-    JsonGroupInfo(byte[] groupId) {
-        this.groupId = Base64.getEncoder().encodeToString(groupId);
-        this.type = "DELIVER";
-        this.members = null;
-        this.name = null;
+    static JsonGroupInfo from(byte[] groupId) {
+        return new JsonGroupInfo(Base64.getEncoder().encodeToString(groupId), "DELIVER");
     }
 }