summaryrefslogtreecommitdiff
path: root/src/mailman/rest/members.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/rest/members.py')
-rw-r--r--src/mailman/rest/members.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/mailman/rest/members.py b/src/mailman/rest/members.py
index d6a57a673..41cf56e3c 100644
--- a/src/mailman/rest/members.py
+++ b/src/mailman/rest/members.py
@@ -38,7 +38,7 @@ from mailman.interfaces.user import IUser, UnverifiedAddressError
from mailman.interfaces.usermanager import IUserManager
from mailman.rest.helpers import (
CollectionMixin, NotFound, accepted, bad_request, child, conflict,
- created, etag, no_content, not_found, okay, paginate, path_to)
+ created, etag, no_content, not_found, okay, paginate)
from mailman.rest.preferences import Preferences, ReadOnlyPreferences
from mailman.rest.validator import (
Validator, enum_validator, subscriber_validator)
@@ -65,15 +65,16 @@ class _MemberBase(CollectionMixin):
list_id=member.list_id,
email=member.address.email,
role=role,
- address=path_to('addresses/{}'.format(member.address.email)),
- self_link=path_to('members/{}'.format(member_id)),
+ address=self.path_to('addresses/{}'.format(member.address.email)),
+ self_link=self.path_to('members/{}'.format(member_id)),
delivery_mode=member.delivery_mode,
member_id=member_id,
)
# Add the user link if there is one.
user = member.user
if user is not None:
- response['user'] = path_to('users/{}'.format(user.user_id.int))
+ response['user'] = self.path_to(
+ 'users/{}'.format(user.user_id.int))
return response
@paginate
@@ -277,7 +278,7 @@ class AllMembers(_MemberBase):
# UUIDs and need to be converted to URLs because JSON doesn't
# directly support UUIDs.
member_id = member.member_id.int
- location = path_to('members/{0}'.format(member_id))
+ location = self.path_to('members/{0}'.format(member_id))
created(response, location)
return
# The member could not be directly subscribed because there are
@@ -327,9 +328,8 @@ class AllMembers(_MemberBase):
# UUIDs and need to be converted to URLs because JSON doesn't
# directly support UUIDs.
member_id = member.member_id.int
- location = path_to('members/{0}'.format(member_id))
+ location = self.path_to('members/{0}'.format(member_id))
created(response, location)
- return
def on_get(self, request, response):
"""/members"""
@@ -341,9 +341,10 @@ class AllMembers(_MemberBase):
class _FoundMembers(MemberCollection):
"""The found members collection."""
- def __init__(self, members):
- super(_FoundMembers, self).__init__()
+ def __init__(self, members, api_version):
+ super().__init__()
self._members = members
+ self.api_version = api_version
def _get_collection(self, request):
"""See `CollectionMixin`."""
@@ -367,5 +368,5 @@ class FindMembers(_MemberBase):
except ValueError as error:
bad_request(response, str(error))
else:
- resource = _FoundMembers(members)._make_collection(request)
- okay(response, etag(resource))
+ resource = _FoundMembers(members, self.api_version)
+ okay(response, etag(resource._make_collection(request)))