]> git.ipfire.org Git - pbs.git/commitdiff
api: Create an endpoint to fetch a package by its UUID
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 7 Jul 2025 12:59:20 +0000 (12:59 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 7 Jul 2025 12:59:20 +0000 (12:59 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/api/packages.py

index 0c31940372ad7e6151d4391c6d90f8cfe6840431..65189cbb6adebb647038d382245e5a6e09a4b4e7 100644 (file)
@@ -21,6 +21,9 @@
 import fastapi
 import pydantic
 
+# UUID
+from uuid import UUID
+
 from . import apiv1
 from . import backend
 
@@ -53,6 +56,15 @@ async def get_packages() -> list[PackageSummary]:
        return [package async for package in backend.packages]
 
 
+@router.get("/{uuid:uuid}")
+async def get_package_by_uuid(uuid: UUID) -> Package:
+       # Fetch the package by its UUID
+       pkg = await backend.packages.get_by_uuid(uuid)
+       if not pkg:
+               raise fastapi.HTTPException(404, "Could not find package %s" % id)
+
+       return pkg
+
 @router.get("/{name}")
 async def get_package(name: str) -> Package:
        build = await backend.builds.get_latest_by_name(name)