Class: AdWords::V2009HeaderHandler

Inherits:
SOAP::Header::SimpleHandler
  • Object
show all
Defined in:
lib/adwords4r/credentials.rb

Overview

Handles the headers used in v2009 requests.

Instance Method Summary collapse

Constructor Details

#initialize(parent, namespace, version) ⇒ V2009HeaderHandler

Constructor for V2009HeaderHandler.

Args:

  • parent: AdWordsCredentials object containing the login credentials.



40
41
42
43
44
# File 'lib/adwords4r/credentials.rb', line 40

def initialize(parent, namespace, version)
  super(XSD::QName.new(namespace, 'RequestHeader'))
  @parent = parent
  @version = version
end

Instance Method Details

#on_simple_outboundObject

Handles callback.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/adwords4r/credentials.rb', line 47

def on_simple_outbound
  ns = HEADER_NAMESPACE
  ns += 'v' if @version.is_a? Integer
  ns += @version.to_s
  header = SOAP::SOAPElement.new(nil)
  auth_token = SOAP::SOAPElement.new(XSD::QName.new(ns, 'authToken'),
      @parent.auth_token)
  user_agent = SOAP::SOAPElement.new(XSD::QName.new(ns, 'userAgent'),
      @parent.credentials['userAgent'])
  dev_token = SOAP::SOAPElement.new(XSD::QName.new(ns, 'developerToken'),
      @parent.credentials['developerToken'])
  header.add(auth_token)
  header.add(user_agent)
  header.add(dev_token)

  if @parent.credentials['applicationToken']
    app_token = SOAP::SOAPElement.new(XSD::QName.new(ns,
        'applicationToken'), @parent.credentials['applicationToken'])
    header.add(app_token)
  end

  client_email_value = @parent.client_email
  client_cid_value = @parent.client_customer_id
  if client_email_value and client_email_value.length > 0
    client_email = SOAP::SOAPElement.new(XSD::QName.new(ns, 'clientEmail'),
        client_email_value)
    header.add(client_email)
  end
  if client_cid_value and client_cid_value.length > 0
    client_cid = SOAP::SOAPElement.new(
        XSD::QName.new(ns, 'clientCustomerId'), client_cid_value)
    header.add(client_cid)
  end
  if @parent.validate_only
    validate_only = SOAP::SOAPElement.new(
        XSD::QName.new(ns, 'validateOnly'), 'true')
    header.add(validate_only)
  end
  if @parent.partial_failure
    partial_failure = SOAP::SOAPElement.new(
        XSD::QName.new(ns, 'partialFailure'), 'true')
    header.add(partial_failure)
  end
  return header
end