mirror of
https://github.com/lnbits/lnbits.git
synced 2025-06-28 17:50:56 +02:00
Made reliable
Fixed issue scanning tickets by adding "ticket://" prefix
This commit is contained in:
parent
41dc1b0512
commit
1c77d165e2
@ -16,7 +16,7 @@ async def create_ticket(
|
|||||||
INSERT INTO events.ticket (id, wallet, event, name, email, registered, paid)
|
INSERT INTO events.ticket (id, wallet, event, name, email, registered, paid)
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||||
""",
|
""",
|
||||||
(payment_hash, wallet, event, name, email, False, False),
|
(payment_hash, wallet, event, name, email, False, True),
|
||||||
)
|
)
|
||||||
|
|
||||||
ticket = await get_ticket(payment_hash)
|
ticket = await get_ticket(payment_hash)
|
||||||
|
@ -135,14 +135,8 @@
|
|||||||
var self = this
|
var self = this
|
||||||
axios
|
axios
|
||||||
|
|
||||||
.post(
|
.get(
|
||||||
'/events/api/v1/tickets/' + '{{ event_id }}/{{ event_price }}',
|
'/events/api/v1/tickets/' + '{{ event_id }}'
|
||||||
{
|
|
||||||
event: '{{ event_id }}',
|
|
||||||
event_name: '{{ event_name }}',
|
|
||||||
name: self.formDialog.data.name,
|
|
||||||
email: self.formDialog.data.email
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
.then(function (response) {
|
.then(function (response) {
|
||||||
self.paymentReq = response.data.payment_request
|
self.paymentReq = response.data.payment_request
|
||||||
@ -161,7 +155,13 @@
|
|||||||
|
|
||||||
paymentChecker = setInterval(function () {
|
paymentChecker = setInterval(function () {
|
||||||
axios
|
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) {
|
.then(function (res) {
|
||||||
if (res.data.paid) {
|
if (res.data.paid) {
|
||||||
clearInterval(paymentChecker)
|
clearInterval(paymentChecker)
|
||||||
|
@ -133,7 +133,7 @@
|
|||||||
var self = this
|
var self = this
|
||||||
|
|
||||||
LNbits.api
|
LNbits.api
|
||||||
.request('GET', '/events/api/v1/register/ticket/' + res)
|
.request('GET', '/events/api/v1/register/ticket/' + res.split("//")[1])
|
||||||
.then(function (response) {
|
.then(function (response) {
|
||||||
self.$q.notify({
|
self.$q.notify({
|
||||||
type: 'positive',
|
type: 'positive',
|
||||||
|
@ -13,9 +13,8 @@
|
|||||||
<br />
|
<br />
|
||||||
|
|
||||||
<qrcode
|
<qrcode
|
||||||
:value="'{{ ticket_id }}'"
|
:value="'ticket://{{ ticket_id }}'"
|
||||||
:options="{width: 340}"
|
:options="{width: 500}"
|
||||||
class="rounded-borders"
|
|
||||||
></qrcode>
|
></qrcode>
|
||||||
<br />
|
<br />
|
||||||
<q-btn @click="printWindow" color="grey" class="q-ml-auto">
|
<q-btn @click="printWindow" color="grey" class="q-ml-auto">
|
||||||
|
@ -97,8 +97,8 @@ async def api_tickets(
|
|||||||
return [ticket.dict() for ticket in await get_tickets(wallet_ids)]
|
return [ticket.dict() for ticket in await get_tickets(wallet_ids)]
|
||||||
|
|
||||||
|
|
||||||
@events_ext.post("/api/v1/tickets/{event_id}/{sats}")
|
@events_ext.get("/api/v1/tickets/{event_id}")
|
||||||
async def api_ticket_make_ticket(event_id, sats, data: CreateTicket):
|
async def api_ticket_make_ticket(event_id):
|
||||||
event = await get_event(event_id)
|
event = await get_event(event_id)
|
||||||
if not event:
|
if not event:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
@ -107,13 +107,22 @@ async def api_ticket_make_ticket(event_id, sats, data: CreateTicket):
|
|||||||
try:
|
try:
|
||||||
payment_hash, payment_request = await create_invoice(
|
payment_hash, payment_request = await create_invoice(
|
||||||
wallet_id=event.wallet,
|
wallet_id=event.wallet,
|
||||||
amount=int(sats),
|
amount=event.price_per_ticket,
|
||||||
memo=f"{event_id}",
|
memo=f"{event_id}",
|
||||||
extra={"tag": "events"},
|
extra={"tag": "events"},
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise HTTPException(status_code=HTTPStatus.INTERNAL_SERVER_ERROR, detail=str(e))
|
raise HTTPException(status_code=HTTPStatus.INTERNAL_SERVER_ERROR, detail=str(e))
|
||||||
|
|
||||||
|
return {"payment_hash": payment_hash, "payment_request": payment_request}
|
||||||
|
|
||||||
|
|
||||||
|
@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"]:
|
||||||
ticket = await create_ticket(
|
ticket = await create_ticket(
|
||||||
payment_hash=payment_hash,
|
payment_hash=payment_hash,
|
||||||
wallet=event.wallet,
|
wallet=event.wallet,
|
||||||
@ -127,17 +136,6 @@ async def api_ticket_make_ticket(event_id, sats, data: CreateTicket):
|
|||||||
status_code=HTTPStatus.NOT_FOUND, detail=f"Event could not be fetched."
|
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)
|
|
||||||
|
|
||||||
try:
|
|
||||||
status = await api_payment(payment_hash)
|
|
||||||
if status["paid"]:
|
|
||||||
await set_ticket_paid(payment_hash=payment_hash)
|
|
||||||
return {"paid": True, "ticket_id": ticket.id}
|
return {"paid": True, "ticket_id": ticket.id}
|
||||||
except Exception:
|
except Exception:
|
||||||
raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail="Not paid")
|
raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail="Not paid")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user