From: Michael Tremer Date: Mon, 29 Dec 2025 17:49:13 +0000 (+0000) Subject: api: List the sources of a list X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5013e80430ae5ae827a5e5e9df3af432e2f49d95;p=dbl.git api: List the sources of a list Signed-off-by: Michael Tremer --- diff --git a/src/dnsbl/api/lists.py b/src/dnsbl/api/lists.py index a33d21d..7dc4439 100644 --- a/src/dnsbl/api/lists.py +++ b/src/dnsbl/api/lists.py @@ -22,6 +22,7 @@ import fastapi import typing from .. import lists +from .. import sources # Import the main app from . import app @@ -50,5 +51,9 @@ def get_list(list = fastapi.Depends(get_list_from_path)) -> lists.List: return list +@router.get("/{list}/sources") +def get_list_sources(list = fastapi.Depends(get_list_from_path)) -> typing.List[sources.Source]: + return list.sources + # Include our endpoints app.include_router(router) diff --git a/src/dnsbl/sources.py b/src/dnsbl/sources.py index c53a164..3e59391 100644 --- a/src/dnsbl/sources.py +++ b/src/dnsbl/sources.py @@ -118,7 +118,7 @@ class Source(sqlmodel.SQLModel, database.BackendMixin, table=True): return hash(self.id) # ID - id : int = sqlmodel.Field(primary_key=True) + id : int = sqlmodel.Field(primary_key=True, exclude=True) # Name name : str @@ -144,16 +144,16 @@ class Source(sqlmodel.SQLModel, database.BackendMixin, table=True): license : str # List ID - list_id : int = sqlmodel.Field(foreign_key="lists.id") + list_id : int = sqlmodel.Field(foreign_key="lists.id", exclude=True) # List list : "List" = sqlmodel.Relationship(back_populates="sources") # Last Modified At - last_modified_at : datetime.datetime | None + last_modified_at : datetime.datetime | None = sqlmodel.Field(exclude=True) # ETag - etag : str | None + etag : str | None = sqlmodel.Field(exclude=True) # Updated At updated_at : datetime.datetime | None