class Praxis::RequestStages::ValidatePayload

Attributes

parent[R]

Public Class Methods

new(name, context, parent:) click to toggle source
Calls superclass method
# File lib/praxis/request_stages/validate_payload.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_payload.rb, line 17
def execute
  if request.action.payload
    begin
      request.load_payload(CONTEXT_FOR[:payload])
    rescue => e
      message = "Error loading payload. Used Content-Type: '#{request.content_type}'"
      return validation_handler.handle!(
        exception: e,
        summary: message,
        request: request,
        stage: name
      )
    end
    Attributor::AttributeResolver.current.register("payload",request.payload)

    errors = request.validate_payload(CONTEXT_FOR[:payload])
    if errors.any?
      return validation_handler.handle!(
        summary: "Errors validating payload data",
        errors: errors,
        request: request,
        stage: name
      )
    end
  end
end
path() click to toggle source
# File lib/praxis/request_stages/validate_payload.rb, line 13
def path
  @_path ||= ( @parent.path + [name] )
end