* Initial version with UI templates * Implement basic screens * Linting & bump to 0.3.0 * Tick off some TODOs
23 lines
743 B
Python
23 lines
743 B
Python
"""Helper functions for the integration."""
|
|
|
|
from homeassistant.components import http
|
|
from .views.loader import AsyncTemplateRenderer
|
|
|
|
|
|
def get_url(path: str) -> str:
|
|
"""Returns the requested path appended to the current request base URL."""
|
|
if (req := http.current_request.get()) is None:
|
|
raise RuntimeError("No current request in context")
|
|
|
|
base_uri = str(req.url).split("/auth", 2)[0]
|
|
return f"{base_uri}{path}"
|
|
|
|
|
|
async def get_view(template: str, parameters: dict | None = None) -> str:
|
|
"""Returns the generated HTML of the requested view."""
|
|
if parameters is None:
|
|
parameters = {}
|
|
|
|
renderer = AsyncTemplateRenderer()
|
|
return await renderer.render_template(f"{template}.html", **parameters)
|