class Mailgems::Mail

Attributes

api_key[RW]
api_version[RW]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/mailgems/mail.rb, line 13
def initialize(opts = {})
  @api_key = opts[:api_key]
  @api_version = opts[:api_version] || 'v1'

  raise InvalidOption, "Api Key is required" if opts[:api_key].nil?
end

Public Instance Methods

send_mail(params) click to toggle source
# File lib/mailgems/mail.rb, line 20
def send_mail(params)
  response = self.class.post("/#{api_version}/emails",
                             body: params.to_json, headers: headers)

  response_code = response.code
  response_hash = response.parsed_response

  raise_exception(response_code, response_hash) unless response_code == 200

  response_hash
end

Private Instance Methods

headers() click to toggle source
# File lib/mailgems/mail.rb, line 34
def headers
  {
    'Content-Type': 'application/json',
    'X-Api-Key': api_key
  }
end
raise_exception(code, hash) click to toggle source
# File lib/mailgems/mail.rb, line 41
def raise_exception(code, hash)
  raise Mailgems::ApiError.new(code, hash['message'])
end