Sha256: 49d0d0eab5390d452eda90faf0014e1b674ef4ba30efb63766704fb1e5bb5fca

Contents?: true

Size: 1.01 KB

Versions: 23

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

module Praxis
  module RequestStages
    class ValidatePayload < RequestStage
      attr_reader :parent

      def initialize(name, context, parent:)
        super
        @parent = parent
      end

      def path
        @path ||= (@parent.path + [name])
      end

      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
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
praxis-2.0.0 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.40 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.39 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.38 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.37 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.36 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.35 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.34 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.33 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.32 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.31 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.30 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.29 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.28 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.27 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.26 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.25 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.24 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.23 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.22 lib/praxis/request_stages/validate_payload.rb