diff options
| author | Barry Warsaw | 2012-03-03 13:40:16 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2012-03-03 13:40:16 -0500 |
| commit | e09c13199c2a60724ee601902a51a816e627e024 (patch) | |
| tree | a203d3fd90e90ba4bb94e140a2f26e1b3b6f1827 /src/mailman/rest/root.py | |
| parent | 07aa6808fbc5288592c5a41c658882ad37756fca (diff) | |
| download | mailman-e09c13199c2a60724ee601902a51a816e627e024.tar.gz mailman-e09c13199c2a60724ee601902a51a816e627e024.tar.zst mailman-e09c13199c2a60724ee601902a51a816e627e024.zip | |
Diffstat (limited to 'src/mailman/rest/root.py')
| -rw-r--r-- | src/mailman/rest/root.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/mailman/rest/root.py b/src/mailman/rest/root.py index 794d7510f..8c1a31cf2 100644 --- a/src/mailman/rest/root.py +++ b/src/mailman/rest/root.py @@ -27,16 +27,19 @@ __all__ = [ from base64 import b64decode from restish import guard, http, resource +from zope.component import getUtility from mailman.config import config from mailman.core.constants import system_preferences from mailman.core.system import system +from mailman.interfaces.listmanager import IListManager from mailman.rest.addresses import AllAddresses, AnAddress from mailman.rest.domains import ADomain, AllDomains from mailman.rest.helpers import etag, path_to from mailman.rest.lists import AList, AllLists from mailman.rest.members import AMember, AllMembers, FindMembers from mailman.rest.preferences import ReadOnlyPreferences +from mailman.rest.templates import TemplateFinder from mailman.rest.users import AUser, AllUsers @@ -144,3 +147,24 @@ class TopLevel(resource.Resource): else: user_id = segments.pop(0) return AUser(user_id), segments + + @resource.child() + def templates(self, request, segments): + """/<api>/templates/<fqdn_listname>/<template>/[<language>] + + Use content negotiation to request language and suffix (content-type). + """ + if len(segments) == 3: + fqdn_listname, template, language = segments + elif len(segments) == 2: + fqdn_listname, template = segments + language = 'en' + else: + return http.bad_request() + mlist = getUtility(IListManager).get(fqdn_listname) + if mlist is None: + return http.not_found() + # XXX dig out content-type from request + content_type = None + return TemplateFinder( + fqdn_listname, template, language, content_type) |
