summaryrefslogtreecommitdiff
path: root/src/mailman/rest/root.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/rest/root.py')
-rw-r--r--src/mailman/rest/root.py17
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: