Check if an email is subscribed in a list.
This commit is contained in:
parent
c083cc02ea
commit
d1419f91f4
|
@ -4,9 +4,9 @@ from zeep.client import Client as ZeepClient, Settings as ZeepSettings
|
||||||
class Client:
|
class Client:
|
||||||
def __init__(self, sympa_url: str):
|
def __init__(self, sympa_url: str):
|
||||||
self.sympa_url = sympa_url
|
self.sympa_url = sympa_url
|
||||||
self.zeep = ZeepClient(sympa_url + "/wsgl", settings=ZeepSettings(strict=False))
|
self.zeep = ZeepClient(sympa_url + "/wsdl", settings=ZeepSettings(strict=False))
|
||||||
|
|
||||||
def login(self, email, password):
|
def login(self, email: str, password: str) -> None:
|
||||||
"""
|
"""
|
||||||
Login into the API. Set a cookie for future connexions.
|
Login into the API. Set a cookie for future connexions.
|
||||||
"""
|
"""
|
||||||
|
@ -19,10 +19,21 @@ class Client:
|
||||||
raise Exception("Unknown error: given cookie is invalid")
|
raise Exception("Unknown error: given cookie is invalid")
|
||||||
print("Successfully authenticated!")
|
print("Successfully authenticated!")
|
||||||
|
|
||||||
def checkCookie(self):
|
def checkCookie(self) -> str:
|
||||||
"""
|
"""
|
||||||
From the current cookie, retrieve the email address.
|
From the current cookie, retrieve the email address.
|
||||||
"""
|
"""
|
||||||
result = self.zeep.service.checkCookie()
|
result = self.zeep.service.checkCookie()
|
||||||
element = result._raw_elements[0]
|
element = result._raw_elements[0]
|
||||||
return element.text
|
return element.text
|
||||||
|
|
||||||
|
def amI(self, mailing_list: str, function: str, email: str) -> bool:
|
||||||
|
"""
|
||||||
|
Check if the given `email` is a member of type `function` in the `mailing_list`.
|
||||||
|
The function parameter is one between subscriber, editor or owner.
|
||||||
|
"""
|
||||||
|
if function not in ["subscriber", "editor", "owner"]:
|
||||||
|
raise ValueError("function of a mailing list member must be subscriber, editor or owner.")
|
||||||
|
result = self.zeep.service.amI(mailing_list, function, email)
|
||||||
|
element = result._raw_elements[0]
|
||||||
|
return element.text == "true"
|
||||||
|
|
Loading…
Reference in New Issue