]> git.ipfire.org Git - pbs.git/commitdiff
api: packages: Add endpoint to fetch latest package by name
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 7 Jul 2025 12:48:08 +0000 (12:48 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 7 Jul 2025 12:48:08 +0000 (12:48 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/api/packages.py

index 4b333b2ad0afe014e23b0daf39fe50a1a5f79a32..0c31940372ad7e6151d4391c6d90f8cfe6840431 100644 (file)
@@ -24,6 +24,8 @@ import pydantic
 from . import apiv1
 from . import backend
 
+from ..packages import Package
+
 # Create a new router for all endpoints
 router = fastapi.APIRouter(
        prefix="/packages",
@@ -50,5 +52,15 @@ async def get_packages() -> list[PackageSummary]:
        """
        return [package async for package in backend.packages]
 
+
+@router.get("/{name}")
+async def get_package(name: str) -> Package:
+       build = await backend.builds.get_latest_by_name(name)
+       if not build:
+               raise fastapi.HTTPException(404, "Could not find package %s" % name)
+
+       # Return the source package
+       return build.pkg
+
 # Add everything to the APIv1
 apiv1.include_router(router)