mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
implemented mark device mapping check-out in LeaderboardsResource
Change-Id: I6c83db19d3939936f0a572f1eb16e1d82e323693
This commit is contained in:
1 parent
d084dd0c3a
commit
fc6be86f7f
16 files changed
+56
-48
No files matched your search
+2
-3
@@ -6,11 +6,10 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sse.common.Color;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.IsManagedByCache;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
import com.sap.sse.datamining.annotations.Connector;
|
||||
|
||||
public interface Competitor extends Named, WithID, IsManagedByCache<SharedDomainFactory> {
|
||||
public interface Competitor extends NamedWithID, IsManagedByCache<SharedDomainFactory> {
|
||||
@Connector(messageKey="Team", ordinal=9)
|
||||
Team getTeam();
|
||||
|
||||
|
||||
+2
-3
@@ -1,8 +1,7 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
|
||||
public interface ControlPoint extends WithID, Named {
|
||||
public interface ControlPoint extends NamedWithID {
|
||||
Iterable<Mark> getMarks();
|
||||
}
|
||||
+3
-4
@@ -3,16 +3,15 @@ package com.sap.sailing.domain.base;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sse.common.IsManagedByCache;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
|
||||
/**
|
||||
* A named area in a sailing {@link Venue} where races take place. Usually, the areas carry names according to the NATO
|
||||
* alphabet, such as "Alpha", "Bravo" or "Charlie".
|
||||
* alphabet, such as "Alpha", "Bravo" or "Charly".
|
||||
*
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface CourseArea extends Named, WithID, IsManagedByCache<SharedDomainFactory> {
|
||||
public interface CourseArea extends NamedWithID, IsManagedByCache<SharedDomainFactory> {
|
||||
UUID getId();
|
||||
}
|
||||
+2
-3
@@ -5,9 +5,8 @@ import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.common.Renamable;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.media.ImageSize;
|
||||
import com.sap.sse.shared.media.WithMedia;
|
||||
|
||||
@@ -15,7 +14,7 @@ import com.sap.sse.shared.media.WithMedia;
|
||||
* Base interface for an Event consisting of all static information, which might be shared
|
||||
* by the server and an Android application.
|
||||
*/
|
||||
public interface EventBase extends Named, WithDescription, Renamable, WithID, WithMedia {
|
||||
public interface EventBase extends NamedWithID, WithDescription, Renamable, WithMedia {
|
||||
|
||||
void setDescription(String description);
|
||||
|
||||
|
||||
+2
-2
@@ -3,9 +3,9 @@ package com.sap.sailing.domain.base;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.common.Renamable;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
|
||||
public interface LeaderboardGroupBase extends Renamable, WithID {
|
||||
public interface LeaderboardGroupBase extends Renamable, NamedWithID {
|
||||
UUID getId();
|
||||
String getDescription();
|
||||
void setDescriptiom(String description);
|
||||
|
||||
+1
-2
@@ -2,7 +2,6 @@ package com.sap.sailing.domain.base;
|
||||
|
||||
import com.sap.sailing.domain.common.MarkType;
|
||||
import com.sap.sse.common.IsManagedByCache;
|
||||
import com.sap.sse.common.WithID;
|
||||
|
||||
|
||||
/**
|
||||
@@ -12,7 +11,7 @@ import com.sap.sse.common.WithID;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface Mark extends WithID, ControlPoint, IsManagedByCache<SharedDomainFactory> {
|
||||
public interface Mark extends ControlPoint, IsManagedByCache<SharedDomainFactory> {
|
||||
public String getColor();
|
||||
public String getShape();
|
||||
public String getPattern();
|
||||
|
||||
+4
-4
@@ -1,13 +1,13 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
|
||||
/**
|
||||
* A side line in a race course
|
||||
* @author Frank (C5163874)
|
||||
*
|
||||
* @author Frank Mittag (C5163874)
|
||||
*
|
||||
*/
|
||||
public interface Sideline extends Named, WithID {
|
||||
public interface Sideline extends NamedWithID {
|
||||
Iterable<Mark> getMarks();
|
||||
}
|
||||
+2
-3
@@ -3,8 +3,7 @@ package com.sap.sailing.domain.base;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sse.common.IsManagedByCache;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
|
||||
/**
|
||||
* Waypoints constitute {@link Course}s and demarcate their {@link Leg}s. A waypoint's position is defined by a
|
||||
@@ -14,7 +13,7 @@ import com.sap.sse.common.WithID;
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public interface Waypoint extends Named, WithID, IsManagedByCache<SharedDomainFactory> {
|
||||
public interface Waypoint extends NamedWithID, IsManagedByCache<SharedDomainFactory> {
|
||||
ControlPoint getControlPoint();
|
||||
|
||||
Iterable<Mark> getMarks();
|
||||
|
||||
+2
-4
@@ -2,7 +2,7 @@ package com.sap.sailing.domain.tractracadapter;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
import com.tractrac.model.lib.api.event.IEvent;
|
||||
import com.tractrac.model.lib.api.route.IControlPoint;
|
||||
|
||||
@@ -14,14 +14,12 @@ import com.tractrac.model.lib.api.route.IControlPoint;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface TracTracControlPoint extends WithID {
|
||||
public interface TracTracControlPoint extends NamedWithID {
|
||||
/**
|
||||
* Refining the return type helps in looking up a control point by its UUID in {@link IEvent}.
|
||||
*/
|
||||
UUID getId();
|
||||
|
||||
String getName();
|
||||
|
||||
String getMetadata();
|
||||
|
||||
String getShortName();
|
||||
|
||||
@@ -3,8 +3,7 @@ package com.sap.sailing.domain.base;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.common.RaceCompetitorIdsAsStringWithMD5Hash;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
|
||||
/**
|
||||
* Tells the {@link BoatClass boat class} and the {@link Course course} for a single race that is usually part of a
|
||||
@@ -18,7 +17,7 @@ import com.sap.sse.common.WithID;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface RaceDefinition extends Named, WithID {
|
||||
public interface RaceDefinition extends NamedWithID {
|
||||
BoatClass getBoatClass();
|
||||
|
||||
Course getCourse();
|
||||
|
||||
@@ -12,9 +12,8 @@ import com.sap.sailing.domain.regattalike.IsRegattaLike;
|
||||
import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegatta;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.WithID;
|
||||
|
||||
/**
|
||||
* The name shall be unique across all regattas tracked concurrently. In particular, if you want to keep apart regattas
|
||||
@@ -23,7 +22,7 @@ import com.sap.sse.common.WithID;
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public interface Regatta extends Named, WithID, IsRegattaLike, HasRaceColumnsAndRegattaLike {
|
||||
public interface Regatta extends NamedWithID, IsRegattaLike, HasRaceColumnsAndRegattaLike {
|
||||
ScoringScheme getScoringScheme();
|
||||
|
||||
/**
|
||||
|
||||
+22
-6
@@ -85,6 +85,7 @@ import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSeri
|
||||
import com.sap.sailing.server.gateway.serialization.impl.FlatGPSFixJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.MarkJsonSerializerWithPosition;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
@@ -488,11 +489,26 @@ public class LeaderboardsResource extends AbstractSailingServerResource {
|
||||
return Response.status(Status.BAD_REQUEST).entity("Invalid JSON body in request")
|
||||
.type(MediaType.TEXT_PLAIN).build();
|
||||
}
|
||||
Competitor mappedTo = getService().getCompetitorStore().getExistingCompetitorByIdAsString(competitorId);
|
||||
if (mappedTo == null) {
|
||||
logger.warning("No competitor found for id " + competitorId);
|
||||
return Response.status(Status.BAD_REQUEST).entity("No competitor found for id " + competitorId)
|
||||
.type(MediaType.TEXT_PLAIN).build();
|
||||
final NamedWithID mappedTo;
|
||||
if (competitorId != null) {
|
||||
final Competitor mappedToCompetitor = getService().getCompetitorStore().getExistingCompetitorByIdAsString(competitorId);
|
||||
mappedTo = mappedToCompetitor;
|
||||
if (mappedToCompetitor == null) {
|
||||
logger.warning("No competitor found for id " + competitorId);
|
||||
return Response.status(Status.BAD_REQUEST).entity("No competitor found for id " + competitorId)
|
||||
.type(MediaType.TEXT_PLAIN).build();
|
||||
}
|
||||
} else {
|
||||
// map to mark
|
||||
DomainFactory domainFactory = getService().getDomainObjectFactory().getBaseDomainFactory();
|
||||
final Mark mappedToMark = domainFactory.getExistingMarkById(Helpers.tryUuidConversion(markId));
|
||||
mappedTo = mappedToMark;
|
||||
if (mappedToMark == null) {
|
||||
logger.warning("No mark found for id " + markId);
|
||||
return Response.status(Status.BAD_REQUEST).entity("No mark found for id " + markId)
|
||||
.type(MediaType.TEXT_PLAIN).build();
|
||||
}
|
||||
|
||||
}
|
||||
OpenEndedDeviceMappingFinder finder = new OpenEndedDeviceMappingFinder(isRegattaLike.getRegattaLog(), mappedTo, deviceUuid);
|
||||
Serializable deviceMappingEventId = finder.analyze();
|
||||
@@ -505,7 +521,7 @@ public class LeaderboardsResource extends AbstractSailingServerResource {
|
||||
RegattaLogCloseOpenEndedDeviceMappingEventImpl event = new RegattaLogCloseOpenEndedDeviceMappingEventImpl(now,
|
||||
author, deviceMappingEventId, closingTimePoint);
|
||||
isRegattaLike.getRegattaLog().add(event);
|
||||
logger.fine("Successfully checked out competitor " + mappedTo.getName());
|
||||
logger.fine("Successfully checked out "+((markId!=null)?"mark ":"competitor ") + mappedTo.getName());
|
||||
return Response.status(Status.OK).build();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
package com.sap.sse.common;
|
||||
|
||||
public interface NamedWithID extends Named, WithID {
|
||||
}
|
||||
@@ -12,12 +12,12 @@ import java.util.Set;
|
||||
|
||||
import org.apache.shiro.crypto.hash.Sha256Hash;
|
||||
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.security.shared.Account;
|
||||
import com.sap.sse.security.shared.Account.AccountType;
|
||||
|
||||
public class User implements Named, WithID {
|
||||
public class User implements NamedWithID {
|
||||
private static final long serialVersionUID = 1788215575606546042L;
|
||||
|
||||
/**
|
||||
|
||||
+2
-3
@@ -2,10 +2,9 @@ package com.sap.sailing.racecommittee.app.domain;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
|
||||
public interface CoursePosition extends Named, WithID {
|
||||
public interface CoursePosition extends NamedWithID {
|
||||
|
||||
UUID getId();
|
||||
|
||||
|
||||
+2
-3
@@ -10,9 +10,8 @@ import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.domain.base.racegroup.FilterableRace;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.Result;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.sap.sse.common.NamedWithID;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.WithID;
|
||||
|
||||
/**
|
||||
* A managed race's {@link #getName()} is the race column's name.
|
||||
@@ -20,7 +19,7 @@ import com.sap.sse.common.WithID;
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public interface ManagedRace extends FilterableRace, ManagedRaceIdentifier, Named, WithID {
|
||||
public interface ManagedRace extends FilterableRace, ManagedRaceIdentifier, NamedWithID {
|
||||
|
||||
/**
|
||||
* @return the identifier of the race.
|
||||
|
||||
Reference in new issue
Block a user