work in progress on MarkdownTemplate interface
This commit is contained in:
@ -29,6 +29,8 @@ from .validation import (
|
||||
ValidAddressList,
|
||||
)
|
||||
|
||||
InvalidAddress = InvalidAddressError
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@ -72,6 +74,44 @@ class MarkdownTemplate:
|
||||
self.raw_content = self.load_raw_template(template_name)
|
||||
self.metadata, self.md_body = self.parse_template(self.raw_content)
|
||||
self.validate()
|
||||
self._from_email = self._init_from_email()
|
||||
self._to = self._init_address_list("to")
|
||||
self._cc = self._init_address_list("cc")
|
||||
self._bcc = self._init_address_list("bcc")
|
||||
self._reply_to = self._init_address_list("reply_to")
|
||||
|
||||
def _init_from_email(self) -> ValidAddress | None:
|
||||
raw_from = self.metadata.get("from_email")
|
||||
if raw_from:
|
||||
return ValidAddress.factory(raw_from)
|
||||
return None
|
||||
|
||||
def _init_address_list(self, key: str) -> ValidAddressList:
|
||||
raw_val = self.metadata.get(key)
|
||||
if not raw_val:
|
||||
return ValidAddressList()
|
||||
items = [raw_val] if isinstance(raw_val, str) else list(raw_val)
|
||||
return ValidAddressList(items)
|
||||
|
||||
@property
|
||||
def from_email(self) -> ValidAddress | None:
|
||||
return self._from_email
|
||||
|
||||
@property
|
||||
def to(self) -> ValidAddressList:
|
||||
return self._to
|
||||
|
||||
@property
|
||||
def cc(self) -> ValidAddressList:
|
||||
return self._cc
|
||||
|
||||
@property
|
||||
def bcc(self) -> ValidAddressList:
|
||||
return self._bcc
|
||||
|
||||
@property
|
||||
def reply_to(self) -> ValidAddressList:
|
||||
return self._reply_to
|
||||
|
||||
@classmethod
|
||||
def load_raw_template(cls, template_name: str) -> str:
|
||||
|
||||
Reference in New Issue
Block a user