Method: Praxis::RequestStages::ValidatePayload#execute

Defined in:
lib/praxis/request_stages/validate_payload.rb

#executeObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/praxis/request_stages/validate_payload.rb', line 17

def execute
  if request.action.payload
    begin
      request.load_payload(CONTEXT_FOR[:payload])
    rescue Attributor::AttributorException => e
      message = e.message
      message << ". For request Content-Type: '#{request.content_type}'"
      return Responses::ValidationError.new(exception: e, message: message)
    end
    Attributor::AttributeResolver.current.register("payload",request.payload)

    errors = request.validate_payload(CONTEXT_FOR[:payload])
    if errors.any?
      return Responses::ValidationError.new(errors: errors)
    end
  end
end