UNOMI-562 : fix deserializers (#415)
* UNOMI-562 : fix event collector deserialization
* restore source in context request deserializer
diff --git a/rest/src/main/java/org/apache/unomi/rest/deserializers/ContextRequestDeserializer.java b/rest/src/main/java/org/apache/unomi/rest/deserializers/ContextRequestDeserializer.java
index 1dcb653..ad33945 100644
--- a/rest/src/main/java/org/apache/unomi/rest/deserializers/ContextRequestDeserializer.java
+++ b/rest/src/main/java/org/apache/unomi/rest/deserializers/ContextRequestDeserializer.java
@@ -24,6 +24,7 @@
import com.fasterxml.jackson.databind.node.ArrayNode;
import org.apache.unomi.api.ContextRequest;
import org.apache.unomi.api.Event;
+import org.apache.unomi.api.Item;
import org.apache.unomi.api.Profile;
import org.apache.unomi.api.services.PersonalizationService;
import org.apache.unomi.api.services.SchemaService;
@@ -58,6 +59,10 @@
throw new InvalidRequestException("Invalid Context request object", "Invalid received data");
}
ContextRequest cr = new ContextRequest();
+ if (node.get("source") != null) {
+ cr.setSource(jsonParser.getCodec().treeToValue(node.get("source"), Item.class));
+ }
+
if (node.get("requireSegments") != null) {
cr.setRequireSegments(node.get("requireSegments").booleanValue());
}
diff --git a/rest/src/main/java/org/apache/unomi/rest/deserializers/EventsCollectorRequestDeserializer.java b/rest/src/main/java/org/apache/unomi/rest/deserializers/EventsCollectorRequestDeserializer.java
index b544f20..0f23419 100644
--- a/rest/src/main/java/org/apache/unomi/rest/deserializers/EventsCollectorRequestDeserializer.java
+++ b/rest/src/main/java/org/apache/unomi/rest/deserializers/EventsCollectorRequestDeserializer.java
@@ -65,7 +65,10 @@
}
}
EventsCollectorRequest eventsCollectorRequest = new EventsCollectorRequest();
- eventsCollectorRequest.setSessionId(node.get("sessionId").textValue());
+ final JsonNode sessionId = node.get("sessionId");
+ if (sessionId != null) {
+ eventsCollectorRequest.setSessionId(sessionId.textValue());
+ }
eventsCollectorRequest.setEvents(filteredEvents);
return eventsCollectorRequest;
}