Source code for dakweb.routers.archive
# SPDX-License-Identifier: GPL-2.0-or-later
# © 2026, Ansgar 🙀 <ansgar@debian.org>
# © 2026, Anton Gladky <gladk@debian.org>
from fastapi import APIRouter, Depends
from pydantic import BaseModel
from sqlalchemy import select
from sqlalchemy.orm import Session
from daklib.dbconn import Archive
from dakweb.routers.deps import get_db
router = APIRouter()
[docs]
class Archives(BaseModel):
name: str
suites: list[str]
[docs]
@router.get("/archives")
def archives(db: Session = Depends(get_db)) -> list[Archives]:
"""Give information about all known archives (sets of suites)."""
stmt = select(Archive).order_by(Archive.archive_name)
return [
Archives(
name=archive.archive_name,
suites=[suite.suite_name for suite in archive.suites],
)
for archive in db.scalars(stmt)
]