aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-04-30 11:16:41 +0200
committerRoger Braun <roger@rogerbraun.net>2017-04-30 11:16:41 +0200
commit9d7c3190cc346bf2a5576b6b93c26723059ae9a1 (patch)
tree257225f5f94a119a8f7aa061bd70a13714c72909
parent11ea08649d5a5e5d2ac9ee29406f53240be77ec4 (diff)
downloadpleroma-9d7c3190cc346bf2a5576b6b93c26723059ae9a1.tar.gz
Get create activity from created object id.
This is useful for Ostatus federation because ostatus doesn't have different ids for objects and activities...
-rw-r--r--lib/pleroma/activity.ex5
-rw-r--r--test/activity_test.exs7
-rw-r--r--test/web/ostatus/feed_representer_test.exs2
3 files changed, 13 insertions, 1 deletions
diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex
index 46568bb13..80d96d0f2 100644
--- a/lib/pleroma/activity.ex
+++ b/lib/pleroma/activity.ex
@@ -18,4 +18,9 @@ defmodule Pleroma.Activity do
Repo.all(from activity in Activity,
where: fragment("? @> ?", activity.data, ^%{object: %{id: ap_id}}))
end
+
+ def get_create_activity_by_object_ap_id(ap_id) do
+ Repo.one(from activity in Activity,
+ where: fragment("? @> ?", activity.data, ^%{type: "Create", object: %{id: ap_id}}))
+ end
end
diff --git a/test/activity_test.exs b/test/activity_test.exs
index ce6eb1545..366a2f957 100644
--- a/test/activity_test.exs
+++ b/test/activity_test.exs
@@ -15,4 +15,11 @@ defmodule Pleroma.ActivityTest do
assert activity == found_activity
end
+
+ test "returns the activity that created an object" do
+ activity = insert(:note_activity)
+ found_activity = Pleroma.Activity.get_create_activity_by_object_ap_id(activity.data["object"]["id"])
+
+ assert activity == found_activity
+ end
end
diff --git a/test/web/ostatus/feed_representer_test.exs b/test/web/ostatus/feed_representer_test.exs
index ef0f4d5ff..7bbfae49a 100644
--- a/test/web/ostatus/feed_representer_test.exs
+++ b/test/web/ostatus/feed_representer_test.exs
@@ -22,7 +22,7 @@ defmodule Pleroma.Web.OStatus.FeedRepresenterTest do
|> :xmerl.export_simple_content(:xmerl_xml)
expected = """
- <feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0">
+ <feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0">
<id>#{OStatus.feed_path(user)}</id>
<title>#{user.nickname}'s timeline</title>
<updated>#{most_recent_update}</updated>