Class: ZuoraClient
- Inherits:
-
Object
- Object
- ZuoraClient
- Defined in:
- lib/zuora_client.rb
Constant Summary collapse
- PROD_URL =
'https://www.zuora.com/apps/services/a/21.0'
- SANDBOX_URL =
'https://apisandbox.zuora.com/apps/services/a/23.0'
Instance Method Summary collapse
-
#initialize(username, password, url = PROD_URL, verbose = false) ⇒ ZuoraClient
constructor
A new instance of ZuoraClient.
- #query(query_string) ⇒ Object
Constructor Details
#initialize(username, password, url = PROD_URL, verbose = false) ⇒ ZuoraClient
Returns a new instance of ZuoraClient.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/zuora_client.rb', line 23 def initialize(username, password, url=PROD_URL, verbose=false) @username = username @password = password Savon::Request.log = verbose login_client = Savon::Client.new url login_client.request.http.ssl_client_auth :verify_mode => OpenSSL::SSL::VERIFY_NONE response = login_client.login! do |soap| soap.namespace = 'http://api.zuora.com/' soap.body = { 'wsdl:username' => username, 'wsdl:password' => password } end.to_hash @session = response[:login_response][:result][:session] # apparently, the server url might change from the one called above - need to use the one returned @client = Savon::Client.new response[:login_response][:result][:server_url] @client.request.http.ssl_client_auth :verify_mode => OpenSSL::SSL::VERIFY_NONE end |
Instance Method Details
#query(query_string) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/zuora_client.rb', line 45 def query(query_string) begin response = @client.query! do |soap| soap.namespace = 'http://api.zuora.com/' soap.header['wsdl:SessionHeader'] = {'wsdl:session' => @session} soap.body = {'wsdl:queryString' => query_string} end.to_hash rescue Savon::SOAPFault => e puts e. exit 1 end result = [] records = response[:query_response][:result][:records] if records ignore_fields = [:type, :ns2, :xsi] records = [records] unless records.is_a?(Array) records.each do |record| result << record.reject { |k, v| ignore_fields.include?(k) } end end result end |