diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-06-20 09:50:22 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-06-20 09:50:22 +0200 |
commit | af49c11193d7e78159b5a45fa798cce1565cece7 (patch) | |
tree | 9a84f9c9a1d9ad4c1606a35d05cf87a35342ee90 /lib | |
parent | 45c751985ee1612bd788c460ee1f6aca75f24464 (diff) | |
download | pleroma-af49c11193d7e78159b5a45fa798cce1565cece7.tar.gz |
Work around upserting problems in context mapping.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/object.ex | 2 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api.ex | 12 |
2 files changed, 9 insertions, 5 deletions
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index 72991fa1f..5b51d6be3 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -43,6 +43,6 @@ defmodule Pleroma.Object do end def context_mapping(context) do - %Object{data: %{"id" => context}} + Object.change(%Object{}, %{data: %{"id" => context}}) end end diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 8e36ba3f4..5881af95e 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -283,10 +283,14 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do def context_to_conversation_id(context) do with %Object{id: id} <- Object.get_cached_by_ap_id(context) do id - else _e -> - changeset = Object.context_mapping(context) - {:ok, %{id: id}} = Repo.insert(changeset) - id + else _e -> + changeset = Object.context_mapping(context) + case Repo.insert(changeset) do + {:ok, %{id: id}} -> id + # 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).id + end end end |