class AdsCommon::SavonHeaders::BaseHeaderHandler
Constants
- DEFAULT_ELEMENT_NAME
- DEFAULT_NAMESPACE
Default namespace alias.
Public Class Methods
new(credential_handler, auth_handler, header_ns, namespace, version)
click to toggle source
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
# File lib/ads_common/savon_headers/base_header_handler.rb, line 39 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
Public Instance Methods
identifier()
click to toggle source
Returns the account/network identifier based on the current context.
# File lib/ads_common/savon_headers/base_header_handler.rb, line 77 def identifier() return @credential_handler.identifier() end
prepare_request(request, soap)
click to toggle source
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
# File lib/ads_common/savon_headers/base_header_handler.rb, line 60 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
Private Instance Methods
generate_headers(request, soap)
click to toggle source
Generates SOAP headers with the default request header element.
# File lib/ads_common/savon_headers/base_header_handler.rb, line 101 def generate_headers(request, soap) element_name = get_header_element_name() soap.header[prepend_namespace(element_name)] = generate_request_header() end
generate_request_header()
click to toggle source
Generates SOAP default request header with all requested headers.
# File lib/ads_common/savon_headers/base_header_handler.rb, line 107 def generate_request_header() return @credential_handler.credentials[:extra_headers] end
get_header_element_name()
click to toggle source
Returns element name for SOAP header.
# File lib/ads_common/savon_headers/base_header_handler.rb, line 84 def get_header_element_name() return DEFAULT_ELEMENT_NAME end
prepend_namespace(str)
click to toggle source
Adds namespace to the given string.
Args:
- str: String to prepend with a namespace
Returns:
- String with a namespace
# File lib/ads_common/savon_headers/base_header_handler.rb, line 96 def prepend_namespace(str) return "%s:%s" % [DEFAULT_NAMESPACE, str] end