]> git.ipfire.org Git - dbl.git/commitdiff
api: List the sources of a list
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 29 Dec 2025 17:49:13 +0000 (17:49 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 29 Dec 2025 17:49:13 +0000 (17:49 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/dnsbl/api/lists.py
src/dnsbl/sources.py

index a33d21d817e7da31f61210db3ae9b755f0a3f383..7dc44390e3f07ebac3cb440bee72e24b1280dbe9 100644 (file)
@@ -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)
index c53a164441b2b2e741d67f20fb8520feedec82e7..3e593916eabcac526941c2b17e1787e27721e082 100644 (file)
@@ -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