lib/forage/codec/exceptions/invalid_field_error.ex
defmodule Forage.Codec.Exceptions.InvalidFieldError do
@moduledoc """
The given field is invalid for the given schema.
"""
defexception [:message]
@impl true
def exception({schema, field_name}) do
field_atoms = schema.__schema__(:fields)
valid_field_names = Enum.map(field_atoms, &Atom.to_string/1)
msg = """
#{inspect(field_name)} is not valid for schema #{inspect(schema)}. \
Valid field names are: #{inspect(valid_field_names)}.\
"""
%__MODULE__{message: msg}
end
end