Oaskit.Validation.RequestValidator (oaskit v0.9.0)

View Source

Base validation logic for requests, used by the Oaskit.Plugs.ValidateRequest Plug.

This module validates a Oaskit.Validation.RequestData struct instead of a Plug.Conn struct, which makes it usable from client libraries.

Summary

Functions

Validates a request and returns cast data (body params, query params and path params) or an error.

Types

built_spec()

@type built_spec() ::
  {%{required(binary()) => %{security: term(), validation: term()}},
   jsv_ctx :: term()}

private_data()

@type private_data() :: %{
  body_params: map(),
  query_params: map(),
  path_params: map(),
  header_params: map(),
  operation_id: binary()
}

validation_error()

@type validation_error() ::
  Oaskit.Errors.InvalidBodyError.t()
  | Oaskit.Errors.UnsupportedMediaTypeError.t()
  | {:parameters_errors,
     [
       Oaskit.Errors.InvalidParameterError.t()
       | Oaskit.Errors.MissingParameterError.t()
     ]}
  | {:not_built, operation_id :: binary()}

Functions

validate_request(req_data, spec_module, operation_id)

@spec validate_request(
  Oaskit.Validation.RequestData.t(),
  module() | built_spec(),
  binary()
) ::
  {:ok, private_data()} | {:error, validation_error()}

Validates a request and returns cast data (body params, query params and path params) or an error.