From 53018c16dd1c363e4cfe80044f23f19c222b3406 Mon Sep 17 00:00:00 2001 From: Gilles Soulier Date: Sat, 30 May 2026 10:15:15 +0200 Subject: [PATCH] =?UTF-8?q?fix(notes):=20erreur=20500=20sur=20les=20notes?= =?UTF-8?q?=20ant=C3=A9rieures=20(urls=3DNULL)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les notes créées avant la migration 0061 ont urls=NULL en base. Le défaut NoteResponse.urls=[] ne s'applique qu'à un attribut absent, pas à None, d'où ResponseValidationError "Input should be a valid list" → GET /api/notes 500 → "Erreur de chargement" côté UI. Ajoute un field_validator(mode='before') qui coerce None → []. Nettoie aussi l'import HttpUrl inutilisé. v0.5.16 Co-Authored-By: Claude Sonnet 4.6 --- backend/app/schemas/notes.py | 8 +++++++- frontend/package.json | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/app/schemas/notes.py b/backend/app/schemas/notes.py index 9098006..4a4d0de 100644 --- a/backend/app/schemas/notes.py +++ b/backend/app/schemas/notes.py @@ -1,6 +1,6 @@ import uuid from datetime import datetime -from pydantic import BaseModel, ConfigDict, HttpUrl, field_validator +from pydantic import BaseModel, ConfigDict, field_validator class NoteUrl(BaseModel): @@ -57,3 +57,9 @@ class NoteResponse(BaseModel): urls: list[NoteUrl] = [] created_at: datetime attachments: list[AttachmentResponse] + + @field_validator('urls', mode='before') + @classmethod + def coerce_urls(cls, v: object) -> object: + # Les notes antérieures à la migration 0061 ont urls=NULL en base. + return v or [] diff --git a/frontend/package.json b/frontend/package.json index f26a67a..36dee58 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "homehub-frontend", "private": true, - "version": "0.5.15", + "version": "0.5.16", "type": "module", "scripts": { "dev": "vite",