gflare/validate

Types

pub type Schema(a) {
  Schema(
    decode: fn(dynamic.Dynamic) -> Result(
      a,
      List(ValidationError),
    ),
    field_name: String,
  )
}

Constructors

pub type ValidationError {
  ValidationError(field: String, message: String)
}

Constructors

  • ValidationError(field: String, message: String)

Values

pub fn between(
  schema: Schema(Int),
  min_val: Int,
  max_val: Int,
) -> Schema(Int)
pub fn bool(field: String) -> Schema(Bool)
pub fn custom(
  schema: Schema(a),
  validator: fn(a) -> Result(a, String),
) -> Schema(a)
pub fn date(field: String) -> Schema(String)
pub fn datetime(field: String) -> Schema(String)
pub fn email(field: String) -> Schema(String)
pub fn errors_to_string(errors: List(ValidationError)) -> String
pub fn float(field: String) -> Schema(Float)
pub fn format_errors(errors: List(ValidationError)) -> json.Json

Format validation errors as JSON for API responses.

pub fn int(field: String) -> Schema(Int)

Create an integer schema for the given field.

pub fn max(schema: Schema(Int), max_val: Int) -> Schema(Int)
pub fn max_length(
  schema: Schema(String),
  length: Int,
) -> Schema(String)
pub fn min(schema: Schema(Int), min_val: Int) -> Schema(Int)
pub fn min_length(
  schema: Schema(String),
  length: Int,
) -> Schema(String)
pub fn negative(schema: Schema(Int)) -> Schema(Int)
pub fn one_of(
  field: String,
  values: List(String),
) -> Schema(String)
pub fn optional(
  field: String,
  schema: Schema(a),
) -> Schema(option.Option(a))
pub fn pattern(
  schema: Schema(String),
  pattern_str: String,
) -> Schema(String)
pub fn positive(schema: Schema(Int)) -> Schema(Int)
pub fn required(field: String, schema: Schema(a)) -> Schema(a)
pub fn string(field: String) -> Schema(String)

Create a string schema for the given field.

pub fn time(field: String) -> Schema(String)
pub fn ulid(field: String) -> Schema(String)
pub fn url(field: String) -> Schema(String)
pub fn uuid(field: String) -> Schema(String)
pub fn validate(
  schema: Schema(a),
  data: dynamic.Dynamic,
) -> Result(a, List(ValidationError))

Validate data against a schema. Returns Ok(value) or Error(list of validation errors).

pub fn validate_body(
  schema: Schema(a),
  request: request.HttpRequest,
) -> promise.Promise(Result(a, List(ValidationError)))

Validate request body against a schema. Returns Ok(value) or Error(list of validation errors).

Search Document