Work around upserting problems in context mapping.

This commit is contained in:
Roger Braun 2017-06-20 09:50:22 +02:00
parent 45c751985e
commit af49c11193
2 changed files with 9 additions and 5 deletions

View file

@ -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

View file

@ -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