pyceo/ceo_common/model/RemoteMailmanService.py

21 lines
758 B
Python
Raw Normal View History

2021-07-24 17:09:10 -04:00
from zope import component
from zope.interface import implementer
from ..interfaces import IMailmanService, IConfig, IHTTPClient
@implementer(IMailmanService)
class RemoteMailmanService:
def __init__(self):
cfg = component.getUtility(IConfig)
2021-08-03 19:19:33 -04:00
self.mailman_host = cfg.get('ceod_mailman_host')
2021-07-24 17:09:10 -04:00
self.http_client = component.getUtility(IHTTPClient)
def subscribe(self, address: str, mailing_list: str):
resp = self.http_client.post(self.mailman_host, f'/api/mailman/{mailing_list}/{address}')
resp.raise_for_status()
def unsubscribe(self, address: str, mailing_list: str):
resp = self.http_client.delete(self.mailman_host, f'/api/mailman/{mailing_list}/{address}')
resp.raise_for_status()