diff options
author | Maksim Pechnikov <parallel588@gmail.com> | 2019-12-14 21:44:10 +0300 |
---|---|---|
committer | Maksim Pechnikov <parallel588@gmail.com> | 2019-12-14 21:44:10 +0300 |
commit | 67cb46e15dd5fa16da257a9b0e5166266d10c694 (patch) | |
tree | 6801ecba06ea3aac7086c57834e1413e5bb0c84a /lib/pleroma/object.ex | |
parent | 2b821036c4bd84cee51c9fcace5a4b3764c3bba1 (diff) | |
parent | 8efacfed677ea2f06ac228294faec77a38060976 (diff) | |
download | pleroma-67cb46e15dd5fa16da257a9b0e5166266d10c694.tar.gz |
Merge branch 'develop' into issue/1383
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() |