From e42fdde2acad6b442d48b8a595f4c61b2447e00d Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Tue, 28 Dec 2021 14:47:44 +0000 Subject: [PATCH] fix wallet key permission for create --- lnbits/extensions/satspay/views_api.py | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/lnbits/extensions/satspay/views_api.py b/lnbits/extensions/satspay/views_api.py index a207113b6..8b5f7b9a4 100644 --- a/lnbits/extensions/satspay/views_api.py +++ b/lnbits/extensions/satspay/views_api.py @@ -5,7 +5,13 @@ from fastapi import Query from fastapi.params import Depends from starlette.exceptions import HTTPException -from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key +from lnbits.decorators import ( + WalletAdminKeyChecker, + WalletInvoiceKeyChecker, + WalletTypeInfo, + get_key_type, + require_admin_key, +) from lnbits.extensions.satspay import satspay_ext from .crud import ( @@ -20,20 +26,22 @@ from .models import CreateCharge #############################CHARGES########################## +@satspay_ext.post("/api/v1/charge", dependencies=[Depends(WalletInvoiceKeyChecker())]) +async def api_charge_create( + data: CreateCharge, + wallet: WalletTypeInfo = Depends(get_key_type) +): + charge = await create_charge(user=wallet.wallet.user, data=data) + return charge.dict() -@satspay_ext.post("/api/v1/charge") -@satspay_ext.put("/api/v1/charge/{charge_id}") -async def api_charge_create_or_update( +@satspay_ext.put("/api/v1/charge/{charge_id}", dependencies=[Depends(WalletAdminKeyChecker())]) +async def api_charge_update( data: CreateCharge, wallet: WalletTypeInfo = Depends(require_admin_key), charge_id=None, ): - if not charge_id: - charge = await create_charge(user=wallet.wallet.user, data=data) - return charge.dict() - else: - charge = await update_charge(charge_id=charge_id, data=data) - return charge.dict() + charge = await update_charge(charge_id=charge_id, data=data) + return charge.dict() @satspay_ext.get("/api/v1/charges")