Create list
This commit is contained in:
parent
3f46bf74d8
commit
9b804cd31a
|
@ -1,4 +1,5 @@
|
||||||
from zeep.client import Client as ZeepClient, Settings as ZeepSettings
|
from zeep.client import Client as ZeepClient, Settings as ZeepSettings
|
||||||
|
from zeep.exceptions import Fault
|
||||||
|
|
||||||
from sympasoap.lists import MailingList, MLUser
|
from sympasoap.lists import MailingList, MLUser
|
||||||
|
|
||||||
|
@ -62,6 +63,17 @@ SUBTOPICS = [
|
||||||
"society/religion",
|
"society/religion",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
TEMPLATES = [
|
||||||
|
"confidential",
|
||||||
|
"discussion_list",
|
||||||
|
"hotline",
|
||||||
|
"html-news-letter",
|
||||||
|
"intranet_list",
|
||||||
|
"news-letter",
|
||||||
|
"private_working_group",
|
||||||
|
"public_web_forum",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class Client:
|
class Client:
|
||||||
def __init__(self, sympa_url: str):
|
def __init__(self, sympa_url: str):
|
||||||
|
@ -187,3 +199,15 @@ class Client:
|
||||||
ml = MailingList(**kwargs)
|
ml = MailingList(**kwargs)
|
||||||
lists.append(ml)
|
lists.append(ml)
|
||||||
return lists
|
return lists
|
||||||
|
|
||||||
|
def create_list(self, list_name: str, subject: str, template: str, description: str, topic: str,
|
||||||
|
use_custom_template: bool = False) -> bool:
|
||||||
|
if topic not in TOPICS and topic not in SUBTOPICS:
|
||||||
|
raise ValueError(f"Topic '{topic}' does not exist.")
|
||||||
|
if template not in TEMPLATES and not use_custom_template:
|
||||||
|
raise ValueError(f"Template '{template}' does not exist.")
|
||||||
|
try:
|
||||||
|
result = self.zeep.service.createList(list_name, subject, template, description, topic)
|
||||||
|
return result._raw_elements[0].text == "true"
|
||||||
|
except Fault:
|
||||||
|
raise Fault(f"An unknown error occured while creating the list {list_name}. Maybe the list already exists?")
|
||||||
|
|
Loading…
Reference in New Issue