diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/common_api/common_api.ex | 27 | ||||
| -rw-r--r-- | lib/pleroma/web/common_api/utils.ex | 18 | 
2 files changed, 15 insertions, 30 deletions
| diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 511cae63f..b9fa9fe3a 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -83,8 +83,9 @@ defmodule Pleroma.Web.CommonAPI do      end    end -  def repeat(id_or_ap_id, user, params \\ %{}) do -    with {_, %Activity{} = activity} <- {:find_activity, get_by_id_or_ap_id(id_or_ap_id)}, +  def repeat(id, user, params \\ %{}) do +    with {_, %Activity{data: %{"type" => "Create"}} = activity} <- +           {:find_activity, Activity.get_by_id(id)},           object <- Object.normalize(activity),           announce_activity <- Utils.get_existing_announce(user.ap_id, object),           public <- public_announce?(object, params) do @@ -99,8 +100,9 @@ defmodule Pleroma.Web.CommonAPI do      end    end -  def unrepeat(id_or_ap_id, user) do -    with {_, %Activity{} = activity} <- {:find_activity, get_by_id_or_ap_id(id_or_ap_id)} do +  def unrepeat(id, user) do +    with {_, %Activity{data: %{"type" => "Create"}} = activity} <- +           {:find_activity, Activity.get_by_id(id)} do        object = Object.normalize(activity)        ActivityPub.unannounce(user, object)      else @@ -109,8 +111,8 @@ defmodule Pleroma.Web.CommonAPI do      end    end -  def favorite(id_or_ap_id, user) do -    with {_, %Activity{} = activity} <- {:find_activity, get_by_id_or_ap_id(id_or_ap_id)}, +  def favorite(id, user) do +    with {_, %Activity{} = activity} <- {:find_activity, Activity.get_by_id(id)},           object <- Object.normalize(activity),           like_activity <- Utils.get_existing_like(user.ap_id, object) do        if like_activity do @@ -124,8 +126,9 @@ defmodule Pleroma.Web.CommonAPI do      end    end -  def unfavorite(id_or_ap_id, user) do -    with {_, %Activity{} = activity} <- {:find_activity, get_by_id_or_ap_id(id_or_ap_id)} do +  def unfavorite(id, user) do +    with {_, %Activity{data: %{"type" => "Create"}} = activity} <- +           {:find_activity, Activity.get_by_id(id)} do        object = Object.normalize(activity)        ActivityPub.unlike(user, object)      else @@ -316,12 +319,12 @@ defmodule Pleroma.Web.CommonAPI do      })    end -  def pin(id_or_ap_id, %{ap_id: user_ap_id} = user) do +  def pin(id, %{ap_id: user_ap_id} = user) do      with %Activity{             actor: ^user_ap_id,             data: %{"type" => "Create"},             object: %Object{data: %{"type" => object_type}} -         } = activity <- get_by_id_or_ap_id(id_or_ap_id), +         } = activity <- Activity.get_by_id_with_object(id),           true <- object_type in ["Note", "Article", "Question"],           true <- Visibility.is_public?(activity),           {:ok, _user} <- User.add_pinnned_activity(user, activity) do @@ -332,8 +335,8 @@ defmodule Pleroma.Web.CommonAPI do      end    end -  def unpin(id_or_ap_id, user) do -    with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id), +  def unpin(id, user) do +    with %Activity{data: %{"type" => "Create"}} = activity <- Activity.get_by_id(id),           {:ok, _user} <- User.remove_pinnned_activity(user, activity) do        {:ok, activity}      else diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index 635e7cd38..26dcd463c 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -24,24 +24,6 @@ defmodule Pleroma.Web.CommonAPI.Utils do    require Logger    require Pleroma.Constants -  # This is a hack for twidere. -  def get_by_id_or_ap_id(id) do -    activity = -      with true <- FlakeId.flake_id?(id), -           %Activity{} = activity <- Activity.get_by_id_with_object(id) do -        activity -      else -        _ -> Activity.get_create_by_object_ap_id_with_object(id) -      end - -    activity && -      if activity.data["type"] == "Create" do -        activity -      else -        Activity.get_create_by_object_ap_id_with_object(activity.data["object"]) -      end -  end -    def attachments_from_ids(%{"media_ids" => ids, "descriptions" => desc} = _) do      attachments_from_ids_descs(ids, desc)    end | 
