class ActiveZuora::Connection
Constants
- WSDL
Attributes
custom_header[RW]
soap_client[R]
Public Class Methods
new(configuration={})
click to toggle source
# File lib/active_zuora/connection.rb, line 9 def initialize(configuration={}) # Store login credentials and create SOAP client. @username = configuration[:username] @password = configuration[:password] @soap_client = Savon::Client.new do wsdl.document = configuration[:wsdl] || WSDL http.proxy = configuration[:http_proxy] if configuration[:http_proxy] end end
Public Instance Methods
login()
click to toggle source
# File lib/active_zuora/connection.rb, line 19 def login # Returns a session_id upon success, raises an exception on failure. # Instance variables aren't available within the soap request block. body = { :username => @username, :password => @password } header = @custom_header @soap_client.request(:login) do soap.body = body soap.header = header end[:login_response][:result][:session] end
request(*args) { |soap| ... }
click to toggle source
# File lib/active_zuora/connection.rb, line 30 def request(*args, &block) # instance variables aren't available within the soap request block for some reason. header = { 'SessionHeader' => { 'session' => @session_id } } header.merge!(@custom_header) if @custom_header @soap_client.request(*args) do soap.header = header yield(soap) end rescue Savon::SOAP::Fault => exception # Catch invalid sessions, and re-issue the request. raise unless exception.message =~ /INVALID_SESSION/ @session_id = login request(*args, &block) end