mirror of
https://github.com/lnbits/lnbits.git
synced 2025-09-27 04:16:18 +02:00
lnurlp: only send success_action when it exists.
This commit is contained in:
@@ -95,10 +95,13 @@ async def api_lnurl_callback(link_id):
|
|||||||
extra={"tag": "lnurlp", "link": link.id, "comment": comment},
|
extra={"tag": "lnurlp", "link": link.id, "comment": comment},
|
||||||
)
|
)
|
||||||
|
|
||||||
resp = LnurlPayActionResponse(
|
resp = {
|
||||||
pr=payment_request,
|
"routes": [],
|
||||||
success_action=link.success_action(payment_hash),
|
"pr": payment_request,
|
||||||
routes=[],
|
}
|
||||||
)
|
|
||||||
|
|
||||||
return jsonify(resp.dict()), HTTPStatus.OK
|
success_action = link.success_action(payment_hash)
|
||||||
|
if success_action:
|
||||||
|
resp["success_action"] = success_action
|
||||||
|
|
||||||
|
return jsonify(), HTTPStatus.OK
|
||||||
|
@@ -5,7 +5,6 @@ from typing import NamedTuple, Optional, Dict
|
|||||||
from sqlite3 import Row
|
from sqlite3 import Row
|
||||||
from lnurl import Lnurl, encode as lnurl_encode # type: ignore
|
from lnurl import Lnurl, encode as lnurl_encode # type: ignore
|
||||||
from lnurl.types import LnurlPayMetadata # type: ignore
|
from lnurl.types import LnurlPayMetadata # type: ignore
|
||||||
from lnurl.models import LnurlPaySuccessAction, MessageAction, UrlAction # type: ignore
|
|
||||||
|
|
||||||
|
|
||||||
class PayLink(NamedTuple):
|
class PayLink(NamedTuple):
|
||||||
@@ -36,15 +35,21 @@ class PayLink(NamedTuple):
|
|||||||
def lnurlpay_metadata(self) -> LnurlPayMetadata:
|
def lnurlpay_metadata(self) -> LnurlPayMetadata:
|
||||||
return LnurlPayMetadata(json.dumps([["text/plain", self.description]]))
|
return LnurlPayMetadata(json.dumps([["text/plain", self.description]]))
|
||||||
|
|
||||||
def success_action(self, payment_hash: str) -> Optional[LnurlPaySuccessAction]:
|
def success_action(self, payment_hash: str) -> Optional[Dict]:
|
||||||
if self.success_url:
|
if self.success_url:
|
||||||
url: ParseResult = urlparse(self.success_url)
|
url: ParseResult = urlparse(self.success_url)
|
||||||
qs: Dict = parse_qs(url.query)
|
qs: Dict = parse_qs(url.query)
|
||||||
qs["payment_hash"] = payment_hash
|
qs["payment_hash"] = payment_hash
|
||||||
url = url._replace(query=urlencode(qs, doseq=True))
|
url = url._replace(query=urlencode(qs, doseq=True))
|
||||||
raw: str = urlunparse(url)
|
return {
|
||||||
return UrlAction(url=raw, description=self.success_text)
|
"tag": "url",
|
||||||
|
"description": self.success_text or "~",
|
||||||
|
"url": urlunparse(url),
|
||||||
|
}
|
||||||
elif self.success_text:
|
elif self.success_text:
|
||||||
return MessageAction(message=self.success_text)
|
return {
|
||||||
|
"tag": "message",
|
||||||
|
"message": self.success_text,
|
||||||
|
}
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
Reference in New Issue
Block a user