Valicon.Conversions (valicon v1.9.2)

Copy Markdown View Source

Data transformation functions. Pretty generic but used mostly before calling the validations.

Summary

Functions

atomize_keys(attrs, keys)

@spec atomize_keys(map(), [atom()]) :: map()

atomize_value(attrs, key, possible_values)

@spec atomize_value(map(), Valicon.key(), [atom()]) :: map()

cast(attrs, fields)

@spec cast(map(), Keyword.t()) ::
  {:ok, map()} | {:error, [Valicon.ConversionError.t()]}

Casts the string values inside the attrs map to the given types.

## Examples

  iex> cast(%{name: "Butterfree", number: "012"}, [name: :string, number: :integer])
  {:ok, %{name: "Butterfree", number: 12}}

downcase_in(attrs, key)

@spec downcase_in(map(), atom()) :: map()

parse(value, atom)

@spec parse(String.t(), :date) :: {:ok, Date.t()} | {:error, atom()}
@spec parse(String.t(), :datetime) :: {:ok, DateTime.t()} | {:error, atom()}
@spec parse(String.t(), :integer) :: {:ok, integer()} | {:error, :bad_integer}
@spec parse(String.t(), :boolean) :: {:ok, boolean()} | {:error, :bad_boolean}
@spec parse(String.t() | [String.t()], :list) :: {:ok, [String.t()]}
@spec parse(String.t(), :string) :: {:ok, String.t()}

parse_boolean(arg1)

@spec parse_boolean(term()) :: {:ok, boolean()} | {:error, :bad_boolean}

parse_datetime(value)

@spec parse_datetime(term()) :: {:ok, DateTime.t()} | {:error, atom()}

parse_float(value)

@spec parse_float(term()) :: {:ok, float()} | {:error, :bad_float}

parse_integer(value)

@spec parse_integer(term()) :: {:ok, integer()} | {:error, :bad_integer}

parse_list(list)

@spec parse_list(String.t() | [String.t()]) ::
  {:ok, [String.t()]} | {:error, :bad_list}

parse_string(value)

@spec parse_string(term()) :: {:ok, String.t()} | {:error, :bad_string}

rename_key(map, from, to)

@spec rename_key(map(), Valicon.key(), Valicon.key()) :: map()

stringify_keys(attrs)

@spec stringify_keys(map()) :: map()
@spec stringify_keys(list()) :: list()
@spec stringify_keys(term()) :: term()

transform(attrs, fields)

@spec transform(map(), list()) :: map()

transform_in(attrs, key, transformation)

@spec transform_in(map(), atom(), (term() -> term())) :: map()

trim_whitespaces(input)

@spec trim_whitespaces(any()) :: any()

upcase_in(attrs, key)

@spec upcase_in(map(), atom()) :: map()