Class: AWS::Core::RESTClient::InputHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/aws/core/rest_client/input_handler.rb

Overview

Given a hash of request options, a REST::RequestHandler can populate a Core::Http::Request object.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#httpHash (readonly)

Returns A hash of http rules.

Returns:

  • (Hash)

    A hash of http rules.



44
45
46
# File 'lib/aws/core/rest_client/input_handler.rb', line 44

def http
  @http
end

#namespaceString (readonly)

Returns:

  • (String)


38
39
40
# File 'lib/aws/core/rest_client/input_handler.rb', line 38

def namespace
  @namespace
end

#operation_nameString (readonly)

Returns:

  • (String)


41
42
43
# File 'lib/aws/core/rest_client/input_handler.rb', line 41

def operation_name
  @operation_name
end

#rulesHash (readonly)

Returns A hash of rules for where to place request options in the HTTP request (e.g. uri, querystring, header, body, etc). Also contains type information for each request option.

Returns:

  • (Hash)

    A hash of rules for where to place request options in the HTTP request (e.g. uri, querystring, header, body, etc). Also contains type information for each request option.



49
50
51
# File 'lib/aws/core/rest_client/input_handler.rb', line 49

def rules
  @rules
end

Instance Method Details

#populate_request(request, request_options) ⇒ Http::Request

Populates an http request object with params in the uri, headers, and body.

Parameters:

  • request (Http::Request)
  • request_options (Hash)

    A hash of options to send with the request.

Returns:

Raises:

  • (ArgumentError)

    Raises ArgumentError when any of the request options are invalid (wrong type, missing, unknown, etc).



59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/aws/core/rest_client/input_handler.rb', line 59

def populate_request request, request_options

  params = Options::Validator.new(rules).validate!(request_options)

  request.http_method = http[:verb]
  request.uri = extract_uri(params)
  extract_headers(params).each_pair do |header_name, header_value|
    request.headers[header_name] = header_value
  end
  request.body = build_body(params)
  request

end