elixir-in-action/chapter3/user_extraction_2.ex

12 lines
353 B
Elixir
Raw Normal View History

2020-06-20 13:57:33 -05:00
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