diff --git a/backend/app/routers/dashboard.py b/backend/app/routers/dashboard.py index a1d35bc..da89069 100644 --- a/backend/app/routers/dashboard.py +++ b/backend/app/routers/dashboard.py @@ -15,6 +15,7 @@ from collections import defaultdict from datetime import date, datetime, timedelta, timezone from fastapi import APIRouter, Depends, HTTPException, status +from fastapi.responses import Response from sqlalchemy.orm import Session from ..database import get_db @@ -136,15 +137,22 @@ def put_layout( return get_layout(db=db, user=user) -@router.delete("/layout", status_code=status.HTTP_204_NO_CONTENT) +@router.delete("/layout") def reset_layout( db: Session = Depends(get_db), user: User = Depends(get_current_user) -) -> None: - """Eigene Anordnung verwerfen – danach gilt wieder die Vorgabe.""" +) -> Response: + """Eigene Anordnung verwerfen – danach gilt wieder die Vorgabe. + + Der Statuscode steht bewusst am Response und nicht im Dekorator: Durch + ``from __future__ import annotations`` wird ``-> None`` zu einer Zeichenkette, + die FastAPI zu ``NoneType`` auflöst und als Antwortmodell wertet – zusammen + mit 204 (das keinen Rumpf haben darf) bricht der Start dann ab. + """ row = db.query(DashboardLayout).filter(DashboardLayout.user_id == user.id).first() if row is not None: db.delete(row) db.commit() + return Response(status_code=status.HTTP_204_NO_CONTENT) @router.put("/layout/default", response_model=DashboardLayoutOut)