From: Michael Tremer Date: Sat, 24 Jan 2026 15:38:59 +0000 (+0000) Subject: api: Allow to search for reports for a specific name X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d64f842b5860c36bd1ede45aa532d85f4f414bda;p=dbl.git api: Allow to search for reports for a specific name Signed-off-by: Michael Tremer --- diff --git a/src/dbl/api/lists.py b/src/dbl/api/lists.py index 05f0b5f..48550bd 100644 --- a/src/dbl/api/lists.py +++ b/src/dbl/api/lists.py @@ -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 diff --git a/src/dbl/lists.py b/src/dbl/lists.py index 315e002..7f0311a 100644 --- a/src/dbl/lists.py +++ b/src/dbl/lists.py @@ -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)