From 6f135c06960d23e0a34007a1eb35f3fea793ae20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Fri, 9 Feb 2024 08:08:37 +0100 Subject: [PATCH] feat: add `monitor` admin endpoint for listeners (#2242) this can be useful when debugging invoice listeners. in the future there coud be some monitor dashboard on the admin ui. --- lnbits/core/views/admin_api.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lnbits/core/views/admin_api.py b/lnbits/core/views/admin_api.py index 6eecdb94c..dffd3123c 100644 --- a/lnbits/core/views/admin_api.py +++ b/lnbits/core/views/admin_api.py @@ -17,9 +17,11 @@ from lnbits.core.services import ( update_cached_settings, update_wallet_balance, ) +from lnbits.core.tasks import api_invoice_listeners from lnbits.decorators import check_admin, check_super_user from lnbits.server import server_restart from lnbits.settings import AdminSettings, UpdateSettings, settings +from lnbits.tasks import invoice_listeners from .. import core_app_extra from ..crud import delete_admin_settings, get_admin_settings, update_admin_settings @@ -48,6 +50,19 @@ async def api_auditor(): ) +@admin_router.get( + "/admin/api/v1/monitor", + name="Monitor", + description="show the current listeners and other monitoring data", + dependencies=[Depends(check_admin)], +) +async def api_monitor(): + return { + "invoice_listeners": list(invoice_listeners.keys()), + "api_invoice_listeners": list(api_invoice_listeners.keys()), + } + + @admin_router.get("/admin/api/v1/settings/", response_model=Optional[AdminSettings]) async def api_get_settings( user: User = Depends(check_admin),