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

parse(params, list_of_uuid_fields, options \\ [])

@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"}}