Class: AffiliateWindow::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/affiliate_window/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(account_id:, affiliate_api_password:) ⇒ Client

Returns a new instance of Client.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/affiliate_window/client.rb', line 3

def initialize(account_id:, affiliate_api_password:)
  self.savon_client = Savon.client(
    wsdl: "http://api.affiliatewindow.com/v6/AffiliateService?wsdl",
    namespace: "http://api.affiliatewindow.com/",
    soap_header: {
      "api:UserAuthentication" => {
        "api:iId" => .to_s,
        "api:sPassword" => affiliate_api_password,
        "api:sType" => "affiliate",
      },
      "api:getQuota" => true,
    },
  )
end

Instance Method Details

#call(method, params, debug = false) ⇒ Object



18
19
20
21
22
23
# File 'lib/affiliate_window/client.rb', line 18

def call(method, params, debug = false)
  params = convert_to_soap_arrays(params)

  print_request(method, params) if debug
  savon_client.call(method, message: params)
end


25
26
27
28
29
30
31
# File 'lib/affiliate_window/client.rb', line 25

def print_request(method, params)
  request = savon_client.build_request(method, message: params)
  document = REXML::Document.new(request.body)

  formatter = REXML::Formatters::Pretty.new
  formatter.write(document, $stdout)
end