module EventbriteSDK

Constants

BASE
ERROR_ALREADY_DELETED

The resource is already deleted

ERROR_ARGUMENTS

One of the provided arguments is invalid

ERROR_BAD_PAGE

Paginated query had an invalid page, usually out of range

ERROR_BAD_TOKEN

Token was provided, but invalid

ERROR_NOT_FOUND

The requested endpoint or resource does not exist

ERROR_NOT_PERMITTED_BY_PACKAGE

The package associated to the account does not allow the requested action

ERROR_PACKAGE_NOT_SET

No package is associated to the account

ERROR_TOKEN_REQUIRED

No token was provided for an endpoint that requires authentication

EXCEPTION_MAP
THREAD_EB_API_TOKEN_KEY
VERIFY_SSL
VERSION

Major should always line up with the major point release of the public API v3 => 3.x.x

Public Class Methods

base_url() click to toggle source
# File lib/eventbrite_sdk.rb, line 75
def self.base_url
  @base_url || BASE
end
base_url=(url) click to toggle source
# File lib/eventbrite_sdk.rb, line 79
def self.base_url=(url)
  @base_url = url
end
delete(params) click to toggle source
# File lib/eventbrite_sdk.rb, line 115
def self.delete(params)
  params[:headers] = { 'Accept' => 'application/json' }
  params[:method] = :delete

  request(params)
end
format_request(params) click to toggle source
# File lib/eventbrite_sdk.rb, line 135
def self.format_request(params)
  query = params.delete(:query)
  request_token = params.delete(:api_token)

  auth = request_token || token

  params[:headers]['Authorization'] = "Bearer #{auth}" if auth
  params[:headers][:params] = query if query

  params
end
get(params) click to toggle source
# File lib/eventbrite_sdk.rb, line 95
def self.get(params)
  params[:headers] = { 'Accept' => 'application/json' }
  params[:method] = :get

  request(params)
end
post(params) click to toggle source
# File lib/eventbrite_sdk.rb, line 102
def self.post(params)
  params[:headers] = { 'Content-Type' => 'application/json' }
  params[:method] = :post

  # Don't convert nil to json.
  #
  # BadRequest is raised when you publish an event because the body sent is
  # "null" (invalid json) and the API rejects it.
  params[:payload] = params[:payload].to_json if params[:payload]

  request(params)
end
request(params) click to toggle source
# File lib/eventbrite_sdk.rb, line 122
def self.request(params)
  req = format_request(params)
  req[:url] = url(params[:url].gsub(%r{\/$}, ''))
  req[:verify_ssl] = verify_ssl?

  response = RestClient::Request.execute(req)

  JSON.parse(response.body) unless response.body == ''
rescue *EXCEPTION_MAP.keys => err
  handler = EXCEPTION_MAP[err.class]
  raise handler[:class].new(handler[:message], err.response)
end
token() click to toggle source
# File lib/eventbrite_sdk.rb, line 67
def self.token
  Thread.current[THREAD_EB_API_TOKEN_KEY]
end
token=(api_token) click to toggle source
# File lib/eventbrite_sdk.rb, line 71
def self.token=(api_token)
  Thread.current[THREAD_EB_API_TOKEN_KEY] = api_token
end
url(path) click to toggle source
# File lib/eventbrite_sdk.rb, line 147
def self.url(path)
  "#{base_url}/#{path}/"
end
verify_ssl=(verifies) click to toggle source
# File lib/eventbrite_sdk.rb, line 91
def self.verify_ssl=(verifies)
  @verify_ssl = verifies
end
verify_ssl?() click to toggle source
# File lib/eventbrite_sdk.rb, line 83
def self.verify_ssl?
  if @verify_ssl.nil?
    VERIFY_SSL
  else
    @verify_ssl
  end
end