diff options
Diffstat (limited to 'src/mailman/rest/root.py')
| -rw-r--r-- | src/mailman/rest/root.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mailman/rest/root.py b/src/mailman/rest/root.py index ff459bbcb..7f6be0353 100644 --- a/src/mailman/rest/root.py +++ b/src/mailman/rest/root.py @@ -34,6 +34,7 @@ from mailman.rest.members import AMember, AllMembers, FindMembers from mailman.rest.preferences import ReadOnlyPreferences from mailman.rest.queues import AQueue, AQueueFile, AllQueues from mailman.rest.templates import TemplateFinder +from mailman.rest.uris import ASiteURI, AllSiteURIs from mailman.rest.users import AUser, AllUsers, ServerOwners from zope.component import getUtility @@ -249,6 +250,9 @@ class TopLevel: Use content negotiation to context language and suffix (content-type). """ + # This resource is removed in API 3.1; use the /uris resource instead. + if self.api.version_info > (3, 0): + return NotFound(), [] if len(segments) == 3: fqdn_listname, template, language = segments elif len(segments) == 2: @@ -265,6 +269,19 @@ class TopLevel: fqdn_listname, template, language, content_type) @child() + def uris(self, content, segments): + if self.api.version_info < (3, 1): + return NotFound(), [] + if len(segments) == 0: + return AllSiteURIs() + if len(segments) > 1: + return BadRequest(), [] + template = segments[0] + if template not in AllSiteURIs.URIs: + return NotFound(), [] + return ASiteURI(template), [] + + @child() def queues(self, context, segments): """/<api>/queues[/<name>[/file]]""" if len(segments) == 0: |
