Class: AdsCommon::SavonHeaders::BaseHeaderHandler
- Inherits:
-
Object
- Object
- AdsCommon::SavonHeaders::BaseHeaderHandler
- Defined in:
- lib/ads_common/savon_headers/base_header_handler.rb
Direct Known Subclasses
Constant Summary collapse
- DEFAULT_NAMESPACE =
Default namespace alias.
'wsdl'
- DEFAULT_ELEMENT_NAME =
'RequestHeader'
Instance Method Summary collapse
-
#initialize(credential_handler, auth_handler, header_ns, namespace, version) ⇒ BaseHeaderHandler
constructor
Initializes a header handler.
-
#prepare_request(request, soap) ⇒ Object
Enriches soap object with API-specific headers like namespaces, login credentials etc.
Constructor Details
#initialize(credential_handler, auth_handler, header_ns, namespace, version) ⇒ BaseHeaderHandler
Initializes a header handler.
Args:
- credential_handler: a header with credential data
- auth_handler: a header with auth data
- header_ns: namespace to use for headers
- namespace: default namespace to use
- version: services version
41 42 43 44 45 46 47 48 |
# File 'lib/ads_common/savon_headers/base_header_handler.rb', line 41 def initialize(credential_handler, auth_handler, header_ns, namespace, version) @credential_handler = credential_handler @auth_handler = auth_handler @header_ns = header_ns @namespace = namespace @version = version end |
Instance Method Details
#prepare_request(request, soap) ⇒ 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
Returns:
- Modified request and soap structures
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/ads_common/savon_headers/base_header_handler.rb', line 62 def prepare_request(request, soap) soap.namespace = @namespace # Sets the default namespace for the body. soap.input[2] = {:xmlns => @namespace} # Sets User-Agent in the HTTP header. request.headers['User-Agent'] = @credential_handler.generate_user_agent() # Set headers namespace. header_name = prepend_namespace(get_header_element_name()) soap.header[:attributes!] ||= {} soap.header[:attributes!][header_name] ||= {} soap.header[:attributes!][header_name]['xmlns'] = @header_ns # Generate headers. generate_headers(request, soap) end |