diff options
author | kaniini <nenolod@gmail.com> | 2019-06-24 18:59:12 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-06-24 18:59:12 +0000 |
commit | 1ab8a9e4fe693e0d3e7442eae37ddeed8ac6ed31 (patch) | |
tree | cefb2323072bce1f02492d49244ee24be340e03d /lib/pleroma/web | |
parent | 0f07bcc9e3b5037b33731616534c128f6c04a589 (diff) | |
parent | 2c63c6751203347907057c780ed8af465f182587 (diff) | |
download | pleroma-1ab8a9e4fe693e0d3e7442eae37ddeed8ac6ed31.tar.gz |
Merge branch 'feature/rework-user-deletion' into 'develop'
Rework user deletion
Closes #846
See merge request pleroma/pleroma!1308
Diffstat (limited to 'lib/pleroma/web')
-rw-r--r-- | lib/pleroma/web/activity_pub/utils.ex | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 10ff572a2..514266cee 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -151,16 +151,18 @@ defmodule Pleroma.Web.ActivityPub.Utils do def create_context(context) do context = context || generate_id("contexts") - changeset = Object.context_mapping(context) - case Repo.insert(changeset) do - {:ok, object} -> - object + # Ecto has problems accessing the constraint inside the jsonb, + # so we explicitly check for the existed object before insert + object = Object.get_cached_by_ap_id(context) - # 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 true <- is_nil(object), + changeset <- Object.context_mapping(context), + {:ok, inserted_object} <- Repo.insert(changeset) do + inserted_object + else + _ -> + object end end |