class NetSuite::Utilities::DataCenter

Public Class Methods

clear_cache!() click to toggle source
# File lib/netsuite/utilities/data_center.rb, line 6
def clear_cache!
  @cache = {}
end
get(netsuite_account, opts = {}) click to toggle source
# File lib/netsuite/utilities/data_center.rb, line 10
def get(netsuite_account, opts = {})
  if opts[:cache] && wsdl=fetch_from_cache(netsuite_account)
    return wsdl
  end

  response = make_data_center_call(netsuite_account)
  if response.success?
    wsdl = extract_wsdl_from_response(response)
    cache[netsuite_account.to_s] = wsdl if opts[:cache]
    return wsdl
  else
    return nil
  end
end

Private Class Methods

cache() click to toggle source
# File lib/netsuite/utilities/data_center.rb, line 27
def cache
  @cache ||= {}
end
extract_wsdl_from_response(response) click to toggle source
# File lib/netsuite/utilities/data_center.rb, line 46
def extract_wsdl_from_response(response)
  response.body
    .fetch(:get_data_center_urls_response)
    .fetch(:get_data_center_urls_result)
    .fetch(:data_center_urls)
    .fetch(:webservices_domain)
end
fetch_from_cache(netsuite_account) click to toggle source
# File lib/netsuite/utilities/data_center.rb, line 42
def fetch_from_cache(netsuite_account)
  return cache.fetch(netsuite_account.to_s, nil)
end
make_data_center_call(netsuite_account) click to toggle source
# File lib/netsuite/utilities/data_center.rb, line 31
def make_data_center_call(netsuite_account)
  NetSuite::Configuration.connection({}, {
    email: '',
    password: '',
    account: ''
  }).call(:get_data_center_urls, message: {
    'platformMsgs:account' => netsuite_account
  })
  # allow errors to bubble up, log if patterns emerge
end