Skip to content

Commit 960c753

Browse files
code-rootclaude
andcommitted
fix: use model_validate instead of from_orm for FirmwareEntryResponse
Changed all FirmwareEntryResponse conversions from .from_orm() to .model_validate() for better error handling and Pydantic v2 compatibility. Also added default None values to Optional fields in FirmwareEntryResponse to ensure proper serialization when fields are null. Fixes 500 errors when retrieving firmware entries from database. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
1 parent bfb5028 commit 960c753

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

backend/api/routes/firmware_route.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,15 @@ class FirmwareEntryResponse(BaseModel):
109109
source: str
110110
device_model: str
111111
sales_code: str
112-
ap_version: Optional[str]
113-
csc_version: Optional[str]
114-
package_variant: Optional[str]
115-
country: Optional[str]
116-
language: Optional[str]
117-
filename: Optional[str]
112+
ap_version: Optional[str] = None
113+
csc_version: Optional[str] = None
114+
package_variant: Optional[str] = None
115+
country: Optional[str] = None
116+
language: Optional[str] = None
117+
filename: Optional[str] = None
118118
size_bytes: int
119-
local_path: Optional[str]
120-
notes: Optional[str]
119+
local_path: Optional[str] = None
120+
notes: Optional[str] = None
121121
created_at: datetime
122122
updated_at: datetime
123123

@@ -202,7 +202,7 @@ def upload_firmware_file(
202202
existing.local_path = str(dest_path)
203203
db.commit()
204204
db.refresh(existing)
205-
return FirmwareEntryResponse.from_orm(existing)
205+
return FirmwareEntryResponse.model_validate(existing)
206206

207207
# Create new entry
208208
entry = FirmwareEntry(
@@ -220,7 +220,7 @@ def upload_firmware_file(
220220
db.commit()
221221
db.refresh(entry)
222222

223-
return FirmwareEntryResponse.from_orm(entry)
223+
return FirmwareEntryResponse.model_validate(entry)
224224

225225

226226
@router.post("/download")
@@ -342,7 +342,7 @@ def list_firmware_entries(
342342
query = query.filter(FirmwareEntry.sales_code == csc)
343343

344344
entries = query.order_by(FirmwareEntry.created_at.desc()).all()
345-
return [FirmwareEntryResponse.from_orm(e) for e in entries]
345+
return [FirmwareEntryResponse.model_validate(e) for e in entries]
346346

347347

348348
@router.post("/entries")
@@ -383,7 +383,7 @@ def create_firmware_entry(
383383
db.add(entry)
384384
db.commit()
385385
db.refresh(entry)
386-
return FirmwareEntryResponse.from_orm(entry)
386+
return FirmwareEntryResponse.model_validate(entry)
387387

388388

389389
@router.put("/entries/{entry_id}")
@@ -411,7 +411,7 @@ def update_firmware_entry(
411411

412412
db.commit()
413413
db.refresh(entry)
414-
return FirmwareEntryResponse.from_orm(entry)
414+
return FirmwareEntryResponse.model_validate(entry)
415415

416416

417417
@router.delete("/entries/{entry_id}")

0 commit comments

Comments
 (0)