filter query + show seats
This commit is contained in:
7
pom.xml
7
pom.xml
@@ -35,7 +35,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>de.infinimotion</groupId>
|
<groupId>de.infinimotion</groupId>
|
||||||
<artifactId>model-backend</artifactId>
|
<artifactId>model-backend</artifactId>
|
||||||
<version>0.0.76</version>
|
<version>0.0.83</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Quarkus -->
|
<!-- Quarkus -->
|
||||||
@@ -71,6 +71,11 @@
|
|||||||
<groupId>io.quarkus</groupId>
|
<groupId>io.quarkus</groupId>
|
||||||
<artifactId>quarkus-scheduler</artifactId>
|
<artifactId>quarkus-scheduler</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.32</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Test -->
|
<!-- Test -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import jakarta.ws.rs.GET;
|
|||||||
import jakarta.ws.rs.POST;
|
import jakarta.ws.rs.POST;
|
||||||
import jakarta.ws.rs.Path;
|
import jakarta.ws.rs.Path;
|
||||||
import jakarta.ws.rs.QueryParam;
|
import jakarta.ws.rs.QueryParam;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import org.eclipse.microprofile.rest.client.inject.RestClient;
|
import org.eclipse.microprofile.rest.client.inject.RestClient;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -16,10 +17,6 @@ import java.util.List;
|
|||||||
@Path("/importer")
|
@Path("/importer")
|
||||||
public class MovieImporter {
|
public class MovieImporter {
|
||||||
|
|
||||||
/*
|
|
||||||
Schnittstelle Abfrage für Vorstellung: Liste mit allen Sitzplätzen mit gebucht/reserviert/frei
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RequestReply requester;
|
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