Class: Mailigen::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/mailigen/api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key = nil, secure = false) ⇒ Api

Initialize API wrapper.

Parameters:

  • api_key (defaults to: nil)
    • from mailigen.com . Required.

  • secure (defaults to: false)
    • use SSL. By default FALSE

Raises:



17
18
19
20
21
# File 'lib/mailigen/api.rb', line 17

def initialize api_key = nil, secure = false
  self.api_key = api_key
  self.secure = secure
  raise NoApiKeyError, "You must have Mailigen API key." unless self.api_key
end

Instance Attribute Details

#api_keyObject

Returns the value of attribute api_key.



10
11
12
# File 'lib/mailigen/api.rb', line 10

def api_key
  @api_key
end

#secureObject

Returns the value of attribute secure.



10
11
12
# File 'lib/mailigen/api.rb', line 10

def secure
  @secure
end

Instance Method Details

#api_urlObject

Returns default api url with version included.

Returns:

  • default api url with version included



48
49
50
51
# File 'lib/mailigen/api.rb', line 48

def api_url
  protocol = self.secure ? "https" : "http"
  "#{protocol}://#{Mailigen::api_host}/#{Mailigen::api_version}/?output=json"
end

#call(method, params = {}) ⇒ Object

Call Mailigen api method (Documented in dev.mailigen.com/display/AD/Mailigen+API )

JSON, String data if all goes well. Exception if somethnigs goes wrong.

Parameters:

  • method
    • method name

  • params (defaults to: {})
    • params if required for API

Returns:



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/mailigen/api.rb', line 32

def call method, params = {}
  url = "#{api_url}&method=#{method}"
  
  params = {apikey: self.api_key}.merge params
  
  resp = post_api(url, params)
  begin
    return JSON.parse(resp)
  rescue
    return resp.tr('"','')
  end
end