From: Michael Tremer Date: Mon, 29 Dec 2025 13:47:10 +0000 (+0000) Subject: api: Add a simple endpoint to fetch all lists X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ce91b01d84b9f6ed27d8d30a57f219e92b221b8f;p=dbl.git api: Add a simple endpoint to fetch all lists Signed-off-by: Michael Tremer --- diff --git a/Makefile.am b/Makefile.am index f14ddba..9d2c33b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -61,7 +61,8 @@ dist_pkgpython_PYTHON = \ src/dnsbl/util.py dist_pkgpython_api_PYTHON = \ - src/dnsbl/api/__init__.py + src/dnsbl/api/__init__.py \ + src/dnsbl/api/lists.py pkgpython_apidir = $(pkgpythondir)/api diff --git a/src/dnsbl/api/__init__.py b/src/dnsbl/api/__init__.py index d0ad10e..901a4d3 100644 --- a/src/dnsbl/api/__init__.py +++ b/src/dnsbl/api/__init__.py @@ -32,7 +32,10 @@ app = fastapi.FastAPI( ) # Initialize the backend -app.state.backend = Backend( +backend = app.state.backend = Backend( config = "/etc/dnsbl.conf", debug = True, ) + +# Import any endpoints +from . import lists diff --git a/src/dnsbl/api/lists.py b/src/dnsbl/api/lists.py new file mode 100644 index 0000000..cb39904 --- /dev/null +++ b/src/dnsbl/api/lists.py @@ -0,0 +1,41 @@ +############################################################################### +# # +# dnsbl - A DNS Blocklist Compositor For IPFire # +# Copyright (C) 2025 IPFire Development Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +import fastapi +import typing + +from .. import lists + +# Import the main app +from . import app +from . import backend + +# Create a router +router = fastapi.APIRouter( + prefix="/lists", + tags=["Lists"], +) + +@router.get("") +def get_lists() -> typing.List[lists.List]: + return [l for l in backend.lists] + +# Include our endpoints +app.include_router(router)