Pipeline Ingestion: Note
[akkoma] / lib / pleroma / ecto_type / activity_pub / object_validators / recipients.ex
index b76547e7580d5e7116d8d305e192d9ccd7193b9c..a0347146255c58fe62a8ddaabef3eb2c8704f1be 100644 (file)
@@ -13,20 +13,23 @@ defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.Recipients do
     cast([object])
   end
 
+  def cast(object) when is_map(object) do
+    case ObjectID.cast(object) do
+      {:ok, data} -> {:ok, data}
+      _ -> :error
+    end
+  end
+
   def cast(data) when is_list(data) do
     data
-    |> Enum.reduce_while({:ok, []}, fn
-      nil, {:ok, list} ->
-        {:cont, {:ok, list}}
-
-      element, {:ok, list} ->
-        case ObjectID.cast(element) do
-          {:ok, id} ->
-            {:cont, {:ok, [id | list]}}
-
-          _ ->
-            {:halt, {:error, element}}
-        end
+    |> Enum.reduce_while({:ok, []}, fn element, {:ok, list} ->
+      case ObjectID.cast(element) do
+        {:ok, id} ->
+          {:cont, {:ok, [id | list]}}
+
+        _ ->
+          {:cont, {:ok, list}}
+      end
     end)
   end