Sha256: d3cf582207465eedd0264780601a2670b7650b89e9bf2801970ef7f1790850fe

Contents?: true

Size: 1.12 KB

Versions: 27

Compression:

Stored size: 1.12 KB

Contents

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

    end

  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
praxis-2.0.pre.17 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.16 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.15 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.14 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.13 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.12 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.11 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.10 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.9 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.8 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.7 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.6 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.5 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.4 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.3 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.2 lib/praxis/request_stages/validate_payload.rb
praxis-2.0.pre.1 lib/praxis/request_stages/validate_payload.rb
praxis-0.22.pre.2 lib/praxis/request_stages/validate_payload.rb
praxis-0.22.pre.1 lib/praxis/request_stages/validate_payload.rb
praxis-0.21 lib/praxis/request_stages/validate_payload.rb