filter query + show seats
This commit is contained in:
@@ -7,6 +7,7 @@ import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.QueryParam;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.eclipse.microprofile.rest.client.inject.RestClient;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -16,10 +17,6 @@ import java.util.List;
|
||||
@Path("/importer")
|
||||
public class MovieImporter {
|
||||
|
||||
/*
|
||||
Schnittstelle Abfrage für Vorstellung: Liste mit allen Sitzplätzen mit gebucht/reserviert/frei
|
||||
*/
|
||||
|
||||
@Inject
|
||||
RequestReply requester;
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package de.infinimotion.backend.endpoint;
|
||||
|
||||
import de.infinimotion.model.backend.*;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@ApplicationScoped
|
||||
@Path("/show-seats")
|
||||
public class ShowSeats {
|
||||
|
||||
@Inject
|
||||
RequestReply requester;
|
||||
|
||||
@GET
|
||||
@Path("/{show}")
|
||||
public Map<String, List<Sitzplatz>> getShowSeats(@PathParam("show") int showId) throws Exception {
|
||||
CommandGetVorstellung requestShow = new CommandGetVorstellung(showId);
|
||||
CommandWrapper requestShowWrapper = requestShow.serialize().generateIds();
|
||||
Vorstellung show = CommandGetVorstellungResponse.deserialize(requester.request(requestShowWrapper)).getVorstellung();
|
||||
|
||||
CommandListSitzplatz requestSeats = new CommandListSitzplatz(List.of("eq;row.hall.id;int;" + show.getHall().getId()));
|
||||
CommandWrapper requestSeatsWrapper = requestSeats.serialize().tx(requestShowWrapper);
|
||||
List<Sitzplatz> seats = CommandListSitzplatzResponse.deserialize(requester.request(requestSeatsWrapper)).getList();
|
||||
|
||||
CommandListEintrittskarte requestTickets = new CommandListEintrittskarte(List.of("eq;show.id;int;" + showId));
|
||||
CommandWrapper requestTicketsWrapper = requestTickets.serialize().tx(requestShowWrapper).commit();
|
||||
List<Eintrittskarte> tickets = CommandListEintrittskarteResponse.deserialize(requester.request(requestTicketsWrapper)).getList();
|
||||
|
||||
List<Sitzplatz> reservedSeats = tickets.stream()
|
||||
.filter(ticket -> ticket.getCancelled() == null && ticket.getReserved() != null)
|
||||
.map(Eintrittskarte::getSeat).toList();
|
||||
List<Sitzplatz> bookedSeats = tickets.stream()
|
||||
.filter(ticket -> ticket.getCancelled() == null && ticket.getBooked() != null)
|
||||
.map(Eintrittskarte::getSeat).toList();
|
||||
|
||||
return Map.of("seats", seats, "reserved", reservedSeats, "booked", bookedSeats);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user