Class: Praxis::RequestStages::ValidatePayload
- Inherits:
-
RequestStage
- Object
- Stage
- RequestStage
- Praxis::RequestStages::ValidatePayload
- Defined in:
- lib/praxis/request_stages/validate_payload.rb
Instance Attribute Summary collapse
-
#parent ⇒ Object
readonly
Returns the value of attribute parent.
Attributes inherited from Stage
#after_callbacks, #before_callbacks, #context, #name, #stages
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(name, context, parent:) ⇒ ValidatePayload
constructor
A new instance of ValidatePayload.
- #path ⇒ Object
Methods inherited from RequestStage
#action, #controller, #execute_controller_callbacks, #execute_with_around, #request, #run, #setup!, #validation_handler
Methods inherited from Stage
#after, #application, #before, #callback_args, #execute_callbacks, #run, #setup!, #setup_deferred_callbacks!
Constructor Details
#initialize(name, context, parent:) ⇒ ValidatePayload
Returns a new instance of ValidatePayload.
8 9 10 11 |
# File 'lib/praxis/request_stages/validate_payload.rb', line 8 def initialize(name, context, parent:) super @parent = parent end |
Instance Attribute Details
#parent ⇒ Object (readonly)
Returns the value of attribute parent.
6 7 8 |
# File 'lib/praxis/request_stages/validate_payload.rb', line 6 def parent @parent end |
Instance Method Details
#execute ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# 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 = "Error loading payload. Used Content-Type: '#{request.content_type}'" return validation_handler.handle!( exception: e, summary: , 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 ⇒ Object
13 14 15 |
# File 'lib/praxis/request_stages/validate_payload.rb', line 13 def path @path ||= (@parent.path + [name]) end |