ObjectValidator.CommonFixes: Introduce fix_objects_defaults and fix_activity_defaults
[akkoma] / lib / pleroma / ecto_type / activity_pub / object_validators / recipients.ex
index af4b0e52779524291822a94ec552d97e020e0a88..b76547e7580d5e7116d8d305e192d9ccd7193b9c 100644 (file)
@@ -15,19 +15,23 @@ defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.Recipients do
 
   def cast(data) when is_list(data) do
     data
-    |> Enum.reduce_while({:ok, []}, fn element, {:ok, list} ->
-      case ObjectID.cast(element) do
-        {:ok, id} ->
-          {:cont, {:ok, [id | list]}}
-
-        _ ->
-          {:halt, :error}
-      end
+    |> 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
     end)
   end
 
-  def cast(_) do
-    :error
+  def cast(data) do
+    {:error, data}
   end
 
   def dump(data) do