]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/api/Group.java
Reformat files
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / Group.java
index 650e10b6eeffcde5eee2fe45001fe4eba66743e7..4d1fdaa13c33e35e0d1070416158524db980c3b6 100644 (file)
@@ -1,99 +1,71 @@
 package org.asamk.signal.manager.api;
 
-import org.asamk.signal.manager.groups.GroupId;
-import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
-import org.asamk.signal.manager.storage.recipients.RecipientAddress;
+import org.asamk.signal.manager.helper.RecipientAddressResolver;
+import org.asamk.signal.manager.storage.groups.GroupInfo;
+import org.asamk.signal.manager.storage.recipients.RecipientId;
 
 import java.util.Set;
-
-public class Group {
-
-    private final GroupId groupId;
-    private final String title;
-    private final String description;
-    private final GroupInviteLinkUrl groupInviteLinkUrl;
-    private final Set<RecipientAddress> members;
-    private final Set<RecipientAddress> pendingMembers;
-    private final Set<RecipientAddress> requestingMembers;
-    private final Set<RecipientAddress> adminMembers;
-    private final boolean isBlocked;
-    private final int messageExpirationTime;
-    private final boolean isAnnouncementGroup;
-    private final boolean isMember;
-
-    public Group(
-            final GroupId groupId,
-            final String title,
-            final String description,
-            final GroupInviteLinkUrl groupInviteLinkUrl,
-            final Set<RecipientAddress> members,
-            final Set<RecipientAddress> pendingMembers,
-            final Set<RecipientAddress> requestingMembers,
-            final Set<RecipientAddress> adminMembers,
-            final boolean isBlocked,
-            final int messageExpirationTime,
-            final boolean isAnnouncementGroup,
-            final boolean isMember
+import java.util.stream.Collectors;
+
+public record Group(
+        GroupId groupId,
+        String title,
+        String description,
+        GroupInviteLinkUrl groupInviteLinkUrl,
+        Set<RecipientAddress> members,
+        Set<RecipientAddress> pendingMembers,
+        Set<RecipientAddress> requestingMembers,
+        Set<RecipientAddress> adminMembers,
+        Set<RecipientAddress> bannedMembers,
+        boolean isBlocked,
+        int messageExpirationTimer,
+        GroupPermission permissionAddMember,
+        GroupPermission permissionEditDetails,
+        GroupPermission permissionSendMessage,
+        boolean isMember,
+        boolean isAdmin
+) {
+
+    public static Group from(
+            final GroupInfo groupInfo,
+            final RecipientAddressResolver recipientStore,
+            final RecipientId selfRecipientId
     ) {
-        this.groupId = groupId;
-        this.title = title;
-        this.description = description;
-        this.groupInviteLinkUrl = groupInviteLinkUrl;
-        this.members = members;
-        this.pendingMembers = pendingMembers;
-        this.requestingMembers = requestingMembers;
-        this.adminMembers = adminMembers;
-        this.isBlocked = isBlocked;
-        this.messageExpirationTime = messageExpirationTime;
-        this.isAnnouncementGroup = isAnnouncementGroup;
-        this.isMember = isMember;
-    }
-
-    public GroupId getGroupId() {
-        return groupId;
-    }
-
-    public String getTitle() {
-        return title;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public GroupInviteLinkUrl getGroupInviteLinkUrl() {
-        return groupInviteLinkUrl;
-    }
-
-    public Set<RecipientAddress> getMembers() {
-        return members;
-    }
-
-    public Set<RecipientAddress> getPendingMembers() {
-        return pendingMembers;
-    }
-
-    public Set<RecipientAddress> getRequestingMembers() {
-        return requestingMembers;
-    }
-
-    public Set<RecipientAddress> getAdminMembers() {
-        return adminMembers;
-    }
-
-    public boolean isBlocked() {
-        return isBlocked;
-    }
-
-    public int getMessageExpirationTime() {
-        return messageExpirationTime;
-    }
-
-    public boolean isAnnouncementGroup() {
-        return isAnnouncementGroup;
-    }
-
-    public boolean isMember() {
-        return isMember;
+        return new Group(groupInfo.getGroupId(),
+                groupInfo.getTitle(),
+                groupInfo.getDescription(),
+                groupInfo.getGroupInviteLink(),
+                groupInfo.getMembers()
+                        .stream()
+                        .map(recipientStore::resolveRecipientAddress)
+                        .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
+                        .collect(Collectors.toSet()),
+                groupInfo.getPendingMembers()
+                        .stream()
+                        .map(recipientStore::resolveRecipientAddress)
+                        .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
+                        .collect(Collectors.toSet()),
+                groupInfo.getRequestingMembers()
+                        .stream()
+                        .map(recipientStore::resolveRecipientAddress)
+                        .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
+                        .collect(Collectors.toSet()),
+                groupInfo.getAdminMembers()
+                        .stream()
+                        .map(recipientStore::resolveRecipientAddress)
+                        .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
+                        .collect(Collectors.toSet()),
+                groupInfo.getBannedMembers()
+                        .stream()
+                        .map(recipientStore::resolveRecipientAddress)
+                        .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
+                        .collect(Collectors.toSet()),
+                groupInfo.isBlocked(),
+                groupInfo.getMessageExpirationTimer(),
+                groupInfo.getPermissionAddMember(),
+                groupInfo.getPermissionEditDetails(),
+                groupInfo.getPermissionSendMessage(),
+                groupInfo.isMember(selfRecipientId),
+                groupInfo.isAdmin(selfRecipientId));
     }
 }