diff --git a/lnbits/extensions/events/crud.py b/lnbits/extensions/events/crud.py
index 9e04476d3..4cc86ac4d 100644
--- a/lnbits/extensions/events/crud.py
+++ b/lnbits/extensions/events/crud.py
@@ -16,7 +16,7 @@ async def create_ticket(
INSERT INTO events.ticket (id, wallet, event, name, email, registered, paid)
VALUES (?, ?, ?, ?, ?, ?, ?)
""",
- (payment_hash, wallet, event, name, email, False, False),
+ (payment_hash, wallet, event, name, email, False, True),
)
ticket = await get_ticket(payment_hash)
diff --git a/lnbits/extensions/events/templates/events/display.html b/lnbits/extensions/events/templates/events/display.html
index 4c1f557f1..7e62b7a74 100644
--- a/lnbits/extensions/events/templates/events/display.html
+++ b/lnbits/extensions/events/templates/events/display.html
@@ -135,14 +135,8 @@
var self = this
axios
- .post(
- '/events/api/v1/tickets/' + '{{ event_id }}/{{ event_price }}',
- {
- event: '{{ event_id }}',
- event_name: '{{ event_name }}',
- name: self.formDialog.data.name,
- email: self.formDialog.data.email
- }
+ .get(
+ '/events/api/v1/tickets/' + '{{ event_id }}'
)
.then(function (response) {
self.paymentReq = response.data.payment_request
@@ -161,7 +155,13 @@
paymentChecker = setInterval(function () {
axios
- .get('/events/api/v1/tickets/' + self.paymentCheck)
+ .post('/events/api/v1/tickets/' + '{{ event_id }}/' + self.paymentCheck,
+ {
+ event: '{{ event_id }}',
+ event_name: '{{ event_name }}',
+ name: self.formDialog.data.name,
+ email: self.formDialog.data.email
+ })
.then(function (res) {
if (res.data.paid) {
clearInterval(paymentChecker)
diff --git a/lnbits/extensions/events/templates/events/register.html b/lnbits/extensions/events/templates/events/register.html
index 4dff9afbb..3913cc0c4 100644
--- a/lnbits/extensions/events/templates/events/register.html
+++ b/lnbits/extensions/events/templates/events/register.html
@@ -133,7 +133,7 @@
var self = this
LNbits.api
- .request('GET', '/events/api/v1/register/ticket/' + res)
+ .request('GET', '/events/api/v1/register/ticket/' + res.split("//")[1])
.then(function (response) {
self.$q.notify({
type: 'positive',
diff --git a/lnbits/extensions/events/templates/events/ticket.html b/lnbits/extensions/events/templates/events/ticket.html
index a53f834f9..21b7cfa82 100644
--- a/lnbits/extensions/events/templates/events/ticket.html
+++ b/lnbits/extensions/events/templates/events/ticket.html
@@ -13,9 +13,8 @@
diff --git a/lnbits/extensions/events/views_api.py b/lnbits/extensions/events/views_api.py
index 87edb07da..45ee4de05 100644
--- a/lnbits/extensions/events/views_api.py
+++ b/lnbits/extensions/events/views_api.py
@@ -97,8 +97,8 @@ async def api_tickets(
return [ticket.dict() for ticket in await get_tickets(wallet_ids)]
-@events_ext.post("/api/v1/tickets/{event_id}/{sats}")
-async def api_ticket_make_ticket(event_id, sats, data: CreateTicket):
+@events_ext.get("/api/v1/tickets/{event_id}")
+async def api_ticket_make_ticket(event_id):
event = await get_event(event_id)
if not event:
raise HTTPException(
@@ -107,37 +107,35 @@ async def api_ticket_make_ticket(event_id, sats, data: CreateTicket):
try:
payment_hash, payment_request = await create_invoice(
wallet_id=event.wallet,
- amount=int(sats),
+ amount=event.price_per_ticket,
memo=f"{event_id}",
extra={"tag": "events"},
)
except Exception as e:
raise HTTPException(status_code=HTTPStatus.INTERNAL_SERVER_ERROR, detail=str(e))
- ticket = await create_ticket(
- payment_hash=payment_hash,
- wallet=event.wallet,
- event=event_id,
- name=data.name,
- email=data.email,
- )
-
- if not ticket:
- raise HTTPException(
- status_code=HTTPStatus.NOT_FOUND, detail=f"Event could not be fetched."
- )
-
return {"payment_hash": payment_hash, "payment_request": payment_request}
-@events_ext.get("/api/v1/tickets/{payment_hash}")
-async def api_ticket_send_ticket(payment_hash):
- ticket = await get_ticket(payment_hash)
-
+@events_ext.post("/api/v1/tickets/{event_id}/{payment_hash}")
+async def api_ticket_send_ticket(event_id, payment_hash, data: CreateTicket):
+ event = await get_event(event_id)
try:
status = await api_payment(payment_hash)
if status["paid"]:
- await set_ticket_paid(payment_hash=payment_hash)
+ ticket = await create_ticket(
+ payment_hash=payment_hash,
+ wallet=event.wallet,
+ event=event_id,
+ name=data.name,
+ email=data.email,
+ )
+
+ if not ticket:
+ raise HTTPException(
+ status_code=HTTPStatus.NOT_FOUND, detail=f"Event could not be fetched."
+ )
+
return {"paid": True, "ticket_id": ticket.id}
except Exception:
raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail="Not paid")