[FEAT] add timestamp on register (#15)

* add timestamp on register
This commit is contained in:
Tiago Vasconcelos 2023-08-18 07:17:29 +01:00 committed by GitHub
parent 4586164016
commit c8b31d8e3f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 33 additions and 15 deletions

View file

@ -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

View file

@ -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"]
}

View file

@ -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(

View file

@ -1,9 +1,9 @@
{
"repos": [
{
"id": "events",
"organisation": "lnbits",
"repository": "events"
}
]
"repos": [
{
"id": "events",
"organisation": "lnbits",
"repository": "events"
}
]
}

View file

@ -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

View file

@ -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

View file

@ -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."