added require_invoice_key
clean up
This commit is contained in:
parent
0ef0188462
commit
df2345bda9
2 changed files with 22 additions and 5 deletions
|
|
@ -171,6 +171,24 @@ async def require_admin_key(
|
||||||
else:
|
else:
|
||||||
return wallet
|
return wallet
|
||||||
|
|
||||||
|
async def require_invoice_key(
|
||||||
|
r: Request,
|
||||||
|
api_key_header: str = Security(api_key_header),
|
||||||
|
api_key_query: str = Security(api_key_query),
|
||||||
|
):
|
||||||
|
token = api_key_header if api_key_header else api_key_query
|
||||||
|
|
||||||
|
wallet = await get_key_type(r, token)
|
||||||
|
|
||||||
|
if wallet.wallet_type > 1:
|
||||||
|
# If wallet type is not invoice then return the unauthorized status
|
||||||
|
# This also covers when the user passes an invalid key type
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_401_UNAUTHORIZED, detail="Invoice (or Admin) key required."
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return wallet
|
||||||
|
|
||||||
|
|
||||||
async def check_user_exists(usr: UUID4) -> User:
|
async def check_user_exists(usr: UUID4) -> User:
|
||||||
g().user = await get_user(usr.hex)
|
g().user = await get_user(usr.hex)
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,10 @@ from fastapi.params import Depends
|
||||||
from starlette.exceptions import HTTPException
|
from starlette.exceptions import HTTPException
|
||||||
|
|
||||||
from lnbits.decorators import (
|
from lnbits.decorators import (
|
||||||
WalletAdminKeyChecker,
|
|
||||||
WalletInvoiceKeyChecker,
|
|
||||||
WalletTypeInfo,
|
WalletTypeInfo,
|
||||||
get_key_type,
|
get_key_type,
|
||||||
require_admin_key,
|
require_admin_key,
|
||||||
|
require_invoice_key,
|
||||||
)
|
)
|
||||||
from lnbits.extensions.satspay import satspay_ext
|
from lnbits.extensions.satspay import satspay_ext
|
||||||
|
|
||||||
|
|
@ -26,15 +25,15 @@ from .models import CreateCharge
|
||||||
|
|
||||||
#############################CHARGES##########################
|
#############################CHARGES##########################
|
||||||
|
|
||||||
@satspay_ext.post("/api/v1/charge", dependencies=[Depends(WalletInvoiceKeyChecker())])
|
@satspay_ext.post("/api/v1/charge")
|
||||||
async def api_charge_create(
|
async def api_charge_create(
|
||||||
data: CreateCharge,
|
data: CreateCharge,
|
||||||
wallet: WalletTypeInfo = Depends(get_key_type)
|
wallet: WalletTypeInfo = Depends(require_invoice_key)
|
||||||
):
|
):
|
||||||
charge = await create_charge(user=wallet.wallet.user, data=data)
|
charge = await create_charge(user=wallet.wallet.user, data=data)
|
||||||
return charge.dict()
|
return charge.dict()
|
||||||
|
|
||||||
@satspay_ext.put("/api/v1/charge/{charge_id}", dependencies=[Depends(WalletAdminKeyChecker())])
|
@satspay_ext.put("/api/v1/charge/{charge_id}")
|
||||||
async def api_charge_update(
|
async def api_charge_update(
|
||||||
data: CreateCharge,
|
data: CreateCharge,
|
||||||
wallet: WalletTypeInfo = Depends(require_admin_key),
|
wallet: WalletTypeInfo = Depends(require_admin_key),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue