Coverage for dakweb/routers/archive.py: 100%
14 statements
« prev ^ index » next coverage.py v7.6.0, created at 2026-08-03 16:46 +0000
« prev ^ index » next coverage.py v7.6.0, created at 2026-08-03 16:46 +0000
1# SPDX-License-Identifier: GPL-2.0-or-later
2# © 2026, Ansgar 🙀 <ansgar@debian.org>
3# © 2026, Anton Gladky <gladk@debian.org>
5from fastapi import APIRouter, Depends
6from pydantic import BaseModel
7from sqlalchemy import select
8from sqlalchemy.orm import Session
10from daklib.dbconn import Archive
11from dakweb.routers.deps import get_db
13router = APIRouter()
16class Archives(BaseModel):
17 name: str
18 suites: list[str]
21@router.get("/archives")
22def archives(db: Session = Depends(get_db)) -> list[Archives]:
23 """Give information about all known archives (sets of suites)."""
25 stmt = select(Archive).order_by(Archive.archive_name)
27 return [
28 Archives(
29 name=archive.archive_name,
30 suites=[suite.suite_name for suite in archive.suites],
31 )
32 for archive in db.scalars(stmt)
33 ]