feat: add reservation QR retrieval

This commit is contained in:
2026-04-29 10:59:47 +02:00
parent 0c679391ed
commit 635a9a5c63
7 changed files with 124 additions and 6 deletions

View File

@@ -98,13 +98,17 @@ def _get_reservation_for_check_in_token(raw_token, *, lock_token=False):
try:
token = queryset.get(
token_hash=ReservationToken.hash_token(raw_token),
purpose=ReservationToken.Purpose.CHECK_IN,
used_at__isnull=True,
)
except ReservationToken.DoesNotExist as exc:
raise InvalidToken("Check-in token is invalid.") from exc
if token.is_expired:
if token.purpose == ReservationToken.Purpose.CHECK_IN:
if token.used_at is not None or token.is_expired:
raise InvalidToken("Check-in token is invalid.")
elif token.purpose == ReservationToken.Purpose.CONFIRMATION:
if token.reservation.status != Reservation.Status.CONFIRMED:
raise InvalidToken("Check-in token is invalid.")
else:
raise InvalidToken("Check-in token is invalid.")
return token.reservation