diff options
| author | Barry Warsaw | 2009-07-16 22:36:06 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2009-07-16 22:36:06 -0400 |
| commit | 1bfc7f302f2730a679b2a4a103c2978d8e7c70ae (patch) | |
| tree | 3d69d43841dcf838e9778d2e83cc3e58a7b9ed20 /src/mailman/rest/adapters.py | |
| parent | ac3af23142c9b2417759f90837d68e15866b6793 (diff) | |
| download | mailman-1bfc7f302f2730a679b2a4a103c2978d8e7c70ae.tar.gz mailman-1bfc7f302f2730a679b2a4a103c2978d8e7c70ae.tar.zst mailman-1bfc7f302f2730a679b2a4a103c2978d8e7c70ae.zip | |
Diffstat (limited to 'src/mailman/rest/adapters.py')
| -rw-r--r-- | src/mailman/rest/adapters.py | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/mailman/rest/adapters.py b/src/mailman/rest/adapters.py index d5ae01498..50ef89b18 100644 --- a/src/mailman/rest/adapters.py +++ b/src/mailman/rest/adapters.py @@ -21,37 +21,43 @@ from __future__ import absolute_import, unicode_literals __metaclass__ = type __all__ = [ - 'DomainSet', + 'DomainCollection', ] +from operator import attrgetter + from zope.interface import implements from zope.publisher.interfaces import NotFound -from mailman.interfaces.domain import IDomainSet +from mailman.interfaces.domain import IDomainCollection from mailman.interfaces.rest import IResolvePathNames -class DomainSet: +class DomainCollection: """Sets of known domains.""" - implements(IDomainSet, IResolvePathNames) + implements(IDomainCollection, IResolvePathNames) __name__ = 'domains' - def __init__(self, config): - self._config = config + def __init__(self, manager): + """Initialize the adapter from an `IDomainManager`. + + :param manager: The domain manager. + :type manager: `IDomainManager`. + """ + self._manager = manager def get_domains(self): - """See `IDomainSet`.""" - # lazr.restful will not allow this to be a generator. - domains = self._config.domains - return [domains[domain] for domain in sorted(domains)] + """See `IDomainCollection`.""" + # lazr.restful requires the return value to be a concrete list. + return sorted(self._manager, key=attrgetter('email_host')) def get(self, name): """See `IResolvePathNames`.""" - domain = self._config.domains.get(name) + domain = self._manager.get(name) if domain is None: raise NotFound(self, name) return domain |
