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) ]