Fix Bleskomat extension for FastAPI branch

This commit is contained in:
Charles Hill 2021-11-12 02:57:31 -05:00 committed by fiatjaf
parent 1cd7823998
commit 4c77d6f11e
4 changed files with 13 additions and 13 deletions

View File

@ -35,8 +35,8 @@ def generate_bleskomat_lnurl_secret(api_key_id: str, signature: str):
return m.hexdigest()
def get_callback_url(request: Request):
return request.url_for("bleskomat.api_bleskomat_lnurl")
def get_callback_url(req: Request):
return req.url_for("bleskomat.api_bleskomat_lnurl")
def is_supported_lnurl_subprotocol(tag: str) -> bool:

View File

@ -25,9 +25,9 @@ from .helpers import (
# Handles signed URL from Bleskomat ATMs and "action" callback of auto-generated LNURLs.
@bleskomat_ext.get("/u", name="bleskomat.api_bleskomat_lnurl")
async def api_bleskomat_lnurl(request: Request):
async def api_bleskomat_lnurl(req: Request):
try:
query = request.query_params
query = req.query_params
# Unshorten query if "s" is used instead of "signature".
if "s" in query:
@ -96,7 +96,7 @@ async def api_bleskomat_lnurl(request: Request):
)
# Reply with LNURL response object.
return lnurl.get_info_response_object(secret)
return lnurl.get_info_response_object(secret, req)
# No signature provided.
# Treat as "action" callback.

View File

@ -7,7 +7,7 @@ from pydantic import BaseModel, validator
from starlette.requests import Request
from lnbits import bolt11
from lnbits.core.services import pay_invoice
from lnbits.core.services import pay_invoice, PaymentFailure
from . import db
from .exchange_rates import exchange_rate_providers, fiat_currencies
@ -119,13 +119,13 @@ class BleskomatLnurl(BaseModel):
tag = self.tag
if tag == "withdrawRequest":
try:
payment_hash = await pay_invoice(
await pay_invoice(
wallet_id=self.wallet, payment_request=query["pr"]
)
except (ValueError, PermissionError, PaymentFailure) as e:
raise LnurlValidationError("Failed to pay invoice: " + str(e))
except Exception:
raise LnurlValidationError("Failed to pay invoice")
if not payment_hash:
raise LnurlValidationError("Failed to pay invoice")
raise LnurlValidationError("Unexpected error")
async def use(self, conn) -> bool:
now = int(time.time())

View File

@ -14,13 +14,13 @@ templates = Jinja2Templates(directory="templates")
@bleskomat_ext.get("/", response_class=HTMLResponse)
async def index(request: Request, user: User = Depends(check_user_exists)):
async def index(req: Request, user: User = Depends(check_user_exists)):
bleskomat_vars = {
"callback_url": get_callback_url(request=request),
"callback_url": get_callback_url(req),
"exchange_rate_providers": exchange_rate_providers_serializable,
"fiat_currencies": fiat_currencies,
}
return bleskomat_renderer().TemplateResponse(
"bleskomat/index.html",
{"request": request, "user": user.dict(), "bleskomat_vars": bleskomat_vars},
{"request": req, "user": user.dict(), "bleskomat_vars": bleskomat_vars},
)