LNDHub loading, prob not working

This commit is contained in:
benarc
2021-10-13 16:47:24 +01:00
parent 0c6cd94154
commit 08bc771fbe
11 changed files with 471 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
from base64 import b64decode
from functools import wraps
from lnbits.core.crud import get_wallet_for_key
from fastapi import Request
from http import HTTPStatus
from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse, JSONResponse # type: ignore
def check_wallet(requires_admin=False):
def wrap(view):
@wraps(view)
async def wrapped_view(request: Request, **kwargs):
token = request.headers["Authorization"].split("Bearer ")[1]
key_type, key = b64decode(token).decode("utf-8").split(":")
if requires_admin and key_type != "admin":
raise HTTPException(
status_code=HTTPStatus.FORBIDDEN,
detail="insufficient permissions",
)
g.wallet = await get_wallet_for_key(key, key_type)
if not g.wallet:
raise HTTPException(
status_code=HTTPStatus.FORBIDDEN,
detail="insufficient permissions",
)
return await view(**kwargs)
return wrapped_view
return wrap