activitypub: mrf: tag policy: refactor the filtering hook a bit

This commit is contained in:
William Pitcock 2019-02-04 17:06:37 +00:00
parent 9a69f08e86
commit ff2c28fd6d

View file

@ -87,21 +87,7 @@ defp process_tag(
defp process_tag(_, message), do: {:ok, message} defp process_tag(_, message), do: {:ok, message}
@impl true def filter_message(actor, message) do
def filter(%{"object" => target_actor, "type" => "Follow"} = message) do
User.get_cached_by_ap_id(target_actor)
|> get_tags()
|> Enum.reduce({:ok, message}, fn
tag, {:ok, message} ->
process_tag(tag, message)
_, error ->
error
end)
end
@impl true
def filter(%{"actor" => actor, "type" => "Create"} = message) do
User.get_cached_by_ap_id(actor) User.get_cached_by_ap_id(actor)
|> get_tags() |> get_tags()
|> Enum.reduce({:ok, message}, fn |> Enum.reduce({:ok, message}, fn
@ -113,6 +99,14 @@ def filter(%{"actor" => actor, "type" => "Create"} = message) do
end) end)
end end
@impl true
def filter(%{"object" => target_actor, "type" => "Follow"} = message),
do: filter_message(target_actor, message)
@impl true
def filter(%{"actor" => actor, "type" => "Create"} = message),
do: filter_message(actor, message)
@impl true @impl true
def filter(message), do: {:ok, message} def filter(message), do: {:ok, message}
end end