Sha256: 8bcfe1a8d15058d65c59a5bd58d579c93f7cb7ff204b302734337b5ebb8410e2

Contents?: true

Size: 1.39 KB

Versions: 199

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

module Aws
  module Rest
    module Request
      class Builder

        def apply(context)
          populate_http_method(context)
          populate_endpoint(context)
          populate_headers(context)
          populate_body(context)
        end

        private

        def populate_http_method(context)
          context.http_request.http_method = context.operation.http_method
        end

        def populate_endpoint(context)
          context.http_request.endpoint = Endpoint.new(
            context.operation.input,
            context.operation.http_request_uri,
          ).uri(context.http_request.endpoint, context.params)
        end

        def populate_headers(context)
          headers = Headers.new(context.operation.input)
          headers.apply(context.http_request, context.params)
        end

        def populate_body(context)
          Body.new(
            serializer_class(context),
            context.operation.input
          ).apply(context.http_request, context.params)
        end

        def serializer_class(context)
          protocol = context.config.api.metadata['protocol']
          case protocol
          when 'rest-xml' then Xml::Builder
          when 'rest-json' then Json::Builder
          when 'api-gateway' then Json::Builder
          else raise "unsupported protocol #{protocol}"
          end
        end

      end
    end
  end
end

Version data entries

199 entries across 199 versions & 1 rubygems

Version Path
aws-sdk-core-3.218.1 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.218.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.217.1 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.217.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.216.1 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.216.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.215.1 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.215.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.214.1 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.214.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.213.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.212.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.211.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.210.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.209.1 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.209.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.208.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.207.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.206.0 lib/aws-sdk-core/rest/request/builder.rb
aws-sdk-core-3.205.0 lib/aws-sdk-core/rest/request/builder.rb