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