]> nmode's Git Repositories - signal-cli/blob - 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
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,
31 final RecipientAddressResolver recipientStore,
32 final RecipientId selfRecipientId
33 ) {
34 return new Group(groupInfo.getGroupId(),
35 groupInfo.getTitle(),
36 groupInfo.getDescription(),
37 groupInfo.getGroupInviteLink(),
38 groupInfo.getMembers()
39 .stream()
40 .map(recipientStore::resolveRecipientAddress)
41 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
42 .collect(Collectors.toSet()),
43 groupInfo.getPendingMembers()
44 .stream()
45 .map(recipientStore::resolveRecipientAddress)
46 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
47 .collect(Collectors.toSet()),
48 groupInfo.getRequestingMembers()
49 .stream()
50 .map(recipientStore::resolveRecipientAddress)
51 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
52 .collect(Collectors.toSet()),
53 groupInfo.getAdminMembers()
54 .stream()
55 .map(recipientStore::resolveRecipientAddress)
56 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
57 .collect(Collectors.toSet()),
58 groupInfo.getBannedMembers()
59 .stream()
60 .map(recipientStore::resolveRecipientAddress)
61 .map(org.asamk.signal.manager.storage.recipients.RecipientAddress::toApiRecipientAddress)
62 .collect(Collectors.toSet()),
63 groupInfo.isBlocked(),
64 groupInfo.getMessageExpirationTimer(),
65 groupInfo.getPermissionAddMember(),
66 groupInfo.getPermissionEditDetails(),
67 groupInfo.getPermissionSendMessage(),
68 groupInfo.isMember(selfRecipientId),
69 groupInfo.isAdmin(selfRecipientId));
70 }
71 }