diff options
author | Mark Felder <feld@FreeBSD.org> | 2019-12-19 12:16:33 -0600 |
---|---|---|
committer | Mark Felder <feld@FreeBSD.org> | 2019-12-19 12:16:33 -0600 |
commit | 50638525db6bf7d59c4a5820848c9f6773cc49e1 (patch) | |
tree | 6d94f34ddd482d57178107076a7e2f44698a3e43 /lib/pleroma/object.ex | |
parent | df469b4468168cf072e73df73e0fdde2bbab1da5 (diff) | |
parent | 38ad407395e838ddf1c11922806adc080af44d36 (diff) | |
download | pleroma-50638525db6bf7d59c4a5820848c9f6773cc49e1.tar.gz |
Merge branch 'develop' into config/benchmark
Diffstat (limited to 'lib/pleroma/object.ex')
-rw-r--r-- | lib/pleroma/object.ex | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index ff0e59241..eb37b95a6 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -23,6 +23,23 @@ defmodule Pleroma.Object do timestamps() end + def with_joined_activity(query, activity_type \\ "Create", join_type \\ :inner) do + object_position = Map.get(query.aliases, :object, 0) + + join(query, join_type, [{object, object_position}], a in Activity, + on: + fragment( + "COALESCE(?->'object'->>'id', ?->>'object') = (? ->> 'id') AND (?->>'type' = ?) ", + a.data, + a.data, + object.data, + a.data, + ^activity_type + ), + as: :object_activity + ) + end + def create(data) do Object.change(%Object{}, %{data: data}) |> Repo.insert() |