object_validator: Simplify Add/Remove

This commit is contained in:
Haelwenn (lanodan) Monnier 2021-07-21 21:03:24 +02:00
parent 2db640632b
commit 75ab36c068
1 changed files with 3 additions and 11 deletions

View File

@ -143,7 +143,7 @@ def validate(%{"type" => type} = object, meta)
def validate(%{"type" => type} = object, meta)
when type in ~w[Accept Reject Follow Update Like EmojiReact Announce
ChatMessage Answer] do
ChatMessage Answer Add Remove] do
validator =
case type do
"Accept" -> AcceptRejectValidator
@ -155,6 +155,8 @@ def validate(%{"type" => type} = object, meta)
"Announce" -> AnnounceValidator
"ChatMessage" -> ChatMessageValidator
"Answer" -> AnswerValidator
"Add" -> AddRemoveValidator
"Remove" -> AddRemoveValidator
end
with {:ok, object} <-
@ -166,16 +168,6 @@ def validate(%{"type" => type} = object, meta)
end
end
def validate(%{"type" => type} = object, meta) when type in ~w(Add Remove) do
with {:ok, object} <-
object
|> AddRemoveValidator.cast_and_validate()
|> Ecto.Changeset.apply_action(:insert) do
object = stringify_keys(object)
{:ok, object, meta}
end
end
def validate(o, m), do: {:error, {:validator_not_set, {o, m}}}
def cast_and_apply(%{"type" => "ChatMessage"} = object) do