1 package org
.asamk
.signal
.manager
.api
;
3 import org
.asamk
.signal
.manager
.groups
.GroupId
;
4 import org
.asamk
.signal
.manager
.groups
.GroupInviteLinkUrl
;
5 import org
.asamk
.signal
.manager
.groups
.GroupPermission
;
6 import org
.asamk
.signal
.manager
.helper
.RecipientAddressResolver
;
7 import org
.asamk
.signal
.manager
.storage
.groups
.GroupInfo
;
8 import org
.asamk
.signal
.manager
.storage
.recipients
.RecipientId
;
11 import java
.util
.stream
.Collectors
;
17 GroupInviteLinkUrl groupInviteLinkUrl
,
18 Set
<RecipientAddress
> members
,
19 Set
<RecipientAddress
> pendingMembers
,
20 Set
<RecipientAddress
> requestingMembers
,
21 Set
<RecipientAddress
> adminMembers
,
22 Set
<RecipientAddress
> bannedMembers
,
24 int messageExpirationTimer
,
25 GroupPermission permissionAddMember
,
26 GroupPermission permissionEditDetails
,
27 GroupPermission permissionSendMessage
,
32 public static Group
from(
33 final GroupInfo groupInfo
, final RecipientAddressResolver recipientStore
, final RecipientId selfRecipientId
35 return new Group(groupInfo
.getGroupId(),
37 groupInfo
.getDescription(),
38 groupInfo
.getGroupInviteLink(),
39 groupInfo
.getMembers()
41 .map(recipientStore
::resolveRecipientAddress
)
42 .map(org
.asamk
.signal
.manager
.storage
.recipients
.RecipientAddress
::toApiRecipientAddress
)
43 .collect(Collectors
.toSet()),
44 groupInfo
.getPendingMembers()
46 .map(recipientStore
::resolveRecipientAddress
)
47 .map(org
.asamk
.signal
.manager
.storage
.recipients
.RecipientAddress
::toApiRecipientAddress
)
48 .collect(Collectors
.toSet()),
49 groupInfo
.getRequestingMembers()
51 .map(recipientStore
::resolveRecipientAddress
)
52 .map(org
.asamk
.signal
.manager
.storage
.recipients
.RecipientAddress
::toApiRecipientAddress
)
53 .collect(Collectors
.toSet()),
54 groupInfo
.getAdminMembers()
56 .map(recipientStore
::resolveRecipientAddress
)
57 .map(org
.asamk
.signal
.manager
.storage
.recipients
.RecipientAddress
::toApiRecipientAddress
)
58 .collect(Collectors
.toSet()),
59 groupInfo
.getBannedMembers()
61 .map(recipientStore
::resolveRecipientAddress
)
62 .map(org
.asamk
.signal
.manager
.storage
.recipients
.RecipientAddress
::toApiRecipientAddress
)
63 .collect(Collectors
.toSet()),
64 groupInfo
.isBlocked(),
65 groupInfo
.getMessageExpirationTimer(),
66 groupInfo
.getPermissionAddMember(),
67 groupInfo
.getPermissionEditDetails(),
68 groupInfo
.getPermissionSendMessage(),
69 groupInfo
.isMember(selfRecipientId
),
70 groupInfo
.isAdmin(selfRecipientId
));