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
  return unless request.action.payload

  begin
    request.load_payload(CONTEXT_FOR[:payload])
  rescue StandardError => e
    message = "Error loading payload. Used Content-Type: '#{request.content_type}'"
    return validation_handler.handle!(
      exception: e,
      summary: message,
      request: request,
      stage: name
    )
  end

  errors = request.validate_payload(CONTEXT_FOR[:payload])
  return unless errors.any?

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