class Mailosaur::MailosaurClient
Public Class Methods
new(api_key, base_url = 'https://mailosaur.com/')
click to toggle source
Creates initializes a new instance of the MailosaurClient
class. @param api_key [String] your Mailosaur
API key. @param base_url [String] the base URI of the service.
# File lib/mailosaur.rb, line 50 def initialize(api_key, base_url = 'https://mailosaur.com/') @api_key = api_key @base_url = base_url end
Public Instance Methods
analysis()
click to toggle source
@return [Analysis] analysis
# File lib/mailosaur.rb, line 56 def analysis @analysis ||= Analysis.new(connection, method(:handle_http_error)) end
files()
click to toggle source
@return [Files] files
# File lib/mailosaur.rb, line 61 def files @files ||= Files.new(connection, method(:handle_http_error)) end
messages()
click to toggle source
@return [Messages] messages
# File lib/mailosaur.rb, line 66 def messages @messages ||= Messages.new(connection, method(:handle_http_error)) end
servers()
click to toggle source
@return [Servers] servers
# File lib/mailosaur.rb, line 71 def servers @servers ||= Servers.new(connection, method(:handle_http_error)) end
usage()
click to toggle source
@return [Usage] usage
# File lib/mailosaur.rb, line 76 def usage @usage ||= Usage.new(connection, method(:handle_http_error)) end
Private Instance Methods
connection()
click to toggle source
# File lib/mailosaur.rb, line 82 def connection Faraday.new(@base_url, { headers: { content_type: 'application/json; charset=utf-8', user_agent: 'mailosaur-ruby/' + Mailosaur::VERSION } }).tap { |conn| conn.basic_auth(@api_key, '') } end
handle_http_error(response)
click to toggle source
# File lib/mailosaur.rb, line 91 def handle_http_error(response) case response.status when 400 raise Mailosaur::MailosaurError.new('Request had one or more invalid parameters.', 'invalid_request', response.status, response.body) when 401 raise Mailosaur::MailosaurError.new('Authentication failed, check your API key.', 'authentication_error', response.status, response.body) when 403 raise Mailosaur::MailosaurError.new('Insufficient permission to perform that task.', 'permission_error', response.status, response.body) when 404 raise Mailosaur::MailosaurError.new('Request did not find any matching resources.', 'invalid_request', response.status, response.body) else raise Mailosaur::MailosaurError.new('An API error occurred, see httpResponse for further information.', 'api_error', response.status, response.body) end end