]> git.ipfire.org Git - pbs.git/commitdiff
api: builds: Add dependency function to fetch a build
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 12 Jul 2025 08:08:05 +0000 (08:08 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 12 Jul 2025 08:08:05 +0000 (08:08 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/api/builds.py

index 97a6004f452dc8e0a40b6ea3ba9ad007ac334ae4..3e7194cdc6c8c6bb5084903c8dfa8f89f20d32a8 100644 (file)
 ###############################################################################
 
 import fastapi
-import uuid
+
+from uuid import UUID
 
 from . import apiv1
 from . import backend
 
-from .. import builds
+# Import types
+from ..builds import Build
+
 
 # Create a new router for all builds endpoints
 router = fastapi.APIRouter(
@@ -32,10 +35,14 @@ router = fastapi.APIRouter(
        tags=["Builds"],
 )
 
-@router.get("/{build_id}")
-async def get(build_id: uuid.UUID) -> builds.Build:
-       build = await backend.builds.get_by_uuid(build_id)
+async def get_build_by_uuid(uuid: UUID) -> Build | None:
+       """
+               Fetches a build by its UUID
+       """
+       return await backend.builds.get_by_uuid(uuid)
 
+@router.get("/{uuid}")
+async def get(build: Build = fastapi.Depends(get_build_by_uuid)) -> Build:
        # Raise 404 if the build could not be found
        if not build:
                raise fastapi.HTTPException(404, "Build not found")