class Mailinator::Api

Public Instance Methods

get(url, params = {}) click to toggle source
# File lib/mailinator/api.rb, line 10
def get(url, params = {})
  response = request(url, params)
  handle_response(response)
end
token() click to toggle source
# File lib/mailinator/api.rb, line 15
def token
  Mailinator.config.token
end

Private Instance Methods

base_url() click to toggle source
# File lib/mailinator/api.rb, line 41
def base_url
  'https://api.mailinator.com/api'
end
generate_params(params) click to toggle source
# File lib/mailinator/api.rb, line 37
def generate_params(params)
  URI.encode_www_form(params.merge({token: token}))
end
generate_url(url) click to toggle source
# File lib/mailinator/api.rb, line 33
def generate_url(url)
  URI("#{base_url}/#{url}")
end
handle_response(response) click to toggle source
# File lib/mailinator/api.rb, line 45
def handle_response(response)
  case response.code.to_i
    when 200
      JSON.parse(response.body)
    when 404
      fail NotFound
    else
      fail RequestError, {status: response.message, code: response.code}
  end
end
perform_request(uri) click to toggle source
# File lib/mailinator/api.rb, line 27
def perform_request(uri)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = (uri.scheme == 'https')
  http.get(uri.request_uri)
end
request(url, params) click to toggle source
# File lib/mailinator/api.rb, line 21
def request(url, params)
  uri = generate_url(url)
  uri.query = generate_params(params)
  perform_request(uri)
end