From 70609813f088bc9a129d79d55b8adca692d8f759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bro=C3=9F?= Date: Fri, 27 Nov 2015 14:38:40 +0100 Subject: [PATCH] Service for getting marks now returns marks defined on Regatta --- .../gateway/jaxrs/api/LeaderboardsResource.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java index 60d8eba0b33..4dc01fadc41 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java @@ -543,7 +543,18 @@ public class LeaderboardsResource extends AbstractSailingServerResource { .entity("Could not find a leaderboard with name '" + leaderboardName + "'.") .type(MediaType.TEXT_PLAIN).build(); } - final Set marks; + + if (! (leaderboard instanceof HasRegattaLike)) { + return Response.status(Status.NOT_FOUND) + .entity("Leaderboard with name '"+ leaderboardName+ "'does not contain a RegattaLog'.") + .type(MediaType.TEXT_PLAIN).build(); + } + LeaderboardThatHasRegattaLike regattaLikeLeaderboard = (LeaderboardThatHasRegattaLike) leaderboard; + RegattaLog regattaLog = ((HasRegattaLike) regattaLikeLeaderboard).getRegattaLike().getRegattaLog(); + + final Set marks = new HashSet(); + Util.addAll(new DefinedMarkFinder<>(regattaLog).analyze(), marks); + if (raceColumnName == null) { if (fleetName != null) { return Response @@ -551,7 +562,6 @@ public class LeaderboardsResource extends AbstractSailingServerResource { .entity("Either specify neither raceColumnName nor fleetName, only raceColumnName, or raceColumnName and fleetName but not only fleetName") .type(MediaType.TEXT_PLAIN).build(); } else { - marks = new HashSet(); for (RaceColumn raceColumn : leaderboard.getRaceColumns()) { for (Fleet fleet : raceColumn.getFleets()) { RaceLog raceLog = raceColumn.getRaceLog(fleet); @@ -578,11 +588,10 @@ public class LeaderboardsResource extends AbstractSailingServerResource { .entity("Could not find fleet '" + fleetName + "' in leaderboard '" + leaderboardName + "'.").type(MediaType.TEXT_PLAIN).build(); } else { - marks = getMarksForFleet(raceColumn, fleet); + marks.addAll(getMarksForFleet(raceColumn, fleet)); } } else { // Return all marks for a certain race column - marks = new HashSet(); for (Fleet fleet : raceColumn.getFleets()) { Util.addAll(getMarksForFleet(raceColumn, fleet), marks); }