Browse Source

Work around upserting problems in context mapping.

tags/v0.9.9
Roger Braun 7 years ago
parent
commit
af49c11193
2 changed files with 9 additions and 5 deletions
  1. +1
    -1
      lib/pleroma/object.ex
  2. +8
    -4
      lib/pleroma/web/twitter_api/twitter_api.ex

+ 1
- 1
lib/pleroma/object.ex 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

+ 8
- 4
lib/pleroma/web/twitter_api/twitter_api.ex 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



Loading…
Cancel
Save