aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-06-20 09:50:22 +0200
committerRoger Braun <roger@rogerbraun.net>2017-06-20 09:50:22 +0200
commitaf49c11193d7e78159b5a45fa798cce1565cece7 (patch)
tree9a84f9c9a1d9ad4c1606a35d05cf87a35342ee90 /lib
parent45c751985ee1612bd788c460ee1f6aca75f24464 (diff)
downloadpleroma-af49c11193d7e78159b5a45fa798cce1565cece7.tar.gz
Work around upserting problems in context mapping.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/object.ex2
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api.ex12
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