# working towards receiving racelogs...

This commit is contained in:
Lukas Niemeier committed 2013-02-06 17:33:49 +01:00
1 parent 5bf9cd4e10
commit 9ab84c5eb0
23 files changed
+401 -179

No files matched your search

@@ -35,12 +35,12 @@
</servlet-mapping>
<servlet>
<servlet-name>RCEventTrack</servlet-name>
<servlet-class>com.sap.sailing.server.gateway.impl.rc.EventTrackJsonExportServlet</servlet-class>
<servlet-name>RCRaceLogs</servlet-name>
<servlet-class>com.sap.sailing.server.gateway.impl.rc.RaceLogsJsonExportServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RCEventTrack</servlet-name>
<url-pattern>/rc/eventTrack</url-pattern>
<servlet-name>RCRaceLogs</servlet-name>
<url-pattern>/rc/racelogs</url-pattern>
</servlet-mapping>
<!-- RACE COMMITTEE END -->
@@ -7,16 +7,18 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONValue;
import org.json.simple.parser.ParseException;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
import com.sap.sailing.domain.racelog.RaceLog;
import com.sap.sailing.domain.racelog.RaceLogEvent;
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
import com.sap.sailing.domain.tracking.DynamicTrackedRegatta;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
import com.sap.sailing.server.gateway.impl.JsonExportServlet;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.CompetitorIdJsonSerializer;
@@ -26,10 +28,58 @@ import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogFlagEven
import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogStartTimeEventSerializer;
public class EventTrackJsonExportServlet extends JsonExportServlet {
public class RaceLogsJsonExportServlet extends JsonExportServlet {
private static final long serialVersionUID = 2197006949440887925L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
Object requestBody = JSONValue.parseWithException(request.getReader());
JSONArray requestedIds = Helpers.toJSONArraySafe(requestBody);
for (Object element : requestedIds) {
System.out.println(element);
}
} catch (ParseException e) {
throw new JsonDeserializationException("Invalid JSON in request body.", e);
}
}
private DynamicTrackedRace getDynamicTrackedRace(String regattaName, String raceName) {
RegattaNameAndRaceName raceAndRegattaIdentifier = new RegattaNameAndRaceName(regattaName, raceName);
RaceDefinition raceDefinition = getService().getRace(raceAndRegattaIdentifier);
Regatta regatta = getService().getRegatta(raceAndRegattaIdentifier);
DynamicTrackedRegatta trackedRegatta = getService().getTrackedRegatta(regatta);
DynamicTrackedRace trackedRace = trackedRegatta.getExistingTrackedRace(raceDefinition);
return trackedRace;
}
private boolean validateParameter(HttpServletResponse response, String... parameters) throws IOException {
for (String parameter : parameters) {
if (parameter == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
return false;
}
}
return true;
}
private static JsonSerializer<RaceLogEvent> createSerializer() {
JsonSerializer<Competitor> competitorSerializer = new CompetitorIdJsonSerializer();
return new RaceLogEventSerializer(
new RaceLogFlagEventSerializer(competitorSerializer),
new RaceLogStartTimeEventSerializer(competitorSerializer),
new RaceLogCourseAreaChangedEventSerializer(competitorSerializer));
}
/*@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
@@ -77,36 +127,6 @@ public class EventTrackJsonExportServlet extends JsonExportServlet {
// trackedRace.recordRaceCommitteeEvent(null);
response.sendError(HttpServletResponse.SC_NO_CONTENT);
}
private DynamicTrackedRace getDynamicTrackedRace(String regattaName, String raceName) {
RegattaNameAndRaceName raceAndRegattaIdentifier = new RegattaNameAndRaceName(regattaName, raceName);
RaceDefinition raceDefinition = getService().getRace(raceAndRegattaIdentifier);
Regatta regatta = getService().getRegatta(raceAndRegattaIdentifier);
DynamicTrackedRegatta trackedRegatta = getService().getTrackedRegatta(regatta);
DynamicTrackedRace trackedRace = trackedRegatta.getExistingTrackedRace(raceDefinition);
return trackedRace;
}
private boolean validateParameter(HttpServletResponse response, String... parameters) throws IOException {
for (String parameter : parameters) {
if (parameter == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
return false;
}
}
return true;
}
private static JsonSerializer<RaceLogEvent> createSerializer() {
JsonSerializer<Competitor> competitorSerializer = new CompetitorIdJsonSerializer();
return new RaceLogEventSerializer(
new RaceLogFlagEventSerializer(competitorSerializer),
new RaceLogStartTimeEventSerializer(competitorSerializer),
new RaceLogCourseAreaChangedEventSerializer(competitorSerializer));
}
}*/
}