diff options
author | William Pitcock <nenolod@dereferenced.org> | 2019-03-21 23:17:53 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2019-03-21 23:24:04 +0000 |
commit | fea36967999fed5399ab3533e806e4cbc990ad05 (patch) | |
tree | a1b363a63bf62e9342313026238a8fffd509845e /lib/pleroma/web/common_api/utils.ex | |
parent | bf8b29e080a6a8a369abb53a26229bb0544de1c0 (diff) | |
download | pleroma-fea36967999fed5399ab3533e806e4cbc990ad05.tar.gz |
common api: move context functions from twitterapi
Diffstat (limited to 'lib/pleroma/web/common_api/utils.ex')
-rw-r--r-- | lib/pleroma/web/common_api/utils.ex | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index b7513ef28..fcdfea8e1 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -344,4 +344,33 @@ defmodule Pleroma.Web.CommonAPI.Utils do end def get_report_statuses(_, _), do: {:ok, nil} + + # DEPRECATED mostly, context objects are now created at insertion time. + 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) + + 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 + + def conversation_id_to_context(id) do + with %Object{data: %{"id" => context}} <- Repo.get(Object, id) do + context + else + _e -> + {:error, "No such conversation"} + end + end end |