elixir-in-action/chapter3/user_extraction_2.ex
2020-06-20 13:57:33 -05:00

11 lines
353 B
Elixir

defmodule UserExtraction do
def extract(user) do
case Enum.filter(["login", "email", "password"], &(not Map.has_key?(user, &1))) do
[] ->
{:ok, %{login: user["login"], email: user["email"], password: user["password"]}}
missing_fields ->
{:error, "missing fields: #{Enum.join(missing_fields, ", ")}"}
end
end
end