File size: 923 Bytes
a5c1fa0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""Template rendering engine for email bodies."""

TEMPLATES = {
    "welcome": "Hello {username}, welcome to our platform! Your email {email} has been registered.",
    "reset": "Click here to reset your password: {link}. This was requested for {email}.",
    "notify": "Hi {username}, you have a new notification: {message}.",
}


def render_template(template_name: str, **kwargs) -> str:
    """
    Render an email template with the given keyword arguments.
    
    Expected kwargs per template:
    - welcome: username (str), email (str)
    - reset: email (str), link (str)
    - notify: username (str), message (str)
    """
    if template_name not in TEMPLATES:
        raise ValueError(f"Unknown template: {template_name}")
    
    template = TEMPLATES[template_name]
    try:
        return template.format(**kwargs)
    except KeyError as e:
        raise KeyError(f"Missing required template variable: {e}")