module Sinatra::Validation::Helpers
Public Instance Methods
validates(options = {}, &block)
click to toggle source
# File lib/sinatra/validation.rb, line 28 def validates(options = {}, &block) schema = Class.new(Dry::Validation::Contract, &block).new validation = schema.call(params) result = Result.new(params).with_message(validation.errors) if options[:silent] || settings.silent_validation return result end if validation.failure? raise InvalidParameterError.new(result) end rescue InvalidParameterError => exception if options[:raise] || settings.raise_sinatra_validation_exception raise exception end errors = exception.result.messages error = errors.first if content_type && content_type.match(mime_type(:json)) error = { errors: errors }.to_json end halt 400, error end