Class: AdsCommon::SavonHeaders::BaseHeaderHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/ads_common/savon_headers/base_header_handler.rb

Direct Known Subclasses

OAuthHeaderHandler, SimpleHeaderHandler

Constant Summary collapse

DEFAULT_NAMESPACE =

Default namespace alias.

'wsdl'

Instance Method Summary collapse

Constructor Details

#initialize(credential_handler, auth_handler, element_name, namespace, version) ⇒ BaseHeaderHandler

Initializes a header handler.

Args:

- credential_handler: a header with credential data
- auth_handler: a header with auth data
- element_name: an API-specific name of header element
- namespace: default namespace to use
- version: services version


39
40
41
42
43
44
45
46
47
48
# File 'lib/ads_common/savon_headers/base_header_handler.rb', line 39

def initialize(credential_handler, auth_handler, element_name,
               namespace, version)
  @credential_handler = credential_handler
  @auth_handler = auth_handler
  @element_name = element_name
  @namespace = namespace
  @version = version
  @config = credential_handler.get_config
  Savon.configure {|config| config.raise_errors = false}
end

Instance Method Details

#prepare_request(request, soap, args) ⇒ Object

Enriches soap object with API-specific headers like namespaces, login credentials etc.

Needs to be overriden.

Args:

- request: a HTTPI Request for extra configuration
- soap: a Savon soap object to fill fields in
- args: request parameters to adjust for namespaces

Returns:

- Modified request and soap structures


63
64
65
66
67
68
69
70
# File 'lib/ads_common/savon_headers/base_header_handler.rb', line 63

def prepare_request(request, soap, args)
  soap.namespace = @namespace
  soap.body = args if args
  # Sets the default namespace for the body.
  soap.input[2] = {:xmlns => @namespace}
  # Sets User-Agent in the HTTP header.
  request.headers['User-Agent'] = generate_user_agent_string()
end