from fastapi import FastAPI, Response, Request from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates from felicity.core import get_settings settings = get_settings() STATIC_DIR = f"{settings.BASE_DIR}/templates/static/" def setup_webapp(app: FastAPI, serve_webapp: bool): backends = "/backends" if serve_webapp else "/" templates = Jinja2Templates(directory=STATIC_DIR) if serve_webapp: app.mount( "/assets", StaticFiles(directory=f"{STATIC_DIR}assets"), name="assets" ) @app.get("/", response_class=HTMLResponse) async def handler(request: Request): return templates.TemplateResponse( "index.html", context={"request": request} ) @app.get(backends) def api_gql_view(request): return Response( """