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