Current section
Files
Jump to
Current section
Files
lib/formatter.ex
defmodule Argx.Formatter do
@moduledoc false
def format_errors(errors, use_m, current_m) do
cond do
function_exported?(current_m, :format_errors, 1) ->
apply(current_m, :format_errors, [errors])
function_exported?(use_m, :format_errors, 1) ->
apply(use_m, :format_errors, [errors])
true ->
default(errors)
end
end
def default({:error, errors}) do
fields_ph = "{{fields}}"
result =
errors
|> Enum.map(fn {check_type, fields} ->
case check_type do
:lacked ->
"lacked: #{fields_ph}"
:error_type ->
"error type: #{fields_ph}"
:out_of_range ->
"out of range: #{fields_ph}"
end
|> String.replace(fields_ph, Enum.join(fields, ","))
end)
{:error, result}
end
end