Class: RequestBody

Inherits:
Nokogiri::XML::Builder
  • Object
show all
Defined in:
lib/kampainer/request_body.rb

Instance Method Summary collapse

Constructor Details

#initialize(action_name, username, password, request) ⇒ RequestBody

Returns a new instance of RequestBody.



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/kampainer/request_body.rb', line 2

def initialize(action_name, username, password, request)
  super()
  __send__('soap12:Envelope', {'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
                                         'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
                                         'xmlns:soap12' => 'http://www.w3.org/2003/05/soap-envelope'}) do |root|
    root.__send__('soap12:Body') do |body|
      body.__send__(action_name, xmlns: 'https://ws.campaigner.com/2013/01') do |doc|
        doc.authentication do
          doc.Username(username)
          doc.Password(password)
        end
        request.each do |node|
          if node.is_a?(Hash)
            node.each { |key, val| body.send(key, val) }
          else
            body.parent << node
          end
        end
      end
    end
  end
end