fix(absences): POST /absences/ reicht warnings jetzt an den Client durch
Security Audit / Python Dependency Audit (push) Canceled after 0s
Security Audit / Node.js Dependency Audit (push) Canceled after 0s
Security Audit / Frontend Build (tsc + vite) (push) Canceled after 0s

create_absence() gibt (absence, warnings) zurück, der Router verwarf die
Warnungen bisher (im Unterschied zu approve_absence, das sie via
AbsenceApproveOut.warnings durchreicht). Neues AbsenceCreateOut-Schema
analog dazu. Regressionstest über Überschneidungs-Warnung.

Gefunden während Coverage-Arbeit an absence_service.py.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Ahyx6D3r7G1EuAc42nezn
This commit is contained in:
2026-09-02 23:54:02 +02:00
co-authored by Claude Sonnet 5
parent 3cf396b972
commit ac496a5f9b
2 changed files with 46 additions and 8 deletions
+8 -2
View File
@@ -262,7 +262,11 @@ async def list_absences(
return AbsenceListResponse(total=total, items=[AbsenceOut.model_validate(a) for a in absences])
@router.post("/absences/", response_model=AbsenceOut, status_code=201)
class AbsenceCreateOut(AbsenceOut):
warnings: list[str] = []
@router.post("/absences/", response_model=AbsenceCreateOut, status_code=201)
async def create_absence(
data: AbsenceCreate,
current_user: CurrentUser,
@@ -281,7 +285,9 @@ async def create_absence(
acting_user = target
absence, warnings = await absence_service.create_absence(data, acting_user, db)
await db.commit()
return AbsenceOut.model_validate(absence)
out = AbsenceCreateOut.model_validate(absence)
out.warnings = warnings
return out
@router.patch("/absences/{absence_id}", response_model=AbsenceOut)