summaryrefslogtreecommitdiff
path: root/src/mailman/rest/members.py
diff options
context:
space:
mode:
authorAurélien Bompard2015-12-15 19:40:15 +0100
committerBarry Warsaw2016-01-13 19:36:29 -0500
commitbbe2a437d2c1b369cc05abd0dae9305c36561202 (patch)
treee2091f732751fe3a64b9bea3da38b255a8e91fd2 /src/mailman/rest/members.py
parent5a6344a8506ef6d2032b9c76e54b0a5c5b887e9a (diff)
downloadmailman-bbe2a437d2c1b369cc05abd0dae9305c36561202.tar.gz
mailman-bbe2a437d2c1b369cc05abd0dae9305c36561202.tar.zst
mailman-bbe2a437d2c1b369cc05abd0dae9305c36561202.zip
Diffstat (limited to 'src/mailman/rest/members.py')
-rw-r--r--src/mailman/rest/members.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/mailman/rest/members.py b/src/mailman/rest/members.py
index 517e55344..b7807271f 100644
--- a/src/mailman/rest/members.py
+++ b/src/mailman/rest/members.py
@@ -356,19 +356,31 @@ class _FoundMembers(MemberCollection):
class FindMembers(_MemberBase):
"""/members/find"""
+ def on_get(self, request, response):
+ return self._find(request, response)
+
def on_post(self, request, response):
+ return self._find(request, response)
+
+ def _find(self, request, response):
"""Find a member"""
service = getUtility(ISubscriptionService)
validator = Validator(
list_id=str,
subscriber=str,
role=enum_validator(MemberRole),
- _optional=('list_id', 'subscriber', 'role'))
+ # Expect pagination
+ page=int,
+ count=int,
+ _optional=('list_id', 'subscriber', 'role', 'page', 'count'))
try:
data = validator(request)
except ValueError as error:
bad_request(response, str(error))
else:
+ # Remove pagination query elements, it will be handled later.
+ data.pop('page', None)
+ data.pop('count', None)
members = service.find_members(**data)
resource = _FoundMembers(members, self.api)
okay(response, etag(resource._make_collection(request)))