Sha256: a4b4af66c1b4c3bd8ea844a0574b117650615fecbe037e816874516b0a00dea6

Contents?: true

Size: 882 Bytes

Versions: 13

Compression:

Stored size: 882 Bytes

Contents

module Aws
  module Json
    class RpcBodyHandler < Seahorse::Client::Handler

      # @param [Seahorse::Client::RequestContext] context
      # @return [Seahorse::Client::Response]
      def call(context)
        build_json(context)
        @handler.call(context).on_success do |response|
          response.error = nil
          response.data = parse_json(context)
        end
      end

      private

      def build_json(context)
        if shape = context.operation.input
          context.http_request.body = Builder.new.to_json(shape, context.params)
        end
      end

      def parse_json(context)
        if output_shape = context.operation.output
          json = context.http_response.body_contents
          json = '{}' if json == ''
          Parser.new.parse(output_shape, json)
        else
          EmptyStructure.new
        end
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
aws-sdk-core-2.0.6 lib/aws-sdk-core/json/rpc_body_handler.rb
aws-sdk-core-2.0.5 lib/aws-sdk-core/json/rpc_body_handler.rb
aws-sdk-core-2.0.4 lib/aws-sdk-core/json/rpc_body_handler.rb
aws-sdk-core-2.0.3 lib/aws-sdk-core/json/rpc_body_handler.rb
aws-sdk-core-2.0.2 lib/aws-sdk-core/json/rpc_body_handler.rb
aws-sdk-core-2.0.1 lib/aws-sdk-core/json/rpc_body_handler.rb
aws-sdk-core-2.0.0 lib/aws-sdk-core/json/rpc_body_handler.rb
aws-sdk-core-2.0.0.rc16 lib/aws/json/rpc_body_handler.rb
aws-sdk-core-2.0.0.rc15 lib/aws/json/rpc_body_handler.rb
aws-sdk-core-2.0.0.rc14 lib/aws/json/rpc_body_handler.rb
aws-sdk-core-2.0.0.rc13 lib/aws/json/rpc_body_handler.rb
aws-sdk-core-2.0.0.rc12 lib/aws/json/rpc_body_handler.rb
aws-sdk-core-2.0.0.rc11 lib/aws/json/rpc_body_handler.rb