Skip to content

Commit a2428f5

Browse files
committed
membership-request [inveniosoftware#855]: implement decision flow
1 parent f4967e5 commit a2428f5

File tree

5 files changed

+445
-354
lines changed

5 files changed

+445
-354
lines changed

Diff for: invenio_communities/members/resources/resource.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ def create_url_rules(self):
3939
route(
4040
"GET", routes["membership_requests"], self.search_membership_requests
4141
),
42-
route("PUT", routes["membership_requests"], self.update_membership_requests),
42+
route(
43+
"PUT", routes["membership_requests"], self.update_membership_requests
44+
),
4345
]
4446

4547
@request_view_args

Diff for: invenio_communities/members/services/components.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ def _member_changed(self, member, community=None):
5252
for user_id in user_ids:
5353
on_user_membership_change(Identity(user_id))
5454

55-
def accept_invite(self, identity, record=None, data=None, **kwargs):
56-
"""On accept invite."""
55+
def accept_member_request(self, identity, record=None, data=None, **kwargs):
56+
"""Upon acceptance of a member request (invitation or membership request)."""
5757
self._member_changed(record)
5858

5959
def members_add(self, identity, record=None, community=None, data=None, **kwargs):

Diff for: invenio_communities/members/services/request.py

+18-13
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class AcceptAction(actions.AcceptAction):
4747

4848
def execute(self, identity, uow):
4949
"""Execute action."""
50-
service().accept_invite(system_identity, self.request.id, uow=uow)
50+
service().accept_member_request(system_identity, self.request.id, uow=uow)
5151
uow.register(
5252
NotificationOp(
5353
CommunityInvitationAcceptNotificationBuilder.build(self.request)
@@ -61,7 +61,7 @@ class DeclineAction(actions.DeclineAction):
6161

6262
def execute(self, identity, uow):
6363
"""Execute action."""
64-
service().decline_invite(system_identity, self.request.id, uow=uow)
64+
service().close_member_request(system_identity, self.request.id, uow=uow)
6565
uow.register(
6666
NotificationOp(
6767
CommunityInvitationDeclineNotificationBuilder.build(self.request)
@@ -75,7 +75,7 @@ class CancelAction(actions.CancelAction):
7575

7676
def execute(self, identity, uow):
7777
"""Execute action."""
78-
service().decline_invite(system_identity, self.request.id, uow=uow)
78+
service().close_member_request(system_identity, self.request.id, uow=uow)
7979
uow.register(
8080
NotificationOp(
8181
CommunityInvitationCancelNotificationBuilder.build(self.request)
@@ -89,7 +89,7 @@ class ExpireAction(actions.ExpireAction):
8989

9090
def execute(self, identity, uow):
9191
"""Execute action."""
92-
service().decline_invite(system_identity, self.request.id, uow=uow)
92+
service().close_member_request(system_identity, self.request.id, uow=uow)
9393
uow.register(
9494
NotificationOp(
9595
CommunityInvitationExpireNotificationBuilder.build(self.request)
@@ -141,27 +141,32 @@ class CancelMembershipRequestAction(actions.CancelAction):
141141

142142
def execute(self, identity, uow):
143143
"""Execute action."""
144-
service().close_membership_request(system_identity, self.request.id, uow=uow)
144+
service().close_member_request(system_identity, self.request.id, uow=uow)
145145
# TODO: Notification flow: Investigate notifications
146146
super().execute(identity, uow)
147147

148148

149-
class AcceptMembershipRequestAction(actions.AcceptAction):
150-
"""Accept membership request action."""
149+
class DeclineMembershipRequestAction(actions.DeclineAction):
150+
"""Decline membership request action."""
151151

152152
def execute(self, identity, uow):
153153
"""Execute action."""
154-
# TODO: Decision flow: Implement me
155-
pass
154+
service().close_member_request(system_identity, self.request.id, uow=uow)
155+
# TODO: Notification flow: Investigate notifications
156+
super().execute(identity, uow)
156157

157158

158-
class DeclineMembershipRequestAction(actions.DeclineAction):
159-
"""Decline membership request action."""
159+
# TODO: Expiration flow: ExpireAction
160+
161+
162+
class AcceptMembershipRequestAction(actions.AcceptAction):
163+
"""Accept membership request action."""
160164

161165
def execute(self, identity, uow):
162166
"""Execute action."""
163-
# TODO: Decision flow: Implement me
164-
pass
167+
service().accept_member_request(system_identity, self.request.id, uow=uow)
168+
# TODO: Notification flow: Investigate notifications
169+
super().execute(identity, uow)
165170

166171

167172
class MembershipRequestRequestType(RequestType):

0 commit comments

Comments
 (0)