mirror of
https://github.com/lnbits/lnbits.git
synced 2025-09-19 12:01:12 +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},
|
||||
)
|
||||
|
||||
resp = LnurlPayActionResponse(
|
||||
pr=payment_request,
|
||||
success_action=link.success_action(payment_hash),
|
||||
routes=[],
|
||||
)
|
||||
resp = {
|
||||
"routes": [],
|
||||
"pr": payment_request,
|
||||
}
|
||||
|
||||
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 lnurl import Lnurl, encode as lnurl_encode # type: ignore
|
||||
from lnurl.types import LnurlPayMetadata # type: ignore
|
||||
from lnurl.models import LnurlPaySuccessAction, MessageAction, UrlAction # type: ignore
|
||||
|
||||
|
||||
class PayLink(NamedTuple):
|
||||
@@ -36,15 +35,21 @@ class PayLink(NamedTuple):
|
||||
def lnurlpay_metadata(self) -> LnurlPayMetadata:
|
||||
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:
|
||||
url: ParseResult = urlparse(self.success_url)
|
||||
qs: Dict = parse_qs(url.query)
|
||||
qs["payment_hash"] = payment_hash
|
||||
url = url._replace(query=urlencode(qs, doseq=True))
|
||||
raw: str = urlunparse(url)
|
||||
return UrlAction(url=raw, description=self.success_text)
|
||||
return {
|
||||
"tag": "url",
|
||||
"description": self.success_text or "~",
|
||||
"url": urlunparse(url),
|
||||
}
|
||||
elif self.success_text:
|
||||
return MessageAction(message=self.success_text)
|
||||
return {
|
||||
"tag": "message",
|
||||
"message": self.success_text,
|
||||
}
|
||||
else:
|
||||
return None
|
||||
|
Reference in New Issue
Block a user