Skema.Validator (Skema v1.5.0)

Copy Markdown View Source

Handles validation logic for Skema schemas.

This module is responsible for validating data against business rules and constraints defined in schema field definitions. It supports built-in validations, custom functions, and nested schema validation.

Summary

Functions

Processes validation for a single field.

Processes validation for all fields in a schema.

Validates a single field value against all its validation rules.

Functions

process_field(result, arg)

@spec process_field(
  %Skema.Result{
    errors: term(),
    params: term(),
    schema: term(),
    valid?: term(),
    valid_data: term()
  },
  {atom(), list()}
) :: %Skema.Result{
  errors: term(),
  params: term(),
  schema: term(),
  valid?: term(),
  valid_data: term()
}

Processes validation for a single field.

process_validation(result)

@spec process_validation(%Skema.Result{
  errors: term(),
  params: term(),
  schema: term(),
  valid?: term(),
  valid_data: term()
}) ::
  :ok
  | {:error,
     %Skema.Result{
       errors: term(),
       params: term(),
       schema: term(),
       valid?: term(),
       valid_data: term()
     }}

Processes validation for all fields in a schema.

Returns :ok if validation succeeds, {:error, result} otherwise.

validate_field(field_name, value, all_data, definitions)

@spec validate_field(atom(), any(), map(), keyword()) :: :ok | {:error, any()}

Validates a single field value against all its validation rules.