View Source FatUtils.UUID (FatEcto v1.0.0)
Provides utility functions for working with UUIDs.
This module includes functions to validate and parse UUIDs from a map of parameters.
Summary
Functions
Parses and validates UUIDs in a map of parameters.
Functions
@spec parse(params :: map(), list_of_uuid_fields :: [atom()], options :: keyword()) :: {invalid_uuids :: [atom()], valid_params :: map()}
Parses and validates UUIDs in a map of parameters.
This function takes a map of parameters, a list of fields that should contain UUIDs, and an optional list of options. It returns a tuple containing a list of invalid UUID fields and a map of valid parameters.
Parameters
params
: A map of parameters.list_of_uuid_fields
: A list of fields (keys) in the map that should contain UUIDs.options
: A keyword list of options. Supported options::valid_values
: A list of values that are considered valid without UUID validation.
Returns
{invalid_uuids, valid_params}
: A tuple where:invalid_uuids
is a list of fields that contain invalid UUIDs.valid_params
is a map of parameters with valid UUIDs.
Examples
iex> params = %{user_id: "123e4567-e89b-12d3-a456-426614174000", post_id: "invalid-uuid"}
iex> FatUtils.UUID.parse(params, [:user_id, :post_id])
{[:post_id], %{user_id: "123e4567-e89b-12d3-a456-426614174000", post_id: "invalid-uuid"}}
iex> params = %{user_id: "123e4567-e89b-12d3-a456-426614174000", role: "admin"}
iex> FatUtils.UUID.parse(params, [:user_id], valid_values: ["admin"])
{[], %{user_id: "123e4567-e89b-12d3-a456-426614174000", role: "admin"}}