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

1from fastapi import FastAPI, Request 

2from fastapi.middleware.cors import CORSMiddleware 

3 

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 

10 

11app = FastAPI( 

12 root_path=ROOT_PATH, 

13 title="HostYourDocs REST API", 

14 version=__version__, 

15) 

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

17 

18#################################################################################################### 

19### Middleware 

20#################################################################################################### 

21 

22app.add_middleware( 

23 CORSMiddleware, 

24 allow_origins=["*"], 

25 allow_credentials=True, 

26 allow_methods=["*"], 

27 allow_headers=["*"], 

28) 

29 

30 

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

38 

39 

40#################################################################################################### 

41### Route setup 

42#################################################################################################### 

43 

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

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

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