class Grape::Validations::ContractScope::Validator
Attributes
schema[R]
Public Class Methods
new(*_args, schema:)
click to toggle source
# File lib/grape/validations/contract_scope.rb, line 36 def initialize(*_args, schema:) @schema = schema end
Public Instance Methods
fail_fast?()
click to toggle source
# File lib/grape/validations/contract_scope.rb, line 65 def fail_fast? false end
validate(request)
click to toggle source
Validates a given request. @param request [Grape::Request] the request currently being handled @raise [Grape::Exceptions::ValidationArrayErrors] if validation failed @return [void]
# File lib/grape/validations/contract_scope.rb, line 44 def validate(request) res = schema.call(request.params) if res.success? request.params.deep_merge!(res.to_h) return end errors = [] res.errors.messages.each do |message| full_name = message.path.first.to_s full_name += "[#{message.path[1..].join('][')}]" if message.path.size > 1 errors << Grape::Exceptions::Validation.new(params: [full_name], message: message.text) end raise Grape::Exceptions::ValidationArrayErrors.new(errors) end