class Praxis::RequestStages::ValidateParamsAndHeaders

Attributes

parent[R]

Public Class Methods

new(name, context, parent:) click to toggle source
Calls superclass method
# File lib/praxis/request_stages/validate_params_and_headers.rb, line 8
def initialize(name, context, parent:)
  super
  @parent = parent
end

Public Instance Methods

execute() click to toggle source
# File lib/praxis/request_stages/validate_params_and_headers.rb, line 17
def execute
  begin
    request.load_headers(CONTEXT_FOR[:headers])
  rescue StandardError => e
    message = 'Error loading headers.'
    return validation_handler.handle!(
      exception: e,
      summary: message,
      request: request,
      stage: name
    )
  end

  begin
    request.load_params(CONTEXT_FOR[:params])
  rescue Attributor::AttributorException => e
    message = 'Error loading params.'
    return validation_handler.handle!(
      exception: e,
      summary: message,
      request: request,
      stage: name
    )
  end

  errors = request.validate_headers(CONTEXT_FOR[:headers])
  errors += request.validate_params(CONTEXT_FOR[:params])
  return unless errors.any?

  message = 'Error validating request data.'
  validation_handler.handle!(
    summary: message,
    errors: errors,
    request: request,
    stage: name
  )
end
path() click to toggle source
# File lib/praxis/request_stages/validate_params_and_headers.rb, line 13
def path
  @path ||= (@parent.path + [name])
end