diff --git a/api/libs/helper.py b/api/libs/helper.py index ba02fe1f5d..888a99fb5c 100644 --- a/api/libs/helper.py +++ b/api/libs/helper.py @@ -11,6 +11,7 @@ from collections.abc import Generator, Mapping from datetime import datetime from hashlib import sha256 from typing import TYPE_CHECKING, Annotated, Any, Optional, Union, cast +from uuid import UUID from zoneinfo import available_timezones from flask import Response, stream_with_context @@ -119,7 +120,17 @@ def uuid_value(value: Any) -> str: raise ValueError(error) -UUIDStrOrEmpty = Annotated[str, AfterValidator(uuid_value)] +def normalize_uuid(value: str | UUID | None) -> str | None: + if not value: + return None + + try: + return uuid_value(value) + except ValueError as exc: + raise ValueError("must be a valid UUID") from exc + + +UUIDStrOrEmpty = Annotated[str, AfterValidator(normalize_uuid)] def alphanumeric(value: str):