parent
4586164016
commit
c8b31d8e3f
7 changed files with 33 additions and 15 deletions
|
|
@ -1,4 +1,5 @@
|
|||
# Events - <small>[LNbits](https://github.com/lnbits/lnbits) extension</small>
|
||||
|
||||
<small>For more about LNBits extension check [this tutorial](https://github.com/lnbits/lnbits/wiki/LNbits-Extensions)</small>
|
||||
|
||||
## Sell tickets for events and use the built-in scanner for registering attendants
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "Events",
|
||||
"short_description": "Sell and register event tickets",
|
||||
"tile": "/events/static/image/events.png",
|
||||
"contributors": ["benarc"]
|
||||
"name": "Events",
|
||||
"short_description": "Sell and register event tickets",
|
||||
"tile": "/events/static/image/events.png",
|
||||
"contributors": ["benarc"]
|
||||
}
|
||||
|
|
|
|||
3
crud.py
3
crud.py
|
|
@ -135,7 +135,8 @@ async def get_event_tickets(event_id: str, wallet_id: str) -> List[Ticket]:
|
|||
|
||||
async def reg_ticket(ticket_id: str) -> List[Ticket]:
|
||||
await db.execute(
|
||||
"UPDATE events.ticket SET registered = ? WHERE id = ?", (True, ticket_id)
|
||||
f"UPDATE events.ticket SET registered = ?, reg_timestamp = {db.timestamp_now} WHERE id = ?",
|
||||
(True, ticket_id),
|
||||
)
|
||||
ticket = await db.fetchone("SELECT * FROM events.ticket WHERE id = ?", (ticket_id,))
|
||||
rows = await db.fetchall(
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"repos": [
|
||||
{
|
||||
"id": "events",
|
||||
"organisation": "lnbits",
|
||||
"repository": "events"
|
||||
}
|
||||
]
|
||||
"repos": [
|
||||
{
|
||||
"id": "events",
|
||||
"organisation": "lnbits",
|
||||
"repository": "events"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
async def m001_initial(db):
|
||||
|
||||
await db.execute(
|
||||
"""
|
||||
CREATE TABLE events.events (
|
||||
|
|
@ -38,7 +37,6 @@ async def m001_initial(db):
|
|||
|
||||
|
||||
async def m002_changed(db):
|
||||
|
||||
await db.execute(
|
||||
"""
|
||||
CREATE TABLE events.ticket (
|
||||
|
|
@ -81,3 +79,12 @@ async def m002_changed(db):
|
|||
(row[0], row[1], row[2], row[3], row[4], row[5], True),
|
||||
)
|
||||
await db.execute("DROP TABLE events.tickets")
|
||||
|
||||
|
||||
async def m003_add_register_timestamp(db):
|
||||
"""
|
||||
Add a column to register the timestamp of ticket register
|
||||
"""
|
||||
await db.execute(
|
||||
"ALTER TABLE events.ticket ADD COLUMN reg_timestamp TIMESTAMP;"
|
||||
) # NULL means not registered, or old ticket
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
from fastapi import Query
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional
|
||||
|
||||
|
||||
class CreateEvent(BaseModel):
|
||||
|
|
@ -39,5 +40,6 @@ class Ticket(BaseModel):
|
|||
name: str
|
||||
email: str
|
||||
registered: bool
|
||||
reg_timestamp: Optional[int]
|
||||
paid: bool
|
||||
time: int
|
||||
|
|
|
|||
|
|
@ -109,7 +109,13 @@ async def api_ticket_make_ticket(event_id, name, email):
|
|||
memo=f"{event_id}",
|
||||
extra={"tag": "events", "name": name, "email": email},
|
||||
)
|
||||
await create_ticket(payment_hash=payment_hash, wallet=event.wallet, event=event.id, name=name, email=email)
|
||||
await create_ticket(
|
||||
payment_hash=payment_hash,
|
||||
wallet=event.wallet,
|
||||
event=event.id,
|
||||
name=name,
|
||||
email=email,
|
||||
)
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=HTTPStatus.INTERNAL_SERVER_ERROR, detail=str(e))
|
||||
return {"payment_hash": payment_hash, "payment_request": payment_request}
|
||||
|
|
@ -167,6 +173,7 @@ async def api_event_tickets(wallet_id, event_id):
|
|||
@events_ext.get("/api/v1/register/ticket/{ticket_id}")
|
||||
async def api_event_register_ticket(ticket_id):
|
||||
ticket = await get_ticket(ticket_id)
|
||||
|
||||
if not ticket:
|
||||
raise HTTPException(
|
||||
status_code=HTTPStatus.NOT_FOUND, detail="Ticket does not exist."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue