Sha256: 127cd94dd8e5abe694f0fbb310f8c19a6411418564a5af65c9ec5d24afb31e6c

Contents?: true

Size: 903 Bytes

Versions: 8

Compression:

Stored size: 903 Bytes

Contents

module Praxis
  module RequestStages

    class ValidateParamsAndHeaders < RequestStage
      attr_reader :parent

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


      def 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

8 entries across 8 versions & 1 rubygems

Version Path
praxis-0.13.0 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.11.2 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.11.1 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.11 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.11pre lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.10.1 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.10.0 lib/praxis/request_stages/validate_params_and_headers.rb
praxis-0.9 lib/praxis/request_stages/validate_params_and_headers.rb