Skip to content

Commit 8b7d299

Browse files
authored
Improve middleware.
1 parent d343a35 commit 8b7d299

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

app/main.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,18 @@ class Sources(str, enum.Enum):
4949
@APP.middleware("http")
5050
async def add_datasource(request: fastapi.Request, call_next):
5151
"""Attach the data source to the request.state."""
52-
source = request.query_params.get("source", default="jhu")
53-
request.state.source = data_source(source)
54-
LOGGER.info(f"source: {request.state.source.__class__.__name__}")
52+
# Retrieve the datas ource from query param.
53+
source = data_source(request.query_params.get('source', type=str, default='jhu'))
54+
55+
# Abort with 404 if source cannot be found.
56+
if not source:
57+
raise HTTPException(status_code=404, detail='The provided data-source was not found.')
58+
59+
# Attach source to request.
60+
request.state.source = source
61+
62+
# Move on...
63+
LOGGER.info(f"source: {source.__class__.__name__}")
5564
response = await call_next(request)
5665
return response
5766

0 commit comments

Comments
 (0)