alias Pleroma.UserRelationship
alias Pleroma.Web
alias Pleroma.Web.ActivityPub.ActivityPub
+ alias Pleroma.Web.ActivityPub.Builder
alias Pleroma.Web.ActivityPub.ObjectValidators.Types
+ alias Pleroma.Web.ActivityPub.Pipeline
alias Pleroma.Web.ActivityPub.Utils
alias Pleroma.Web.CommonAPI
alias Pleroma.Web.CommonAPI.Utils, as: CommonUtils
|> ActivityPub.delete()
end
- defp delete_activity(%{data: %{"type" => "Like"}} = activity) do
- object = Object.normalize(activity)
+ defp delete_activity(%{data: %{"type" => type}} = activity) when type in ["Like", "Announce"] do
+ actor =
+ activity.actor
+ |> get_cached_by_ap_id()
- activity.actor
- |> get_cached_by_ap_id()
- |> ActivityPub.unlike(object)
- end
-
- defp delete_activity(%{data: %{"type" => "Announce"}} = activity) do
- object = Object.normalize(activity)
+ {:ok, undo, _} = Builder.undo(actor, activity)
- activity.actor
- |> get_cached_by_ap_id()
- |> ActivityPub.unannounce(object)
+ Pipeline.common_pipeline(undo, local: true)
end
defp delete_activity(_activity), do: "Doing nothing"