Module: EventbriteSDK

Defined in:
lib/eventbrite_sdk.rb,
lib/eventbrite_sdk/user.rb,
lib/eventbrite_sdk/event.rb,
lib/eventbrite_sdk/media.rb,
lib/eventbrite_sdk/order.rb,
lib/eventbrite_sdk/venue.rb,
lib/eventbrite_sdk/report.rb,
lib/eventbrite_sdk/version.rb,
lib/eventbrite_sdk/webhook.rb,
lib/eventbrite_sdk/attendee.rb,
lib/eventbrite_sdk/category.rb,
lib/eventbrite_sdk/discount.rb,
lib/eventbrite_sdk/resource.rb,
lib/eventbrite_sdk/organizer.rb,
lib/eventbrite_sdk/exceptions.rb,
lib/eventbrite_sdk/error_types.rb,
lib/eventbrite_sdk/subcategory.rb,
lib/eventbrite_sdk/organization.rb,
lib/eventbrite_sdk/ticket_class.rb,
lib/eventbrite_sdk/ticket_group.rb,
lib/eventbrite_sdk/resource_list.rb,
lib/eventbrite_sdk/resource/field.rb,
lib/eventbrite_sdk/blank_resource_list.rb,
lib/eventbrite_sdk/resource/attributes.rb,
lib/eventbrite_sdk/resource/operations/list.rb,
lib/eventbrite_sdk/resource/field_comparable.rb,
lib/eventbrite_sdk/resource/schema_definition.rb,
lib/eventbrite_sdk/resource/operations/endpoint.rb,
lib/eventbrite_sdk/lists/owned_event_orders_list.rb,
lib/eventbrite_sdk/resource/null_schema_definition.rb,
lib/eventbrite_sdk/resource/operations/relationships.rb,
lib/eventbrite_sdk/resource/operations/attribute_schema.rb

Defined Under Namespace

Modules: Lists Classes: Attendee, BadRequest, BlankResourceList, Category, Discount, Event, EventbriteAPIError, Forbidden, InternalServerError, InvalidAttribute, Media, Order, OrgDiscount, OrgEvent, OrgVenue, Organization, Organizer, Report, Resource, ResourceList, ResourceNotFound, Subcategory, TicketClass, TicketGroup, Unauthorized, User, Venue, Webhook

Constant Summary collapse

BASE =
"https://www.eventbriteapi.com/v#{VERSION.split('.').first}".freeze
EXCEPTION_MAP =
{
  RestClient::ResourceNotFound => {
    class: ResourceNotFound,
    message: 'requested object was not found'
  },
  RestClient::BadRequest => {
    class: BadRequest,
    message: 'invalid request'
  },
  RestClient::Forbidden => {
    class: Forbidden,
    message: 'not authorized'
  },
  RestClient::InternalServerError => {
    class: InternalServerError,
    message: 'internal server error'
  },
  RestClient::Unauthorized => {
    class: Unauthorized,
    message: 'unauthorized request'
  }
}.freeze
THREAD_EB_API_TOKEN_KEY =
:eb_api_token
VERIFY_SSL =
true
VERSION =

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

'3.6.0'.freeze
ERROR_ALREADY_DELETED =

The resource is already deleted

'ALREADY_DELETED'.freeze
ERROR_BAD_PAGE =

Paginated query had an invalid page, usually out of range

'BAD_PAGE'.freeze
ERROR_BAD_TOKEN =

Token was provided, but invalid

'INVALID_AUTH'.freeze
ERROR_NOT_FOUND =

The requested endpoint or resource does not exist

'NOT_FOUND'.freeze
ERROR_TOKEN_REQUIRED =

No token was provided for an endpoint that requires authentication

'NO_AUTH'.freeze
ERROR_ARGUMENTS =

One of the provided arguments is invalid

'ARGUMENTS_ERROR'.freeze
ERROR_NOT_PERMITTED_BY_PACKAGE =

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

'INSUFFICIENT_PACKAGE'.freeze
ERROR_PACKAGE_NOT_SET =

No package is associated to the account

'NO_PACKAGE_SELECTED'.freeze

Class Method Summary collapse

Class Method Details

.base_urlObject



75
76
77
# File 'lib/eventbrite_sdk.rb', line 75

def self.base_url
  @base_url || BASE
end

.base_url=(url) ⇒ Object



79
80
81
# File 'lib/eventbrite_sdk.rb', line 79

def self.base_url=(url)
  @base_url = url
end

.delete(params) ⇒ Object



115
116
117
118
119
120
# 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) ⇒ Object



135
136
137
138
139
140
141
142
143
144
145
# 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) ⇒ Object



95
96
97
98
99
100
# File 'lib/eventbrite_sdk.rb', line 95

def self.get(params)
  params[:headers] = { 'Accept' => 'application/json' }
  params[:method] = :get

  request(params)
end

.post(params) ⇒ Object



102
103
104
105
106
107
108
109
110
111
112
113
# 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) ⇒ Object



122
123
124
125
126
127
128
129
130
131
132
133
# 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

.tokenObject



67
68
69
# File 'lib/eventbrite_sdk.rb', line 67

def self.token
  Thread.current[THREAD_EB_API_TOKEN_KEY]
end

.token=(api_token) ⇒ Object



71
72
73
# File 'lib/eventbrite_sdk.rb', line 71

def self.token=(api_token)
  Thread.current[THREAD_EB_API_TOKEN_KEY] = api_token
end

.url(path) ⇒ Object



147
148
149
# File 'lib/eventbrite_sdk.rb', line 147

def self.url(path)
  "#{base_url}/#{path}/"
end

.verify_ssl=(verifies) ⇒ Object



91
92
93
# File 'lib/eventbrite_sdk.rb', line 91

def self.verify_ssl=(verifies)
  @verify_ssl = verifies
end

.verify_ssl?Boolean

Returns:

  • (Boolean)


83
84
85
86
87
88
89
# File 'lib/eventbrite_sdk.rb', line 83

def self.verify_ssl?
  if @verify_ssl.nil?
    VERIFY_SSL
  else
    @verify_ssl
  end
end