Sha256: b0dbd1db0c08f53ea15d5caa768416ca64a8282272f4c0cd37e8b9589c4eacf6

Contents?: true

Size: 862 Bytes

Versions: 4

Compression:

Stored size: 862 Bytes

Contents

module Aws
  # @api private
  class RequestHandler

    def initialize(serializer)
      @serializer = serializer
    end

    attr_accessor :handler

    def call(context)
      setup_request(context)
      serialize_params(context) if serialize_params?(context)
      @handler.call(context)
    end

    def setup_request(context)
      @serializer.setup_request(context)
    end

    def serialize_params(context)
      input = context.operation.input
      if input.payload
        rules = input.payload_member
        params = context.params[input.payload] || {}
      else
        rules = input
        params = context.params
      end
      @serializer.serialize_params(context, rules, params)
    end

    def serialize_params?(context)
      rules = context.operation.input
      !(rules.raw_payload? || rules.payload_member.empty?)
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
aws-sdk-core-2.0.0.rc4 lib/aws/request_handler.rb
aws-sdk-core-2.0.0.rc3 lib/aws/request_handler.rb
aws-sdk-core-2.0.0.rc2 lib/aws/request_handler.rb
aws-sdk-core-2.0.0.rc1 lib/aws/request_handler.rb