class Salesfly::MailAPI

Constants

SCHEMA

Public Class Methods

new(rest_client) click to toggle source
# File lib/salesfly/mail_api.rb, line 106
def initialize(rest_client)
  @rest_client = rest_client
end

Public Instance Methods

send(message) click to toggle source
# File lib/salesfly/mail_api.rb, line 110
def send(message)
  # Validate message
  begin
    JSON::Validator.validate!(SCHEMA, message, :strict => false)
  rescue JSON::Schema::ValidationError => e
    raise ArgumentError.new("Message has missing or invalid attributes")
  end
  # Extract files
  files = []
  if message.key?("attachments")
    files = message["attachments"]
    message = message.reject { |k,v| k == "attachments" }
  end
  multipart = Multipart.new
  content, headers = multipart.encode(message, files)
  return @rest_client.post("/v1/mail/send", content, headers)
end