class Sendgrid::API::REST::Resource

Constants

ENDPOINT

Attributes

key[R]
user[R]

Public Class Methods

new(user, key) click to toggle source
# File lib/sendgrid/api/rest/resource.rb, line 14
def initialize(user, key)
  @user = user
  @key = key
end

Public Instance Methods

post(url, params = {}) click to toggle source
# File lib/sendgrid/api/rest/resource.rb, line 19
def post(url, params = {})
  request(:post, url, params)
end

Private Instance Methods

authentication_params() click to toggle source
# File lib/sendgrid/api/rest/resource.rb, line 51
def authentication_params
  { :api_user => @user, :api_key => @key }
end
connection() click to toggle source
# File lib/sendgrid/api/rest/resource.rb, line 47
def connection
  @connection ||= Faraday.new(ENDPOINT, :builder => middleware)
end
middleware() click to toggle source
# File lib/sendgrid/api/rest/resource.rb, line 32
def middleware
  @middleware ||= Faraday::RackBuilder.new do |builder|
    # checks for files in the payload, otherwise leaves everything untouched
    builder.request :multipart
    # form-encode POST params
    builder.request :url_encoded
    # Parse response errors
    builder.use Response::ParseError
    # Parse JSON response bodies
    builder.use Response::ParseJson
    # Set Faraday's HTTP adapter
    builder.adapter Faraday.default_adapter
  end
end
request(method, url, params = {}) click to toggle source
# File lib/sendgrid/api/rest/resource.rb, line 25
def request(method, url, params = {})
  params = params.merge(authentication_params)
  connection.send(method, url, params)
rescue Faraday::Error::ClientError, JSON::ParserError
  raise Errors::Unknown
end