defmodule Solicit.Changeset do
@moduledoc """
Generic functions for working with changesets that are not packaged with Ecto.
"""
@doc """
A module encapsulating the translation layer between a changeset error and the JSON error shape returned in an API response.
"""
@spec code_and_description(tuple()) :: tuple()
def code_and_description({description, [error_code: error_code]}),
do: {error_code, description}
def code_and_description({description, [validation: error_code]}),
do: {error_code, description}
def code_and_description({changeset_error, _}), do: {:unknown_error, changeset_error}
end