-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path__init__.py
40 lines (33 loc) · 1.17 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from fastapi import FastAPI, Request, Response
from fastapi.middleware.cors import CORSMiddleware
from sadco.api.routers import survey, survey_download, vos_survey, download_audit
from sadco.db import Session
from odp.version import VERSION
app = FastAPI(
title="SADCO API",
description="SADCO | SADCO Data Api",
version=VERSION,
docs_url='/swagger',
redoc_url='/docs',
)
app.include_router(survey.router, prefix='/survey', tags=['Survey'])
app.include_router(survey_download.router, prefix='/survey/download', tags=['Survey', 'Download'])
app.include_router(vos_survey.router, prefix='/vos_survey', tags=['Survey'])
app.include_router(download_audit.router, prefix='/downloads', tags=['Downloads', 'Audit'])
app.add_middleware(
CORSMiddleware,
# allow_origins=config.ODP.API.ALLOW_ORIGINS,
allow_methods=["*"],
allow_headers=["*"],
)
@app.middleware('http')
async def db_middleware(request: Request, call_next):
try:
response: Response = await call_next(request)
if 200 <= response.status_code < 400:
Session.commit()
else:
Session.rollback()
finally:
Session.remove()
return response