class Customerio::APIClient

Public Class Methods

new(app_key, options = {}) click to toggle source
# File lib/customerio/api.rb, line 6
def initialize(app_key, options = {})
  options[:region] = Customerio::Regions::US if options[:region].nil?
  raise "region must be an instance of Customerio::Regions::Region" unless options[:region].is_a?(Customerio::Regions::Region)

  options[:url] = options[:region].api_url if options[:url].nil? || options[:url].empty?
  @client = Customerio::BaseClient.new({ app_key: app_key }, options)
end

Public Instance Methods

send_email(req) click to toggle source
# File lib/customerio/api.rb, line 14
def send_email(req)
  raise "request must be an instance of Customerio::SendEmailRequest" unless req.is_a?(Customerio::SendEmailRequest)
  response = @client.request(:post, send_email_path, req.message)

  case response
  when Net::HTTPSuccess then
    JSON.parse(response.body)
  when Net::HTTPBadRequest then
    json = JSON.parse(response.body)
    raise Customerio::InvalidResponse.new(response.code, json['meta']['error'], response)
  else
    raise InvalidResponse.new(response.code, response.body)
  end
end

Private Instance Methods

send_email_path() click to toggle source
# File lib/customerio/api.rb, line 31
def send_email_path
  "/v1/send/email"
end