Sha256: 03421d5296bdef430e5a88813f2db7074c6f7cd140e7d575072c9f446cd9be77

Contents?: true

Size: 918 Bytes

Versions: 4

Compression:

Stored size: 918 Bytes

Contents

module Praxis
  module RequestStages

    class ValidateParamsAndHeaders < RequestStage
      attr_reader :parent

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


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

      def execute
        request.load_headers(CONTEXT_FOR[:headers])
        request.load_params(CONTEXT_FOR[:params])

        attribute_resolver = Attributor::AttributeResolver.new
        Attributor::AttributeResolver.current = attribute_resolver

        attribute_resolver.register("headers",request.headers)
        attribute_resolver.register("params",request.params)

        errors = request.validate_headers(CONTEXT_FOR[:headers])
        errors += request.validate_params(CONTEXT_FOR[:params])

        if errors.any?
          return Responses::ValidationError.new(errors: errors)
        end
      end

    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
praxis-0.16.1 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.16.0 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.15.0 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.14.0 lib/praxis/request_stages/validate_params_and_headers.rb