From 85ec111ff0e208d7dc17d8c9a7700c2c0e2f9035 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Tue, 20 Oct 2020 23:19:22 -0300 Subject: [PATCH] return proper error codes on /lnurlscan so the notification works. --- lnbits/core/services.py | 2 +- lnbits/core/views/api.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lnbits/core/services.py b/lnbits/core/services.py index a0b329a..e374d2d 100644 --- a/lnbits/core/services.py +++ b/lnbits/core/services.py @@ -19,7 +19,7 @@ from .crud import get_wallet, create_payment, delete_payment, check_internal, up def create_invoice( *, wallet_id: str, - amount: int, + amount: int, # in satoshis memo: str, description_hash: Optional[bytes] = None, extra: Optional[Dict] = None, diff --git a/lnbits/core/views/api.py b/lnbits/core/views/api.py index 8aab4cb..5dd6a4e 100644 --- a/lnbits/core/views/api.py +++ b/lnbits/core/views/api.py @@ -297,21 +297,24 @@ async def api_lnurlscan(code: str): domain = urlparse(url.url).netloc if url.is_login: - return jsonify({"domain": domain, "kind": "auth", "error": "unsupported"}) + return jsonify({"domain": domain, "kind": "auth", "error": "unsupported"}), HTTPStatus.BAD_REQUEST async with httpx.AsyncClient() as client: r = await client.get(url.url, timeout=40) if r.is_error: - return jsonify({"domain": domain, "error": "failed to get parameters"}) + return jsonify({"domain": domain, "error": "failed to get parameters"}), HTTPStatus.SERVICE_UNAVAILABLE try: jdata = json.loads(r.text) data: lnurl.LnurlResponseModel = lnurl.LnurlResponse.from_dict(jdata) except (json.decoder.JSONDecodeError, lnurl.exceptions.LnurlResponseException): - return jsonify({"domain": domain, "error": f"got invalid response '{r.text[:200]}'"}) + return ( + jsonify({"domain": domain, "error": f"got invalid response '{r.text[:200]}'"}), + HTTPStatus.SERVICE_UNAVAILABLE, + ) if type(data) is lnurl.LnurlChannelResponse: - return jsonify({"domain": domain, "kind": "channel", "error": "unsupported"}) + return jsonify({"domain": domain, "kind": "channel", "error": "unsupported"}), HTTPStatus.BAD_REQUEST params: Dict = data.dict() if type(data) is lnurl.LnurlWithdrawResponse: