show already started check for ordertx

This commit is contained in:
2025-11-22 16:22:00 +01:00
parent b2251b7828
commit 9015157d37

View File

@@ -6,6 +6,9 @@ import jakarta.inject.Inject;
import jakarta.ws.rs.POST; import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path; import jakarta.ws.rs.Path;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -24,6 +27,8 @@ public class OrderTx {
int showId = orderTransaction.getTickets().stream().findAny().map(Eintrittskarte::getShow).map(Vorstellung::getId).orElse(-1); int showId = orderTransaction.getTickets().stream().findAny().map(Eintrittskarte::getShow).map(Vorstellung::getId).orElse(-1);
if (orderTransaction.getTickets().stream().anyMatch(ticket -> ticket.getShow().getId() != showId)) { if (orderTransaction.getTickets().stream().anyMatch(ticket -> ticket.getShow().getId() != showId)) {
throw new IllegalArgumentException("tickets for different show ids"); throw new IllegalArgumentException("tickets for different show ids");
} else if (orderTransaction.getTickets().getFirst().getShow().getStart().isBefore(LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()))) {
throw new IllegalStateException("show already started");
} }
List<String> notCancelledTicketsFilter = List.of("eq;show.id;int;" + showId, "null;order.cancelled;date;1970-01-01T00:00:00"); List<String> notCancelledTicketsFilter = List.of("eq;show.id;int;" + showId, "null;order.cancelled;date;1970-01-01T00:00:00");