diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-03-24 00:09:08 +0100 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-03-24 00:09:08 +0100 |
commit | 866a2663d4093204317aba7ff87a6d93eaf805fd (patch) | |
tree | 8a03b3eef18d4d79ec2d59ed76a9fe769f29d2bb | |
parent | ae50b165cced7fda1e62f677f959c6f202127aa7 (diff) | |
download | pleroma-866a2663d4093204317aba7ff87a6d93eaf805fd.tar.gz pleroma-866a2663d4093204317aba7ff87a6d93eaf805fd.zip |
Add fetching of activities in context.
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 6 | ||||
-rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 12 |
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index d14ce3570..043e33042 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -60,4 +60,10 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do Repo.all(query) |> Enum.reverse end + + def fetch_activities_for_context(context) do + query = from activity in Activity, + where: fragment("? @> ?", activity.data, ^%{ context: context }) + Repo.all(query) + end end diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 6a5138012..b773c323e 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -49,6 +49,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do end end + describe "fetch activities in context" do + test "retrieves activities that have a given context" do + {:ok, activity} = ActivityBuilder.insert(%{"context" => "2hu"}) + {:ok, activity_two} = ActivityBuilder.insert(%{"context" => "2hu"}) + {:ok, _activity_three} = ActivityBuilder.insert(%{"context" => "3hu"}) + + activities = ActivityPub.fetch_activities_for_context("2hu") + + assert activities == [activity, activity_two] + end + end + describe "public fetch activities" do test "retrieves public activities" do %{public: public} = ActivityBuilder.public_and_non_public |