|
| 1 | +from __future__ import annotations |
| 2 | + |
| 3 | +import json |
| 4 | +from typing import TYPE_CHECKING, Union |
| 5 | + |
1 | 6 | from jinja2 import Environment, FileSystemLoader |
| 7 | + |
2 | 8 | from .template import Template |
3 | 9 |
|
| 10 | +if TYPE_CHECKING: |
| 11 | + from ..Socket.handler import Request |
4 | 12 |
|
5 | | -class RenderTemplate(): |
6 | | - def __init__(self, template_route: str, variables_dict: dict = None) -> None: |
7 | | - self.template_route = template_route |
8 | | - self.variables_dict = variables_dict |
9 | 13 |
|
10 | | - self.envirenemnt = Environment( |
11 | | - loader=FileSystemLoader(Template.TEMPLATE_PATH)) |
| 14 | +class RenderTemplate: |
| 15 | + |
| 16 | + def __init__(self, template_route: str, variables_dict: dict = None): |
| 17 | + self.template_route: str = template_route |
| 18 | + self.variables_dict: dict = variables_dict |
12 | 19 |
|
13 | | - def render_template(self, request): |
| 20 | + self.jinja_env: Environment = Environment(loader=FileSystemLoader(Template.TEMPLATE_PATH)) |
| 21 | + |
| 22 | + def render_template(self, request: Request) -> Union[str, bool]: |
14 | 23 | request.send_response(200) |
15 | | - request.send_header('Content-type', 'text/html') |
| 24 | + request.send_header('Content-Type', 'text/html') |
16 | 25 |
|
17 | | - template = self.envirenemnt.get_template(self.template_route) |
| 26 | + jinja_template = self.jinja_env.get_template(self.template_route) |
| 27 | + |
18 | 28 | if self.variables_dict is not None: |
19 | | - output = template.render(self.variables_dict) |
20 | | - else: |
21 | | - output = template.render() |
| 29 | + return jinja_template.render(self.variables_dict), False |
| 30 | + |
| 31 | + return jinja_template.render(), False |
| 32 | + |
| 33 | + |
| 34 | +class RenderJson: |
| 35 | + |
| 36 | + def __init__(self, json_to_render: Union[dict, list]): |
| 37 | + self.json_to_render: Union[dict, list] = json_to_render |
| 38 | + |
| 39 | + def render_template(self, request: Request) -> Union[str, bool]: |
| 40 | + request.send_response(200) |
| 41 | + request.send_header('Content-Type', 'application/json') |
22 | 42 |
|
23 | | - return output, False |
| 43 | + return json.dumps(self.json_to_render), False |
0 commit comments