fix: create and pay a ticket code
This commit is contained in:
parent
534dfdb4e0
commit
87c784aa0c
2 changed files with 6 additions and 11 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue