Raise 404 on tournament not found (#474)

This commit is contained in:
Erik Vroon
2024-02-13 10:06:59 +01:00
committed by GitHub
parent 6d6e9849ec
commit 6a0b9538eb
2 changed files with 10 additions and 6 deletions

View File

@@ -62,9 +62,14 @@ async def get_tournaments(
raise unauthorized_exception
case _, str(endpoint_name):
return TournamentsResponse(
data=[await sql_get_tournament_by_endpoint_name(endpoint_name)]
)
tournament = await sql_get_tournament_by_endpoint_name(endpoint_name)
if tournament is None:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="Can't find this tournament",
headers={"WWW-Authenticate": "Bearer"},
)
return TournamentsResponse(data=[tournament])
case _, _ if isinstance(user, UserPublic):
user_club_ids = await get_which_clubs_has_user_access_to(assert_some(user.id))

View File

@@ -26,7 +26,7 @@ async def sql_get_tournament(tournament_id: int) -> Tournament:
return Tournament.model_validate(dict(result._mapping))
async def sql_get_tournament_by_endpoint_name(endpoint_name: str) -> Tournament:
async def sql_get_tournament_by_endpoint_name(endpoint_name: str) -> Tournament | None:
query = """
SELECT *
FROM tournaments
@@ -34,8 +34,7 @@ async def sql_get_tournament_by_endpoint_name(endpoint_name: str) -> Tournament:
AND dashboard_public IS TRUE
"""
result = await database.fetch_one(query=query, values={"endpoint_name": endpoint_name})
assert result is not None
return Tournament.model_validate(dict(result._mapping))
return Tournament.model_validate(result) if result is not None else None
async def sql_get_tournaments(