Coverage for /usr/lib/python3.10/site-packages/hyd/backend/app.py: 100%
18 statements
« prev ^ index » next coverage.py v7.0.3, created at 2023-01-05 15:47 +0000
« prev ^ index » next coverage.py v7.0.3, created at 2023-01-05 15:47 +0000
1from fastapi import FastAPI, Request
2from fastapi.middleware.cors import CORSMiddleware
4import hyd.backend.util.patch_fastapi # dirty openapi.json hack
5from hyd.backend.api import api_router
6from hyd.backend.db import SessionMaker
7from hyd.backend.frontend import footer_router, frontend_router
8from hyd.backend.util.const import ROOT_PATH
10app = FastAPI(root_path=ROOT_PATH)
11# https://fastapi.tiangolo.com/tutorial/cors/
13####################################################################################################
14### Middleware
15####################################################################################################
17app.add_middleware(
18 CORSMiddleware,
19 allow_origins=["*"],
20 allow_credentials=True,
21 allow_methods=["*"],
22 allow_headers=["*"],
23)
26@app.middleware("http")
27async def db_session_middleware(request: Request, call_next):
28 try:
29 request.state.db = SessionMaker()
30 return await call_next(request)
31 finally:
32 request.state.db.close()
35####################################################################################################
36### Route setup
37####################################################################################################
39app.include_router(api_router, prefix="/api")
40app.include_router(frontend_router, prefix="/simple")
41app.include_router(footer_router, prefix="/footer")