module Middlewares::Validator::Inline

Public Class Methods

perform(request, response, _options, &block) click to toggle source
# File lib/endpoint_flux/tasks/endpoint_flux/generators/endpoint_flux/middlewares/validator/inline.rb, line 4
def self.perform(request, response, _options, &block)
  raise 'InlineValidator requires block with validations' unless block_given?

  validation = ::Dry::Validation.Schema(::Validations::Base, &block).call(request.params)
  unless validation.success?
    raise EndpointFlux::Exceptions::Validation, validation.messages
  end
  request.params = validation.output

  [request, response]
end