From 04aefc8077718414777d5c7e2e29ef792e35f2d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Tue, 24 Sep 2024 10:56:34 +0200 Subject: [PATCH] refactor: remove `get_key_type` decorator (#2676) * refactor: remove `get_key_type` decorator breaking change for 1.0.0 --- lnbits/core/views/payment_api.py | 23 +++++++++++------------ lnbits/core/views/wallet_api.py | 17 ++++++++--------- lnbits/decorators.py | 9 --------- 3 files changed, 19 insertions(+), 30 deletions(-) diff --git a/lnbits/core/views/payment_api.py b/lnbits/core/views/payment_api.py index 6b932caa..2cb87c84 100644 --- a/lnbits/core/views/payment_api.py +++ b/lnbits/core/views/payment_api.py @@ -35,7 +35,6 @@ from lnbits.core.models import ( from lnbits.db import Filters, Page from lnbits.decorators import ( WalletTypeInfo, - get_key_type, parse_filters, require_admin_key, require_invoice_key, @@ -73,12 +72,12 @@ payment_router = APIRouter(prefix="/api/v1/payments", tags=["Payments"]) openapi_extra=generate_filter_params_openapi(PaymentFilters), ) async def api_payments( - wallet: WalletTypeInfo = Depends(get_key_type), + key_info: WalletTypeInfo = Depends(require_invoice_key), filters: Filters = Depends(parse_filters(PaymentFilters)), ): - await update_pending_payments(wallet.wallet.id) + await update_pending_payments(key_info.wallet.id) return await get_payments( - wallet_id=wallet.wallet.id, + wallet_id=key_info.wallet.id, pending=True, complete=True, filters=filters, @@ -92,12 +91,12 @@ async def api_payments( openapi_extra=generate_filter_params_openapi(PaymentFilters), ) async def api_payments_history( - wallet: WalletTypeInfo = Depends(get_key_type), + key_info: WalletTypeInfo = Depends(require_invoice_key), group: DateTrunc = Query("day"), filters: Filters[PaymentFilters] = Depends(parse_filters(PaymentFilters)), ): - await update_pending_payments(wallet.wallet.id) - return await get_payments_history(wallet.wallet.id, group, filters) + await update_pending_payments(key_info.wallet.id) + return await get_payments_history(key_info.wallet.id, group, filters) @payment_router.get( @@ -109,12 +108,12 @@ async def api_payments_history( openapi_extra=generate_filter_params_openapi(PaymentFilters), ) async def api_payments_paginated( - wallet: WalletTypeInfo = Depends(get_key_type), + key_info: WalletTypeInfo = Depends(require_invoice_key), filters: Filters = Depends(parse_filters(PaymentFilters)), ): - await update_pending_payments(wallet.wallet.id) + await update_pending_payments(key_info.wallet.id) page = await get_payments_paginated( - wallet_id=wallet.wallet.id, + wallet_id=key_info.wallet.id, pending=True, complete=True, filters=filters, @@ -378,10 +377,10 @@ async def subscribe_wallet_invoices(request: Request, wallet: Wallet): @payment_router.get("/sse") async def api_payments_sse( - request: Request, wallet: WalletTypeInfo = Depends(get_key_type) + request: Request, key_info: WalletTypeInfo = Depends(require_invoice_key) ): return EventSourceResponse( - subscribe_wallet_invoices(request, wallet.wallet), + subscribe_wallet_invoices(request, key_info.wallet), ping=20, media_type="text/event-stream", ) diff --git a/lnbits/core/views/wallet_api.py b/lnbits/core/views/wallet_api.py index 543dd1bd..f2ffcaab 100644 --- a/lnbits/core/views/wallet_api.py +++ b/lnbits/core/views/wallet_api.py @@ -13,8 +13,8 @@ from lnbits.core.models import ( ) from lnbits.decorators import ( WalletTypeInfo, - get_key_type, require_admin_key, + require_invoice_key, ) from ..crud import ( @@ -27,15 +27,14 @@ wallet_router = APIRouter(prefix="/api/v1/wallet", tags=["Wallet"]) @wallet_router.get("") -async def api_wallet(wallet: WalletTypeInfo = Depends(get_key_type)): +async def api_wallet(wallet: WalletTypeInfo = Depends(require_invoice_key)): + res = { + "name": wallet.wallet.name, + "balance": wallet.wallet.balance_msat, + } if wallet.key_type == KeyType.admin: - return { - "id": wallet.wallet.id, - "name": wallet.wallet.name, - "balance": wallet.wallet.balance_msat, - } - else: - return {"name": wallet.wallet.name, "balance": wallet.wallet.balance_msat} + res["id"] = wallet.wallet.id + return res @wallet_router.put("/{new_name}") diff --git a/lnbits/decorators.py b/lnbits/decorators.py index 2329b058..4581eab5 100644 --- a/lnbits/decorators.py +++ b/lnbits/decorators.py @@ -95,15 +95,6 @@ class KeyChecker(SecurityBase): return WalletTypeInfo(key_type, wallet) -async def get_key_type( - request: Request, - api_key_header: str = Security(api_key_header), - api_key_query: str = Security(api_key_query), -) -> WalletTypeInfo: - check: KeyChecker = KeyChecker(api_key=api_key_header or api_key_query) - return await check(request) - - async def require_admin_key( request: Request, api_key_header: str = Security(api_key_header),