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

1from fastapi import FastAPI, Request 

2from fastapi.middleware.cors import CORSMiddleware 

3 

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 

9 

10app = FastAPI(root_path=ROOT_PATH) 

11# https://fastapi.tiangolo.com/tutorial/cors/ 

12 

13#################################################################################################### 

14### Middleware 

15#################################################################################################### 

16 

17app.add_middleware( 

18 CORSMiddleware, 

19 allow_origins=["*"], 

20 allow_credentials=True, 

21 allow_methods=["*"], 

22 allow_headers=["*"], 

23) 

24 

25 

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() 

33 

34 

35#################################################################################################### 

36### Route setup 

37#################################################################################################### 

38 

39app.include_router(api_router, prefix="/api") 

40app.include_router(frontend_router, prefix="/simple") 

41app.include_router(footer_router, prefix="/footer")