feat: let a user_id ticket carry an email, accept frontend_url
`CreateTicket` no longer rejects `user_id` together with `name`/`email`
(the exclusion was a fork-only dispatch convenience from dfabcb8; nothing
needed it). `crud.create_ticket` stops blanking name/email when a user_id
is present, so logged-in webapp buyers can have their ticket emailed —
until now `_send_ticket_notification` short-circuited on the empty
address for every app purchase.
New optional `frontend_url` (absolute http(s) root, no query/fragment/..,
trailing slash stripped) lets a buyer-side client name the app the buyer
should be returned to and linked into from the ticket email; the origin
allow-list lives in views_api.
Also folds in the pending black reflow of migrations_fork.py.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYwoAkZZmXMMmaBp4WGUBo
This commit is contained in:
parent
fe9f005b53
commit
db708cf0da
5 changed files with 242 additions and 11 deletions
14
crud.py
14
crud.py
|
|
@ -55,14 +55,12 @@ async def create_ticket(
|
|||
now = datetime.now(timezone.utc)
|
||||
row_id = ticket_id or payment_hash
|
||||
|
||||
# name/email columns are NOT NULL in the schema, so we store "" when only
|
||||
# user_id is supplied. _parse_ticket_row reverses this on read.
|
||||
if user_id:
|
||||
db_name = ""
|
||||
db_email = ""
|
||||
else:
|
||||
db_name = name or ""
|
||||
db_email = email or ""
|
||||
# name/email columns are NOT NULL in the schema, so we store "" when a
|
||||
# value is absent. _parse_ticket_row reverses this on read. A user_id
|
||||
# ticket may carry an email too — that is how logged-in webapp buyers get
|
||||
# their ticket emailed.
|
||||
db_name = name or ""
|
||||
db_email = email or ""
|
||||
|
||||
db_ticket = Ticket(
|
||||
id=row_id,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue