bug5311: MigrateLeaderboardgroupResource now manages remote server references in a more fine-grained way, respecting individual event IDs

This commit is contained in:
Axel Uhl
2021-07-15 15:20:10 +02:00
parent 6f0a69df83
commit b9c6975fbb
6 changed files with 208 additions and 43 deletions
@@ -0,0 +1,31 @@
package com.sap.sailing.server.gateway.deserialization.impl;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.UUID;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.RemoteSailingServerReference;
import com.sap.sailing.domain.base.impl.RemoteSailingServerReferenceImpl;
import com.sap.sailing.server.gateway.serialization.impl.RemoteSailingServerReferenceJsonSerializer;
import com.sap.sse.common.Util;
import com.sap.sse.shared.json.JsonDeserializationException;
import com.sap.sse.shared.json.JsonDeserializer;
public class RemoteSailingServerReferenceJsonDeserializer implements JsonDeserializer<RemoteSailingServerReference> {
@Override
public RemoteSailingServerReference deserialize(JSONObject object) throws JsonDeserializationException {
final String name = (String) object.get(RemoteSailingServerReferenceJsonSerializer.NAME);
URL url;
try {
url = new URL((String) object.get(RemoteSailingServerReferenceJsonSerializer.URL));
} catch (MalformedURLException e) {
throw new JsonDeserializationException(e);
}
final boolean include = (Boolean) object.get(RemoteSailingServerReferenceJsonSerializer.INCLUDE);
final JSONArray eventIds = (JSONArray) object.get(RemoteSailingServerReferenceJsonSerializer.EVENT_IDS);
return new RemoteSailingServerReferenceImpl(name, url, include, Util.map(eventIds, id->UUID.fromString(id.toString())));
}
}
@@ -6,7 +6,6 @@ import com.sap.sse.common.Duration;
import com.sap.sse.shared.json.JsonSerializer;
public class DurationJsonSerializer implements JsonSerializer<Duration> {
public static final String MILLIS = "millis";
@Override
@@ -15,5 +14,4 @@ public class DurationJsonSerializer implements JsonSerializer<Duration> {
result.put(MILLIS, object.asMillis());
return result;
}
}
@@ -0,0 +1,26 @@
package com.sap.sailing.server.gateway.serialization.impl;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.RemoteSailingServerReference;
import com.sap.sse.shared.json.JsonSerializer;
public class RemoteSailingServerReferenceJsonSerializer implements JsonSerializer<RemoteSailingServerReference> {
public static final String NAME = "name";
public static final String URL = "url";
public static final String INCLUDE = "include";
public static final String EVENT_IDS = "eventIds";
@Override
public JSONObject serialize(RemoteSailingServerReference object) {
final JSONObject result = new JSONObject();
result.put(NAME, object.getName());
result.put(URL, object.getURL());
result.put(INCLUDE, object.isInclude());
final JSONArray eventIds = new JSONArray();
object.getSelectedEventIds().forEach(id->eventIds.add(id.toString()));
result.put(EVENT_IDS, eventIds);
return result;
}
}