Merge branch 'refactor/remove-activity-representer' into 'develop'
[akkoma] / lib / pleroma / activity.ex
index fcdac3a3f249705ba87ca04003d58ac0e35c91f8..3dfabe9f35a7926ac7671006e19c0021876c1ac3 100644 (file)
@@ -41,8 +41,8 @@ defmodule Pleroma.Activity do
     #
     # ```
     # |> join(:inner, [activity], o in Object,
-    #      on: fragment("(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
-    #        o.data, activity.data))
+    #      on: fragment("(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')",
+    #        o.data, activity.data, activity.data))
     # |> preload([activity, object], [object: object])
     # ```
     #
@@ -61,8 +61,9 @@ defmodule Pleroma.Activity do
       o in Object,
       on:
         fragment(
-          "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
+          "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')",
           o.data,
+          activity.data,
           activity.data
         )
     )
@@ -83,11 +84,12 @@ defmodule Pleroma.Activity do
       from(
         activity in Activity,
         where: fragment("(?)->>'id' = ?", activity.data, ^to_string(ap_id)),
-        inner_join: o in Object,
+        left_join: o in Object,
         on:
           fragment(
-            "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
+            "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')",
             o.data,
+            activity.data,
             activity.data
           ),
         preload: [object: o]
@@ -105,8 +107,9 @@ defmodule Pleroma.Activity do
       inner_join: o in Object,
       on:
         fragment(
-          "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
+          "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')",
           o.data,
+          activity.data,
           activity.data
         ),
       preload: [object: o]
@@ -182,8 +185,9 @@ defmodule Pleroma.Activity do
       inner_join: o in Object,
       on:
         fragment(
-          "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
+          "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')",
           o.data,
+          activity.data,
           activity.data
         ),
       preload: [object: o]