Merge branch 'adapt-nginx-acme-path-to-guide-recommendation' into 'develop'
[akkoma] / lib / pleroma / web / activity_pub / utils.ex
index 3b0cdfe711baa33dad6f56331d9514614930a83b..134701e80597f95002fa79c9a0fdc95bdbf39e59 100644 (file)
@@ -134,14 +134,8 @@ defmodule Pleroma.Web.ActivityPub.Utils do
     context = context || generate_id("contexts")
     changeset = Object.context_mapping(context)
 
-    case Repo.insert(changeset) do
-      {:ok, object} ->
-        object
-
-      # This should be solved by an upsert, but it seems ecto
-      # has problems accessing the constraint inside the jsonb.
-      {:error, _} ->
-        Object.get_cached_by_ap_id(context)
+    with {:ok, object} <- Object.insert_or_get(changeset) do
+      object
     end
   end
 
@@ -285,7 +279,7 @@ defmodule Pleroma.Web.ActivityPub.Utils do
            |> Map.put("#{property}_count", length(element))
            |> Map.put("#{property}s", element),
          changeset <- Changeset.change(object, data: new_data),
-         {:ok, object} <- Repo.update(changeset),
+         {:ok, object} <- Object.update_and_set_cache(changeset),
          _ <- update_object_in_activities(object) do
       {:ok, object}
     end