]> git.ipfire.org Git - dbl.git/commitdiff
api: Allow to search for reports for a specific name
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 24 Jan 2026 15:38:59 +0000 (15:38 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 24 Jan 2026 15:38:59 +0000 (15:38 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/dbl/api/lists.py
src/dbl/lists.py

index 05f0b5febae1ae13baf25e1d6b44d16d49417155..48550bd33ba58a272e897367b0d544849e28912c 100644 (file)
@@ -80,9 +80,10 @@ def get_list_sources(list = fastapi.Depends(get_list_from_path)) -> typing.List[
 def get_list_reports(
                list = fastapi.Depends(get_list_from_path),
                open: bool | None = None,
+               name: str | None = None,
                limit: int | None = None
 ) -> typing.List[reports.Report]:
-       return list.get_reports(open=open, limit=limit)
+       return list.get_reports(open=open, name=name, limit=limit)
 
 @router.get("/{list}/domains/{name}")
 def get_list_domains(
@@ -91,6 +92,7 @@ def get_list_domains(
        # Fetch the domain history
        return list.get_domain_history(name)
 
+
 class CreateReport(pydantic.BaseModel):
        # Domain
        name : str
index 315e00263f964698571f7f256e3871d276804a13..7f0311a0f6ed9dae0ec4f4e1eba0e73eb507f839 100644 (file)
@@ -557,7 +557,7 @@ class List(sqlmodel.SQLModel, database.BackendMixin, table=True):
        # Reports
        reports : typing.List["Report"] = sqlmodel.Relationship(back_populates="list")
 
-       def get_reports(self, open=None, limit=None):
+       def get_reports(self, open=None, name=None, limit=None):
                """
                        Fetches the most recent reports
                """
@@ -584,6 +584,12 @@ class List(sqlmodel.SQLModel, database.BackendMixin, table=True):
                                reports.Report.closed_at == True,
                        )
 
+               # Optionally filter by name
+               if name:
+                       stmt = stmt.where(
+                               reports.Report.name == name,
+                       )
+
                # Optionally apply the limit
                if limit:
                        stmt = stmt.limit(limit)