rubybrite 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +55 -0
- data/lib/rubybrite.rb +28 -0
- data/lib/rubybrite/configuration.rb +9 -0
- data/lib/rubybrite/request.rb +36 -0
- data/lib/rubybrite/response.rb +9 -0
- data/rubybrite.gemspec +20 -0
- metadata +80 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 53370b83613b9deb6e6ec7b1dd977b3ccc04b54d
|
4
|
+
data.tar.gz: f8a359d7225ba0b3a76b8ad88723a786eff4d5b0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 22218a14e88bdef4b634dfc64a8cacbfa3f60b0d043ee1b177a92d59d73e8b671799d18b2199c446ab88d82acbd4c88062e5fcd932ef23326ced75dfb86d0177
|
7
|
+
data.tar.gz: be7508d946501b0cf2056fddc756f51328174f91e41e63635c29b8eb68043b82fd760909f0ca33d0bbf3d2ec6a8a452a3b675b01d3bdba9c297d6b535f32a5fa
|
data/README.md
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/rubybrite.svg)](http://badge.fury.io/rb/rubybrite)
|
2
|
+
|
3
|
+
This gem is for Eventbrite V3 API only.
|
4
|
+
|
5
|
+
# Get Started
|
6
|
+
|
7
|
+
gem install rubybrite
|
8
|
+
|
9
|
+
For Rails project:
|
10
|
+
|
11
|
+
add gem 'rubybrite' to your Gemfile.
|
12
|
+
|
13
|
+
## Quick examples
|
14
|
+
|
15
|
+
``@eb = EventbriteAPI.new("access_token")``
|
16
|
+
|
17
|
+
### For Event API call:
|
18
|
+
``@event = @eb.events(id: 123456)``
|
19
|
+
|
20
|
+
Get event details: ``@event.get``
|
21
|
+
|
22
|
+
Get event attendees: ``@event.attendees.get``
|
23
|
+
|
24
|
+
For a specific attendee: ``@event.attendees(id: 1234567).get``
|
25
|
+
|
26
|
+
Use options: ``@event.attendees(status: "attending").get``
|
27
|
+
|
28
|
+
Get event teams: ``@event.teams.get``
|
29
|
+
|
30
|
+
Get event team attendees: ``@event.teams(id: 123456).attendees.get``
|
31
|
+
|
32
|
+
### For User API call:
|
33
|
+
|
34
|
+
When using personal OAuth token:
|
35
|
+
``@user = @eb.users(id: "me")``
|
36
|
+
|
37
|
+
When using a third party OAuth token:
|
38
|
+
``@user = @eb.users(id: third_party_user_id)``
|
39
|
+
|
40
|
+
OAuth token needs to be updated before making an API call on behalf of a third party:
|
41
|
+
``EventbriteAPI::Configuration.access_token="third-party-user-oauth-token"``
|
42
|
+
|
43
|
+
Get user details: ``@user.get``
|
44
|
+
|
45
|
+
Get user owned events attendees: ``@user.owned_event_attendees.get``
|
46
|
+
|
47
|
+
### For Order API call:
|
48
|
+
|
49
|
+
``@order = @eb.orders(id: 123456)``
|
50
|
+
``@order.get``
|
51
|
+
|
52
|
+
This gem also provides ``.post`` request as well as the ``.get`` above, but the V3 API is still in preview status and doesn't seem to recognize the arguments in the documentation for POST request.
|
53
|
+
|
54
|
+
For more information about V3 API, please visit http://developer.eventbrite.com/docs/.
|
55
|
+
|
data/lib/rubybrite.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require "httparty"
|
2
|
+
require "json"
|
3
|
+
require "rubybrite/configuration"
|
4
|
+
require "rubybrite/response"
|
5
|
+
require "rubybrite/request"
|
6
|
+
|
7
|
+
class EventbriteAPI
|
8
|
+
attr_accessor :access_token
|
9
|
+
|
10
|
+
def initialize( auth_token )
|
11
|
+
@access_token = auth_token
|
12
|
+
end
|
13
|
+
|
14
|
+
def method_missing(method, *args)
|
15
|
+
params = args[0].is_a?(Hash) ? args[0] : {}
|
16
|
+
path = ""
|
17
|
+
if not params[:id]
|
18
|
+
path = "/#{method}/?token=#{@access_token}"
|
19
|
+
else
|
20
|
+
# raise MissingIdException.new("#{method.capitalize} id can not be empty.") unless params[:id]
|
21
|
+
path = "/#{method}/#{params.delete(:id)}?token=#{@access_token}"
|
22
|
+
end
|
23
|
+
Request.new(path, params)
|
24
|
+
end
|
25
|
+
|
26
|
+
class APIException < ::Exception; end
|
27
|
+
class MissingIdException < APIException; end
|
28
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class EventbriteAPI
|
2
|
+
class Request
|
3
|
+
include HTTParty
|
4
|
+
base_uri Configuration.end_point
|
5
|
+
|
6
|
+
attr_accessor :path, :query
|
7
|
+
|
8
|
+
def initialize(path = "", query = {})
|
9
|
+
@path = path
|
10
|
+
@query = query
|
11
|
+
end
|
12
|
+
|
13
|
+
def get
|
14
|
+
response = self.class.get(path, query: query).body
|
15
|
+
Response.new(response)
|
16
|
+
end
|
17
|
+
|
18
|
+
def post
|
19
|
+
response = self.class.post(path, query: query).body
|
20
|
+
Response.new(response)
|
21
|
+
end
|
22
|
+
|
23
|
+
def delete
|
24
|
+
response = self.class.delete(path, query: query).body
|
25
|
+
Response.new(response)
|
26
|
+
end
|
27
|
+
|
28
|
+
def method_missing(method, *args)
|
29
|
+
params = args[0].is_a?(Hash) ? args[0] : {}
|
30
|
+
route, token = path.split("?")
|
31
|
+
id = params.delete(:id)
|
32
|
+
route += "/#{method}/#{id}?#{token}"
|
33
|
+
Request.new(route, params)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/rubybrite.gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "rubybrite"
|
3
|
+
s.authors = ["John-Alan Simmons", "Xin Fan (Fred)"]
|
4
|
+
s.version = "0.0.4"
|
5
|
+
s.licenses = ['MIT']
|
6
|
+
s.email = ["simmons.johnalan@gmail.com", "fredxinfan@gmail.com"]
|
7
|
+
s.summary = "A simple API wrapper for Eventbrite V3."
|
8
|
+
s.homepage = "https://github.com/ConferenceCloud/rubybrite"
|
9
|
+
s.files = [
|
10
|
+
"README.md",
|
11
|
+
"rubybrite.gemspec",
|
12
|
+
"lib/rubybrite.rb",
|
13
|
+
"lib/rubybrite/configuration.rb",
|
14
|
+
"lib/rubybrite/request.rb",
|
15
|
+
"lib/rubybrite/response.rb"
|
16
|
+
]
|
17
|
+
|
18
|
+
s.add_dependency("httparty",["~> 0.13"])
|
19
|
+
s.add_dependency("json",["~> 1.8"])
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rubybrite
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- John-Alan Simmons
|
8
|
+
- Xin Fan (Fred)
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-01-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: httparty
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0.13'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0.13'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: json
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.8'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.8'
|
42
|
+
description:
|
43
|
+
email:
|
44
|
+
- simmons.johnalan@gmail.com
|
45
|
+
- fredxinfan@gmail.com
|
46
|
+
executables: []
|
47
|
+
extensions: []
|
48
|
+
extra_rdoc_files: []
|
49
|
+
files:
|
50
|
+
- README.md
|
51
|
+
- lib/rubybrite.rb
|
52
|
+
- lib/rubybrite/configuration.rb
|
53
|
+
- lib/rubybrite/request.rb
|
54
|
+
- lib/rubybrite/response.rb
|
55
|
+
- rubybrite.gemspec
|
56
|
+
homepage: https://github.com/ConferenceCloud/rubybrite
|
57
|
+
licenses:
|
58
|
+
- MIT
|
59
|
+
metadata: {}
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
requirements: []
|
75
|
+
rubyforge_project:
|
76
|
+
rubygems_version: 2.4.5
|
77
|
+
signing_key:
|
78
|
+
specification_version: 4
|
79
|
+
summary: A simple API wrapper for Eventbrite V3.
|
80
|
+
test_files: []
|