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'
Instance Method Summary collapse
-
#initialize(credential_handler, auth_handler, element_name, namespace, version) ⇒ BaseHeaderHandler
constructor
Initializes a header handler.
-
#prepare_request(request, soap, args) ⇒ Object
Enriches soap object with API-specific headers like namespaces, login credentials etc.
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 |