mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 03:13:49 +00:00
resolve competitor via *ByIdAsString() and compare competitor in checkout
This commit is contained in:
1 parent
d7e010c88a
commit
68f9b9fb6e
2 files changed
+21
-7
No files matched your search
+7
-3
@@ -7,6 +7,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent;
|
||||
import com.sap.sse.common.WithID;
|
||||
|
||||
|
||||
/**
|
||||
@@ -16,10 +17,12 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
*/
|
||||
public class OpenEndedDeviceMappingFinder extends BaseLogAnalyzer<RegattaLog, RegattaLogEvent, RegattaLogEventVisitor, Serializable> {
|
||||
|
||||
private Serializable deviceUuid;
|
||||
private final WithID mappedTo;
|
||||
private final Serializable deviceUuid;
|
||||
|
||||
public OpenEndedDeviceMappingFinder(RegattaLog log, Serializable deviceUuid) {
|
||||
public OpenEndedDeviceMappingFinder(RegattaLog log, WithID mappedTo, Serializable deviceUuid) {
|
||||
super(log);
|
||||
this.mappedTo = mappedTo;
|
||||
this.deviceUuid = deviceUuid;
|
||||
}
|
||||
|
||||
@@ -28,7 +31,8 @@ public class OpenEndedDeviceMappingFinder extends BaseLogAnalyzer<RegattaLog, Re
|
||||
for (RegattaLogEvent regattaLogEvent : log.getUnrevokedEvents()) {
|
||||
if (regattaLogEvent instanceof RegattaLogDeviceCompetitorMappingEvent) {
|
||||
RegattaLogDeviceCompetitorMappingEvent deviceMappingEvent = (RegattaLogDeviceCompetitorMappingEvent) regattaLogEvent;
|
||||
if (deviceMappingEvent.getDevice().getStringRepresentation().equals(deviceUuid)) {
|
||||
if (deviceMappingEvent.getMappedTo().equals(mappedTo) &&
|
||||
deviceMappingEvent.getDevice().getStringRepresentation().equals(deviceUuid)) {
|
||||
return deviceMappingEvent.getId();
|
||||
}
|
||||
}
|
||||
|
||||
+14
-4
@@ -31,8 +31,6 @@ import org.json.simple.parser.ParseException;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogCloseOpenEndedDeviceMappingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.impl.OpenEndedDeviceMappingFinder;
|
||||
@@ -382,7 +380,11 @@ public class LeaderboardsResource extends AbstractSailingServerResource {
|
||||
|
||||
//TODO: use device type and pushDeviceId
|
||||
|
||||
Competitor mappedTo = domainFactory.getExistingCompetitorById(competitorId);
|
||||
Competitor mappedTo = domainFactory.getCompetitorStore().getExistingCompetitorByIdAsString(competitorId);
|
||||
if (mappedTo == null) {
|
||||
return Response.status(Status.BAD_REQUEST).entity("No competitor found for id " + competitorId)
|
||||
.type(MediaType.TEXT_PLAIN).build();
|
||||
}
|
||||
DeviceIdentifier device = new SmartphoneUUIDIdentifierImpl(UUID.fromString(deviceUuid));
|
||||
TimePoint from = new MillisecondsTimePoint(fromMillis);
|
||||
|
||||
@@ -440,6 +442,7 @@ public class LeaderboardsResource extends AbstractSailingServerResource {
|
||||
|
||||
logger.fine("JSON requestObject is: " + requestObject.toString());
|
||||
Long toMillis = (Long) requestObject.get("toMillis");
|
||||
String competitorId = (String) requestObject.get("competitorId");
|
||||
String deviceUuid = (String) requestObject.get("deviceUuid");
|
||||
TimePoint closingTimePoint = new MillisecondsTimePoint(toMillis);
|
||||
|
||||
@@ -447,8 +450,15 @@ 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) {
|
||||
return Response.status(Status.BAD_REQUEST).entity("No competitor found for id " + competitorId)
|
||||
.type(MediaType.TEXT_PLAIN).build();
|
||||
}
|
||||
|
||||
OpenEndedDeviceMappingFinder finder = new OpenEndedDeviceMappingFinder(hasRegattaLog.getRegattaLog(), deviceUuid);
|
||||
OpenEndedDeviceMappingFinder finder = new OpenEndedDeviceMappingFinder(hasRegattaLog.getRegattaLog(),
|
||||
mappedTo, deviceUuid);
|
||||
Serializable deviceMappingEventId = finder.analyze();
|
||||
|
||||
if (deviceMappingEventId == null) {
|
||||
|
||||
Reference in new issue
Block a user