diff options
author | Vitaly Takmazov | 2019-05-27 14:19:05 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2019-05-27 14:19:05 +0300 |
commit | 852ee6a66a7aa7ae96b94defcd44494b0e71b02f (patch) | |
tree | 5117674deba53a9e8e3a8781c4d10a0deea71ae3 | |
parent | 26d7c249eec88a6977f74756d628a85282ebe644 (diff) |
ActivityPub: deserialize activities with single context
-rw-r--r-- | src/main/java/com/juick/server/api/activity/model/Context.java | 6 | ||||
-rw-r--r-- | src/test/java/com/juick/server/tests/ServerTests.java | 3 | ||||
-rw-r--r-- | src/test/resources/undo_pleroma.json | 1 |
3 files changed, 6 insertions, 4 deletions
diff --git a/src/main/java/com/juick/server/api/activity/model/Context.java b/src/main/java/com/juick/server/api/activity/model/Context.java index 2ba4606e..1d3f238c 100644 --- a/src/main/java/com/juick/server/api/activity/model/Context.java +++ b/src/main/java/com/juick/server/api/activity/model/Context.java @@ -1,9 +1,6 @@ package com.juick.server.api.activity.model; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.juick.server.api.activity.helpers.LinkValueDeserializer; import com.juick.server.api.activity.model.activities.*; @@ -68,6 +65,7 @@ public abstract class Context { } @JsonProperty("@context") + @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY) public List<Object> getContext() { return context; } diff --git a/src/test/java/com/juick/server/tests/ServerTests.java b/src/test/java/com/juick/server/tests/ServerTests.java index 322d4de7..a140e9f0 100644 --- a/src/test/java/com/juick/server/tests/ServerTests.java +++ b/src/test/java/com/juick/server/tests/ServerTests.java @@ -1705,6 +1705,9 @@ public class ServerTests { NodeInfo info = jsonMapper.readValue(IOUtils.toString(new ClassPathResource("xnodeinfo2.json").getURI(), StandardCharsets.UTF_8), NodeInfo.class); assertThat(info.getUsage().getUsers().getActiveHalfyear(), is(42)); Like like = jsonMapper.readValue(IOUtils.toString(new ClassPathResource("like.json").getURI(), StandardCharsets.UTF_8), Like.class); + String undoPleromaStr = IOUtils.toString(new ClassPathResource("undo_pleroma.json").getURI(), StandardCharsets.UTF_8); + Undo undoPleroma = jsonMapper.readValue(undoPleromaStr, Undo.class); + String undoPleromaFollower = (String)((Map)undoPleroma.getObject()).get("object"); } @Test public void activitySerialization() throws Exception { diff --git a/src/test/resources/undo_pleroma.json b/src/test/resources/undo_pleroma.json new file mode 100644 index 00000000..2ef67bc2 --- /dev/null +++ b/src/test/resources/undo_pleroma.json @@ -0,0 +1 @@ +{"@context":"https://www.w3.org/ns/activitystreams","id":"https://mastodon.social/users/chest_i_razym#follows/4510327/undo","type":"Undo","actor":"https://mastodon.social/users/chest_i_razym","object":{"id":"https://mastodon.social/1a4824f6-b5d0-415b-a7ef-62d7637d83c9","type":"Follow","actor":"https://mastodon.social/users/chest_i_razym","object":"https://juick.com/u/WP8"}}
\ No newline at end of file |