diff options
author | Egor Kislitsyn <egor@kislitsyn.com> | 2019-12-13 01:51:52 +0700 |
---|---|---|
committer | Egor Kislitsyn <egor@kislitsyn.com> | 2019-12-13 01:51:52 +0700 |
commit | 7528322f83d5bee92a030e2e626436dab327df9b (patch) | |
tree | d3a69eec557a563ce89246c886e9c31687c8debf /lib/pleroma/object.ex | |
parent | c6f2735ffa1db7871bcb56c00b6d19e4de346d18 (diff) | |
parent | 2f31cef71f377cf660f818e7e204436f2070bd78 (diff) | |
download | pleroma-7528322f83d5bee92a030e2e626436dab327df9b.tar.gz |
Merge branch 'develop' into feature/custom-runtime-modules
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() |