class Mailigen::Api
Attributes
api_key[RW]
secure[RW]
Public Class Methods
new(api_key = nil, secure = false)
click to toggle source
Initialize API wrapper.
@param api_key
- from mailigen.com . Required. @param secure - use SSL. By default FALSE
# 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
Public Instance Methods
api_url()
click to toggle source
@return default api url with version included
# 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 = {})
click to toggle source
Call Mailigen
api method (Documented in dev.mailigen.com/display/AD/Mailigen+API )
@param method - method name @param params - params if required for API
@return JSON, String data if all goes well. Exception if somethnigs goes wrong.
# 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
Private Instance Methods
post_api(url, params)
click to toggle source
All api calls throught POST method.
@param url - url to post @param params - params in hash
@return response body
# File lib/mailigen/api.rb, line 62 def post_api url, params uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = self.secure form_params = params.to_query res = http.post(uri.request_uri, form_params) res.body end