Molodetz blogrol volgens DPP-template

This commit is contained in:
2026-10-05 09:36:20 +02:00
commit f290a4c766
277 changed files with 15758 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
# retoor <retoor@molodetz.nl>
import json
from fastapi import Request
from fastapi.exceptions import RequestValidationError
from pydantic import ValidationError
async def json_or_form(request: Request, model):
content_type = request.headers.get("content-type", "")
if content_type.startswith("application/json"):
try:
data = await request.json()
except json.JSONDecodeError as exc:
raise RequestValidationError([{"loc": ("body",), "msg": "Invalid JSON", "type": "json_invalid"}]) from exc
if not isinstance(data, dict):
raise RequestValidationError([{"loc": ("body",), "msg": "Expected an object", "type": "type_error"}])
else:
form = await request.form()
data = {}
for key in form.keys():
values = [value for value in form.getlist(key) if value != ""]
if not values:
continue
data[key] = values if len(values) > 1 else values[0]
try:
return model.model_validate(data)
except ValidationError as exc:
raise RequestValidationError(exc.errors()) from exc