Browse Source

Added webhook for tickets

watchonly
benarc 4 years ago
parent
commit
16fff9899f
  1. 21
      lnbits/extensions/lnticket/crud.py
  2. 17
      lnbits/extensions/lnticket/templates/lnticket/display.html
  3. 2
      lnbits/extensions/lnticket/views_api.py
  4. 2
      lnbits/extensions/lnurlp/templates/lnurlp/index.html

21
lnbits/extensions/lnticket/crud.py

@ -4,7 +4,7 @@ from lnbits.helpers import urlsafe_short_hash
from . import db
from .models import Tickets, Forms
import httpx
async def create_ticket(
payment_hash: str,
@ -53,9 +53,24 @@ async def set_ticket_paid(payment_hash: str) -> Tickets:
(amount, row[1]),
)
ticket = await get_ticket(payment_hash)
async with httpx.AsyncClient() as client:
try:
r = await client.post(
formdata.webhook,
json={
"form": ticket.form,
"name": ticket.name,
"email": ticket.email,
"comment": ticket.ltext
},
timeout=40,
)
except AssertionError:
webhook = None
return ticket
ticket = await get_ticket(payment_hash)
assert ticket, "Newly updated ticket couldn't be retrieved"
return ticket
return
async def get_ticket(ticket_id: str) -> Optional[Tickets]:

17
lnbits/extensions/lnticket/templates/lnticket/display.html

@ -164,29 +164,30 @@
.get('/lnticket/api/v1/tickets/' + self.paymentCheck)
.then(function (res) {
if (res.data.paid) {
self.$q.notify({
type: 'positive',
message: 'Sent, thank you!',
icon: null
})
clearInterval(paymentChecker)
self.receive = {
show: false,
status: 'complete',
paymentReq: null
}
clearInterval(paymentChecker)
dismissMsg()
self.formDialog.data.name = ''
self.formDialog.data.email = ''
self.formDialog.data.text = ''
self.$q.notify({
type: 'positive',
message: 'Sent, thank you!',
icon: 'thumb_up',
})
}
})
.catch(function (error) {
LNbits.utils.notifyApiError(error)
})
}, 2000)
})
.catch(function (error) {
LNbits.utils.notifyApiError(error)

2
lnbits/extensions/lnticket/views_api.py

@ -139,7 +139,7 @@ async def api_ticket_send_ticket(payment_hash):
payment = await wallet.get_payment(payment_hash)
await payment.set_pending(False)
ticket = await set_ticket_paid(payment_hash=payment_hash)
return jsonify({"paid": True, "ticket_id": ticket.id}), HTTPStatus.OK
return jsonify({"paid": True}), HTTPStatus.OK
return jsonify({"paid": False}), HTTPStatus.OK

2
lnbits/extensions/lnurlp/templates/lnurlp/index.html

@ -205,7 +205,7 @@
v-model="formDialog.data.webhook_url"
type="text"
label="Webhook URL (optional)"
hint="An URL to be called whenever this link receives a payment."
hint="A URL to be called whenever this link receives a payment."
></q-input>
<q-input
filled

Loading…
Cancel
Save