fix: create and pay a ticket code

This commit is contained in:
Stefan Stammberger 2021-09-29 20:57:35 +02:00
parent 534dfdb4e0
commit 87c784aa0c
No known key found for this signature in database
GPG key ID: 645FA807E935D9D5
2 changed files with 6 additions and 11 deletions

View file

@ -4,25 +4,21 @@ from typing import List, Optional, Union
from lnbits.helpers import urlsafe_short_hash from lnbits.helpers import urlsafe_short_hash
from . import db from . import db
from .models import CreateFormData, Tickets, Forms from .models import CreateFormData, CreateTicketData, Tickets, Forms
import httpx import httpx
async def create_ticket( async def create_ticket(
payment_hash: str, payment_hash: str,
wallet: str, wallet: str,
form: str, data: CreateTicketData
name: str,
email: str,
ltext: str,
sats: int,
) -> Tickets: ) -> Tickets:
await db.execute( await db.execute(
""" """
INSERT INTO lnticket.ticket (id, form, email, ltext, name, wallet, sats, paid) INSERT INTO lnticket.ticket (id, form, email, ltext, name, wallet, sats, paid)
VALUES (?, ?, ?, ?, ?, ?, ?, ?) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
""", """,
(payment_hash, form, email, ltext, name, wallet, sats, False), (payment_hash, data.form, data.email, data.ltext, data.name, wallet, data.sats, False),
) )
ticket = await get_ticket(payment_hash) ticket = await get_ticket(payment_hash)

View file

@ -136,13 +136,12 @@ async def api_ticket_make_ticket(data: CreateTicketData, form_id):
) )
# return {"message": "LNTicket does not exist."}, HTTPStatus.NOT_FOUND # return {"message": "LNTicket does not exist."}, HTTPStatus.NOT_FOUND
nwords = len(re.split(r"\s+", data["ltext"])) nwords = len(re.split(r"\s+", data.ltext))
sats = data["sats"]
try: try:
payment_hash, payment_request = await create_invoice( payment_hash, payment_request = await create_invoice(
wallet_id=form.wallet, wallet_id=form.wallet,
amount=sats, amount=data.sats,
memo=f"ticket with {nwords} words on {form_id}", memo=f"ticket with {nwords} words on {form_id}",
extra={"tag": "lnticket"}, extra={"tag": "lnticket"},
) )
@ -154,7 +153,7 @@ async def api_ticket_make_ticket(data: CreateTicketData, form_id):
# return {"message": str(e)}, HTTPStatus.INTERNAL_SERVER_ERROR # return {"message": str(e)}, HTTPStatus.INTERNAL_SERVER_ERROR
ticket = await create_ticket( ticket = await create_ticket(
payment_hash=payment_hash, wallet=form.wallet, **data payment_hash=payment_hash, wallet=form.wallet, data=data
) )
if not ticket: if not ticket: