]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/Group.java
Bump version to 0.12.2
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / Group.java
1 package org.asamk.signal.manager.api;
2
3 import org.asamk.signal.manager.helper.RecipientAddressResolver;
4 import org.asamk.signal.manager.storage.groups.GroupInfo;
5 import org.asamk.signal.manager.storage.recipients.RecipientId;
6
7 import java.util.Set;
8 import java.util.stream.Collectors;
9
10 public record Group(
11 GroupId groupId,
12 String title,
13 String description,
14 GroupInviteLinkUrl groupInviteLinkUrl,
15 Set<RecipientAddress> members,
16 Set<RecipientAddress> pendingMembers,
17 Set<RecipientAddress> requestingMembers,
18 Set<RecipientAddress> adminMembers,
19 Set<RecipientAddress> bannedMembers,
20 boolean isBlocked,
21 int messageExpirationTimer,
22 GroupPermission permissionAddMember,
23 GroupPermission permissionEditDetails,
24 GroupPermission permissionSendMessage,
25 boolean isMember,
26 boolean isAdmin
27 ) {
28
29 public static Group from(
30 final GroupInfo groupInfo, final RecipientAddressResolver recipientStore, final RecipientId selfRecipientId
31 ) {
32 return new Group(groupInfo.getGroupId(),
33 groupInfo.getTitle(),
34 groupInfo.getDescription(),
35 groupInfo.getGroupInviteLink(),
36 groupInfo.getMembers()
37 .stream()
38 .map(recipientStore::resolveRecipientAddress)
39 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
40 .collect(Collectors.toSet()),
41 groupInfo.getPendingMembers()
42 .stream()
43 .map(recipientStore::resolveRecipientAddress)
44 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
45 .collect(Collectors.toSet()),
46 groupInfo.getRequestingMembers()
47 .stream()
48 .map(recipientStore::resolveRecipientAddress)
49 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
50 .collect(Collectors.toSet()),
51 groupInfo.getAdminMembers()
52 .stream()
53 .map(recipientStore::resolveRecipientAddress)
54 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
55 .collect(Collectors.toSet()),
56 groupInfo.getBannedMembers()
57 .stream()
58 .map(recipientStore::resolveRecipientAddress)
59 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
60 .collect(Collectors.toSet()),
61 groupInfo.isBlocked(),
62 groupInfo.getMessageExpirationTimer(),
63 groupInfo.getPermissionAddMember(),
64 groupInfo.getPermissionEditDetails(),
65 groupInfo.getPermissionSendMessage(),
66 groupInfo.isMember(selfRecipientId),
67 groupInfo.isAdmin(selfRecipientId));
68 }
69 }