Class: CleverElements::Client

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

Constant Summary collapse

API_VERSION =
"1.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_id, api_key, mode = 'test') ⇒ Client

Returns a new instance of Client.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/cleverelements/client.rb', line 10

def initialize(api_id, api_key, mode = 'test')
  # cli = CleverElements::Client.new('195753', 'ua4zhTpLPaZ9wfpD', 'live')
  # cli.lists.all
  # cli.subscribers.find_by_email('[email protected]')
  # cli.request(:api_get_list)
  # cli.request(:api_get_list_details, {listID: 335333})
  # sub_proxy = CleverElements::Subscribers.new(cli)
  # sub_proxy.find_by_email('[email protected]')

  @savon = Savon.client do
    wsdl 'http://api.sendcockpit.com/server.php?wsdl'
    convert_request_keys_to :none
    soap_header({
      validate: {
        userid: api_id,
        apikey: api_key,
        version: API_VERSION,
        mode: mode,
      }
    })
  end
  define_methods
end

Instance Attribute Details

#savonObject (readonly)

Returns the value of attribute savon.



8
9
10
# File 'lib/cleverelements/client.rb', line 8

def savon
  @savon
end

Instance Method Details

#build(operation, data = {}) ⇒ Object



38
39
40
# File 'lib/cleverelements/client.rb', line 38

def build(operation, data = {})
  @savon.operation(operation).build(build_data(operation, data)).to_s
end

#define_methodsObject



42
43
44
45
46
47
48
# File 'lib/cleverelements/client.rb', line 42

def define_methods
  @savon.operations.each do |method|
    self.class.send(:define_method, method) do |args = {}|
      request(method, args)
    end
  end
end

#listsObject



54
55
56
# File 'lib/cleverelements/client.rb', line 54

def lists
  CleverElements::Lists.new(self)
end

#request(operation, data = {}) ⇒ Object



34
35
36
# File 'lib/cleverelements/client.rb', line 34

def request(operation, data = {})
  @savon.call(operation, build_data(operation, data))
end

#subscribersObject



50
51
52
# File 'lib/cleverelements/client.rb', line 50

def subscribers
  CleverElements::Subscribers.new(self)
end