fix(absences): POST /absences/ reicht warnings jetzt an den Client durch
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user