-
- defp maybe_add_context_from_object(%{"context" => context} = data) when is_binary(context),
- do: {:ok, data}
-
- defp maybe_add_context_from_object(%{"object" => object} = data) when is_binary(object) do
- if object = Object.normalize(object) do
- data =
- data
- |> Map.put("context", object.data["context"])
-
- {:ok, data}
- else
- {:error, "No context on referenced object"}
- end
- end
-
- defp maybe_add_context_from_object(_) do
- {:error, "No referenced object"}
- end
-
- defp maybe_add_recipients_from_object(%{"object" => object} = data) do
- to = data["to"] || []
- cc = data["cc"] || []
-
- if to == [] && cc == [] do
- if object = Object.normalize(object) do
- data =
- data
- |> Map.put("to", [object.data["actor"]])
- |> Map.put("cc", cc)
-
- {:ok, data}
- else
- {:error, "No actor on referenced object"}
- end
- else
- {:ok, data}
- end
- end
-
- defp maybe_add_recipients_from_object(_) do
- {:error, "No referenced object"}
- end