mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-23 12:33:53 +00:00
Master data import now supports device config import
fixes bug3151
This commit is contained in:
1 parent
dfbffe65d5
commit
874e490dc0
13 files changed
+97
-27
No files matched your search
+19
-2
@@ -7,6 +7,7 @@ import java.io.OutputStream;
|
||||
import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -24,6 +25,8 @@ import javax.ws.rs.core.Response.ResponseBuilder;
|
||||
import javax.ws.rs.core.StreamingOutput;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.configuration.DeviceConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.masterdataimport.TopLevelMasterData;
|
||||
@@ -37,7 +40,7 @@ public class MasterDataResource extends AbstractSailingServerResource {
|
||||
@GET
|
||||
@Produces("application/x-java-serialized-object")
|
||||
public Response getMasterDataByLeaderboardGroups(@QueryParam("names[]") List<String> leaderboardGroupNames,
|
||||
@QueryParam("compress") Boolean compress, @QueryParam("exportWind") Boolean exportWind)
|
||||
@QueryParam("compress") Boolean compress, @QueryParam("exportWind") Boolean exportWind, @QueryParam("exportDeviceConfigs") Boolean exportDeviceConfigs)
|
||||
throws UnsupportedEncodingException {
|
||||
final long startTime = System.currentTimeMillis();
|
||||
logger.info("Masterdataexport has started");
|
||||
@@ -47,6 +50,9 @@ public class MasterDataResource extends AbstractSailingServerResource {
|
||||
if (exportWind == null) {
|
||||
exportWind = true;
|
||||
}
|
||||
if (exportDeviceConfigs == null) {
|
||||
exportDeviceConfigs = false;
|
||||
}
|
||||
logger.info(String.format("Masterdataexport gzip compression is turned %s", compress ? "on" : "off"));
|
||||
Map<String, LeaderboardGroup> allLeaderboardGroups = getService().getLeaderboardGroups();
|
||||
|
||||
@@ -73,9 +79,15 @@ public class MasterDataResource extends AbstractSailingServerResource {
|
||||
}
|
||||
}
|
||||
}
|
||||
Map<DeviceConfigurationMatcher, DeviceConfiguration> deviceConfigurations;
|
||||
if (exportDeviceConfigs) {
|
||||
deviceConfigurations = getAllDeviceConfigs();
|
||||
} else {
|
||||
deviceConfigurations = new HashMap<>();
|
||||
}
|
||||
final TopLevelMasterData masterData = new TopLevelMasterData(groupsToExport,
|
||||
getService().getAllEvents(), getService().getPersistentRegattasForRaceIDs(), getService()
|
||||
.getAllMediaTracks(), getService().getGPSFixStore(), exportWind);
|
||||
.getAllMediaTracks(), getService().getGPSFixStore(), exportWind, deviceConfigurations);
|
||||
final StreamingOutput streamingOutput;
|
||||
if (compress) {
|
||||
streamingOutput= new CompressingStreamingOutput(masterData, competitorIds, startTime);
|
||||
@@ -92,6 +104,11 @@ public class MasterDataResource extends AbstractSailingServerResource {
|
||||
return builtResponse;
|
||||
}
|
||||
|
||||
private Map<DeviceConfigurationMatcher, DeviceConfiguration> getAllDeviceConfigs() {
|
||||
Map<DeviceConfigurationMatcher, DeviceConfiguration> configs = getService().getAllDeviceConfigurations();
|
||||
return configs;
|
||||
}
|
||||
|
||||
private abstract class AbstractStreamingOutput implements StreamingOutput {
|
||||
private final TopLevelMasterData masterData;
|
||||
private final List<Serializable> competitorIds;
|
||||
|
||||
Reference in new issue
Block a user