Improve add_to_index/1 when there is no Object

This commit is contained in:
Mark Felder 2024-06-26 11:04:52 -04:00
parent 7c09150cdb
commit 592955a895

View file

@ -5,7 +5,7 @@ defmodule Pleroma.Search do
alias Pleroma.Workers.SearchIndexingWorker
@spec add_to_index(Activity.t()) :: :ok | :error
def add_to_index(%Pleroma.Activity{id: activity_id, object: %Object{} = object} = activity) do
def add_to_index(%Activity{id: activity_id, object: %Object{} = object} = activity) do
with {_, true} <- {:indexable, indexable?(activity)},
{_, "public"} <- {:visibility, Visibility.get_visibility(object)},
{:ok, %Oban.Job{}} <-
@ -18,6 +18,13 @@ defmodule Pleroma.Search do
end
end
def add_to_index(%Activity{id: activity_id}) do
case Activity.get_by_id_with_object(activity_id) do
%Activity{} = preloaded -> add_to_index(preloaded)
_ -> :ok
end
end
@spec remove_from_index(Object.t()) :: :ok | :error
def remove_from_index(%Pleroma.Object{id: object_id}) do
case SearchIndexingWorker.enqueue("remove_from_index", %{"object" => object_id}) do
@ -36,6 +43,6 @@ defmodule Pleroma.Search do
search_module.healthcheck_endpoints
end
defp indexable?(%Activity{object: %Object{}, data: %{"type" => "Create"}}), do: true
defp indexable?(%Activity{data: %{"type" => "Create"}}), do: true
defp indexable?(_), do: false
end