from fastapi import APIRouter, Request from fastapi.responses import HTMLResponse import config router = APIRouter() def _render(request: Request, template: str, **kwargs) -> HTMLResponse: """Render using JinjaX catalog for all .jinja templates""" catalog = request.app.state.catalog html_content = catalog.render(template, **kwargs) return HTMLResponse(content=html_content) @router.get("/viewer/{pc_id}", response_class=HTMLResponse) async def viewer(request: Request, pc_id: str): return _render( request, "partials/viewer", pc_id=pc_id, embed_url=f"{config.BACKEND_INTERNAL_URL}/viewer-embed/{pc_id}", )