eventbrite-api-v3 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.rspec +2 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +9 -0
  6. data/Gemfile +15 -0
  7. data/Gemfile.lock +96 -0
  8. data/LICENSE +22 -0
  9. data/README.md +187 -0
  10. data/Rakefile +51 -0
  11. data/VERSION +1 -0
  12. data/eventbrite-api-v3.gemspec +97 -0
  13. data/lib/eventbrite-api.rb +21 -0
  14. data/lib/eventbrite/api/client.rb +64 -0
  15. data/lib/eventbrite/api/helper.rb +27 -0
  16. data/lib/eventbrite/api/model/attendee.rb +11 -0
  17. data/lib/eventbrite/api/model/base.rb +84 -0
  18. data/lib/eventbrite/api/model/category.rb +11 -0
  19. data/lib/eventbrite/api/model/event.rb +23 -0
  20. data/lib/eventbrite/api/model/event_ticket_class.rb +11 -0
  21. data/lib/eventbrite/api/model/format.rb +11 -0
  22. data/lib/eventbrite/api/model/order.rb +11 -0
  23. data/lib/eventbrite/api/model/organizer.rb +11 -0
  24. data/lib/eventbrite/api/model/owned_event.rb +11 -0
  25. data/lib/eventbrite/api/model/owned_event_attendee.rb +11 -0
  26. data/lib/eventbrite/api/model/owned_event_order.rb +11 -0
  27. data/lib/eventbrite/api/model/user.rb +11 -0
  28. data/lib/eventbrite/api/model/user_contact.rb +11 -0
  29. data/lib/eventbrite/api/model/user_contact_list.rb +11 -0
  30. data/lib/eventbrite/api/model/user_order.rb +11 -0
  31. data/lib/eventbrite/api/model/user_organizer.rb +11 -0
  32. data/lib/eventbrite/api/model/user_venue.rb +11 -0
  33. data/lib/eventbrite/api/model/venue.rb +11 -0
  34. data/spec/eventbrite/api/client_spec.rb +46 -0
  35. data/spec/eventbrite/api/model/base_spec.rb +11 -0
  36. data/spec/eventbrite/api/model/event_spec.rb +50 -0
  37. data/spec/eventbrite/api/model/owned_event_attendee_spec.rb +32 -0
  38. data/spec/eventbrite/api/model/owned_event_order_spec.rb +19 -0
  39. data/spec/eventbrite/api/model/owned_event_spec.rb +19 -0
  40. data/spec/fixtures/events/13270934723/publish.json +129 -0
  41. data/spec/fixtures/events/13270934723/unpublish.json +129 -0
  42. data/spec/fixtures/events_page1.json +2405 -0
  43. data/spec/fixtures/events_page2.json +2096 -0
  44. data/spec/fixtures/events_page3.json +1996 -0
  45. data/spec/fixtures/owned_event_attendees/page1.json +3119 -0
  46. data/spec/fixtures/owned_event_attendees/page2.json +3074 -0
  47. data/spec/fixtures/owned_event_attendees/page3.json +2789 -0
  48. data/spec/fixtures/users/133925426255/owned_event_attendees.json +11 -0
  49. data/spec/fixtures/users/133925426255/owned_event_orders.json +327 -0
  50. data/spec/fixtures/users/133925426255/owned_events.json +181 -0
  51. data/spec/fixtures/users/me.json +13 -0
  52. data/spec/spec_helper.rb +98 -0
  53. metadata +139 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 41f131f5a2f38bf3fc0c0df803691c958315f8dd
4
+ data.tar.gz: 929bf21bf58f0756aa5b271f7c37462b24b0d241
5
+ SHA512:
6
+ metadata.gz: ae86d0d18298baa76332736e34a1b5be69e11375ac7e5c651e2e4f094a0f526f4b235b808c3eaee3891d0ef16f2aae1a98e2ef180e44b45f7a3d69751e3ca45c
7
+ data.tar.gz: 9c628f9daea212fd81c55fe8e410bdf302622c7360ef9d3a5ad6a8cd2f3e807a7ada1be0ba5a64ad4d79ec5abb30ba8a38c244a08a8eeea2323bb77d09e9bab8
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
@@ -0,0 +1 @@
1
+ ruby-2.3.3@eventbrite-api-v3
@@ -0,0 +1,9 @@
1
+ sudo: false
2
+
3
+ language: ruby
4
+
5
+ cache: bundler
6
+
7
+ rvm:
8
+ - 2.3.4
9
+ - 2.2.7
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'oauth2'
4
+ gem 'deep_merge', require: 'deep_merge/rails_compat'
5
+
6
+ group :development do
7
+ gem 'jeweler'
8
+ end
9
+
10
+ group :test do
11
+ gem 'rspec'
12
+ gem 'webmock'
13
+ gem 'timecop'
14
+ gem 'simplecov', require: false
15
+ end
@@ -0,0 +1,96 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ addressable (2.4.0)
5
+ builder (3.2.3)
6
+ crack (0.4.3)
7
+ safe_yaml (~> 1.0.0)
8
+ deep_merge (1.1.1)
9
+ descendants_tracker (0.0.4)
10
+ thread_safe (~> 0.3, >= 0.3.1)
11
+ diff-lcs (1.3)
12
+ docile (1.1.5)
13
+ faraday (0.9.2)
14
+ multipart-post (>= 1.2, < 3)
15
+ git (1.3.0)
16
+ github_api (0.16.0)
17
+ addressable (~> 2.4.0)
18
+ descendants_tracker (~> 0.0.4)
19
+ faraday (~> 0.8, < 0.10)
20
+ hashie (>= 3.4)
21
+ mime-types (>= 1.16, < 3.0)
22
+ oauth2 (~> 1.0)
23
+ hashdiff (0.3.5)
24
+ hashie (3.5.6)
25
+ highline (1.7.8)
26
+ jeweler (2.3.7)
27
+ builder
28
+ bundler (>= 1)
29
+ git (>= 1.2.5)
30
+ github_api (~> 0.16.0)
31
+ highline (>= 1.6.15)
32
+ nokogiri (>= 1.5.10)
33
+ psych (~> 2.2)
34
+ rake
35
+ rdoc
36
+ semver2
37
+ json (2.1.0)
38
+ jwt (1.5.6)
39
+ mime-types (2.99.3)
40
+ mini_portile2 (2.2.0)
41
+ multi_json (1.12.1)
42
+ multi_xml (0.6.0)
43
+ multipart-post (2.0.0)
44
+ nokogiri (1.8.0)
45
+ mini_portile2 (~> 2.2.0)
46
+ oauth2 (1.4.0)
47
+ faraday (>= 0.8, < 0.13)
48
+ jwt (~> 1.0)
49
+ multi_json (~> 1.3)
50
+ multi_xml (~> 0.5)
51
+ rack (>= 1.2, < 3)
52
+ psych (2.2.4)
53
+ rack (2.0.3)
54
+ rake (12.0.0)
55
+ rdoc (5.1.0)
56
+ rspec (3.6.0)
57
+ rspec-core (~> 3.6.0)
58
+ rspec-expectations (~> 3.6.0)
59
+ rspec-mocks (~> 3.6.0)
60
+ rspec-core (3.6.0)
61
+ rspec-support (~> 3.6.0)
62
+ rspec-expectations (3.6.0)
63
+ diff-lcs (>= 1.2.0, < 2.0)
64
+ rspec-support (~> 3.6.0)
65
+ rspec-mocks (3.6.0)
66
+ diff-lcs (>= 1.2.0, < 2.0)
67
+ rspec-support (~> 3.6.0)
68
+ rspec-support (3.6.0)
69
+ safe_yaml (1.0.4)
70
+ semver2 (3.4.2)
71
+ simplecov (0.14.1)
72
+ docile (~> 1.1.0)
73
+ json (>= 1.8, < 3)
74
+ simplecov-html (~> 0.10.0)
75
+ simplecov-html (0.10.1)
76
+ thread_safe (0.3.6)
77
+ timecop (0.9.1)
78
+ webmock (3.0.1)
79
+ addressable (>= 2.3.6)
80
+ crack (>= 0.3.2)
81
+ hashdiff
82
+
83
+ PLATFORMS
84
+ ruby
85
+
86
+ DEPENDENCIES
87
+ deep_merge
88
+ jeweler
89
+ oauth2
90
+ rspec
91
+ simplecov
92
+ timecop
93
+ webmock
94
+
95
+ BUNDLED WITH
96
+ 1.15.1
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Maestrano
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,187 @@
1
+ eventbrite-api
2
+ ===============
3
+
4
+ [![Build Status](https://secure.travis-ci.org/maestrano/eventbrite-api.png?branch=master)](http://travis-ci.org/maestrano/eventbrite-api)
5
+
6
+ ## Eventbrite API client
7
+
8
+ Integrate with ![Eventbrite API](http://developer.eventbrite.com/)
9
+
10
+ ## Installation
11
+
12
+ Add this line to your application's Gemfile:
13
+
14
+ `gem 'eventbrite-api'`
15
+
16
+ And then execute:
17
+
18
+ `bundle`
19
+
20
+ Or install it yourself as:
21
+
22
+ `gem install eventbrite-api`
23
+
24
+ ## Usage
25
+
26
+ ### OAuth Authentication
27
+
28
+ If you've already got an OAuth access token, feel free to skip to API Client Setup.
29
+
30
+ The Eventbrite API uses 3 legged OAuth2. You need to implement the following controller methods and store the `access_token` if needed.
31
+
32
+
33
+ ``` ruby
34
+ class EventbriteSessionController
35
+ def new
36
+ redirect_to eventbrite_client.get_access_code_url
37
+ end
38
+
39
+ def create
40
+ @token = eventbrite_client.get_access_token(params[:code])
41
+ end
42
+
43
+ def eventbrite_client
44
+ @api_client = Eventbrite::Api::Client.new({
45
+ consumer: {
46
+ key: YOUR_CONSUMER_KEY,
47
+ secret: YOUR_CONSUMER_SECRET,
48
+ },
49
+ redirect_uri: callback_create_url
50
+ })
51
+ end
52
+ end
53
+ ```
54
+
55
+ ### API Client Setup
56
+
57
+ #### Create an api_client
58
+
59
+ ``` ruby
60
+ api_client = Eventbrite::Api::Client.new({
61
+ consumer: {
62
+ key: YOUR_CONSUMER_KEY,
63
+ secret: YOUR_CONSUMER_SECRET,
64
+ },
65
+ access_token: YOUR_OAUTH_ACCESS_TOKEN
66
+ })
67
+ ```
68
+
69
+ ### API Methods
70
+
71
+ #### get
72
+
73
+ Retrieves the first page of specified collection
74
+
75
+ ```ruby
76
+ categories = api_client.category.get
77
+ ```
78
+
79
+ #### next_page / previous_page
80
+
81
+ Retrieves the next/previous page of specified collection. A call to `get` must have been performed first
82
+
83
+ ```ruby
84
+ categories = api_client.category.get
85
+ next_categories = api_client.category.next_page
86
+ previous_categories = api_client.category.previous_page
87
+ ```
88
+
89
+ #### find
90
+
91
+ Retrieves a single element by uid
92
+
93
+ ```ruby
94
+ event = api_client.event.find('123')
95
+ ```
96
+
97
+ #### create
98
+
99
+ Creates a resource
100
+
101
+ ```ruby
102
+ event = api_client.event.create({'name' => 'My Event', ...})
103
+ ```
104
+
105
+ #### update
106
+
107
+ Updates a resource
108
+
109
+ ```ruby
110
+ event = api_client.event.update('123', {'name' => 'My Event', ...})
111
+ ```
112
+
113
+ #### all
114
+
115
+ Fetches the entire collection of elements
116
+
117
+ ```ruby
118
+ categories = api_client.category.all_items
119
+ ```
120
+
121
+ ### API Resources
122
+
123
+ #### Events
124
+
125
+ Search events
126
+ ```ruby
127
+ events = api_client.event.search
128
+ more_events = api_client.event.next_page
129
+
130
+ filtered_events = api_client.event.search({params: {q: 'sandwich'}})
131
+ ```
132
+
133
+ Create event
134
+ ```ruby
135
+ event = api_client.event.create({'name' => 'My Event', ...})
136
+ ```
137
+
138
+ Publish/Unpublish events
139
+ ```ruby
140
+ response = api_client.event.publish('13270934723')
141
+ response = api_client.event.unpublish('13270934723')
142
+ ```
143
+
144
+ #### Event ticket class
145
+
146
+ Create an event ticket class for event '123'
147
+ ```ruby
148
+ event = api_client.event_ticket_class.create({'name' => 'My Ticket', ...}, {event_id: '123'})
149
+ ```
150
+
151
+ Update event ticket class '456' for event '123'
152
+ ```ruby
153
+ event = api_client.event_ticket_class.update('456', {'name' => 'My Ticket', ...}, {event_id: '123'})
154
+ ```
155
+
156
+ #### Owned Events
157
+
158
+ User owned events
159
+ ```ruby
160
+ events = api_client.owned_event.get({'user_id'=>'133925426255'})
161
+ ```
162
+
163
+ #### Owned Event Attendees
164
+
165
+ User owned event attendees
166
+ ```ruby
167
+ event_attendees = api_client.owned_event_attendee.get({'user_id'=>'133925426255'})
168
+ ```
169
+
170
+ #### Owned Event Orders
171
+
172
+ User owned event orders
173
+ ```ruby
174
+ event_orders = api_client.owned_event_order.get({'user_id'=>'133925426255'})
175
+ ```
176
+
177
+ #### Categories
178
+
179
+ ```ruby
180
+ categories = api_client.category.get
181
+ ```
182
+
183
+ #### Formats
184
+
185
+ ```ruby
186
+ formats = api_client.format.get
187
+ ```
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
17
+ gem.name = "eventbrite-api-v3"
18
+ gem.homepage = "https://github.com/bvsatyaram/eventbrite-api"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Integrate with Eventbrite API}
21
+ gem.description = %Q{Integrate with Eventbrite API}
22
+ gem.email = "bvsatyaram@gmail.com"
23
+ gem.authors = ["BV Satyaram", "BrunoChauvet"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rake/testtask'
29
+ Rake::TestTask.new(:test) do |test|
30
+ test.libs << 'lib' << 'test'
31
+ test.pattern = 'test/**/test_*.rb'
32
+ test.verbose = true
33
+ end
34
+
35
+ desc "Code coverage detail"
36
+ task :simplecov do
37
+ ENV['COVERAGE'] = "true"
38
+ Rake::Task['test'].execute
39
+ end
40
+
41
+ task :default => :test
42
+
43
+ require 'rdoc/task'
44
+ Rake::RDocTask.new do |rdoc|
45
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
46
+
47
+ rdoc.rdoc_dir = 'rdoc'
48
+ rdoc.title = "eventbrite-api-v3 #{version}"
49
+ rdoc.rdoc_files.include('README*')
50
+ rdoc.rdoc_files.include('lib/**/*.rb')
51
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.5
@@ -0,0 +1,97 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: eventbrite-api-v3 0.0.5 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "eventbrite-api-v3".freeze
9
+ s.version = "0.0.5"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["BV Satyaram".freeze, "BrunoChauvet".freeze]
14
+ s.date = "2018-09-17"
15
+ s.description = "Integrate with Eventbrite API".freeze
16
+ s.email = "bvsatyaram@gmail.com".freeze
17
+ s.extra_rdoc_files = [
18
+ "LICENSE",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ ".rspec",
24
+ ".ruby-version",
25
+ ".travis.yml",
26
+ "Gemfile",
27
+ "Gemfile.lock",
28
+ "LICENSE",
29
+ "README.md",
30
+ "Rakefile",
31
+ "VERSION",
32
+ "eventbrite-api-v3.gemspec",
33
+ "lib/eventbrite-api.rb",
34
+ "lib/eventbrite/api/client.rb",
35
+ "lib/eventbrite/api/helper.rb",
36
+ "lib/eventbrite/api/model/attendee.rb",
37
+ "lib/eventbrite/api/model/base.rb",
38
+ "lib/eventbrite/api/model/category.rb",
39
+ "lib/eventbrite/api/model/event.rb",
40
+ "lib/eventbrite/api/model/event_ticket_class.rb",
41
+ "lib/eventbrite/api/model/format.rb",
42
+ "lib/eventbrite/api/model/order.rb",
43
+ "lib/eventbrite/api/model/organizer.rb",
44
+ "lib/eventbrite/api/model/owned_event.rb",
45
+ "lib/eventbrite/api/model/owned_event_attendee.rb",
46
+ "lib/eventbrite/api/model/owned_event_order.rb",
47
+ "lib/eventbrite/api/model/user.rb",
48
+ "lib/eventbrite/api/model/user_contact.rb",
49
+ "lib/eventbrite/api/model/user_contact_list.rb",
50
+ "lib/eventbrite/api/model/user_order.rb",
51
+ "lib/eventbrite/api/model/user_organizer.rb",
52
+ "lib/eventbrite/api/model/user_venue.rb",
53
+ "lib/eventbrite/api/model/venue.rb",
54
+ "spec/eventbrite/api/client_spec.rb",
55
+ "spec/eventbrite/api/model/base_spec.rb",
56
+ "spec/eventbrite/api/model/event_spec.rb",
57
+ "spec/eventbrite/api/model/owned_event_attendee_spec.rb",
58
+ "spec/eventbrite/api/model/owned_event_order_spec.rb",
59
+ "spec/eventbrite/api/model/owned_event_spec.rb",
60
+ "spec/fixtures/events/13270934723/publish.json",
61
+ "spec/fixtures/events/13270934723/unpublish.json",
62
+ "spec/fixtures/events_page1.json",
63
+ "spec/fixtures/events_page2.json",
64
+ "spec/fixtures/events_page3.json",
65
+ "spec/fixtures/owned_event_attendees/page1.json",
66
+ "spec/fixtures/owned_event_attendees/page2.json",
67
+ "spec/fixtures/owned_event_attendees/page3.json",
68
+ "spec/fixtures/users/133925426255/owned_event_attendees.json",
69
+ "spec/fixtures/users/133925426255/owned_event_orders.json",
70
+ "spec/fixtures/users/133925426255/owned_events.json",
71
+ "spec/fixtures/users/me.json",
72
+ "spec/spec_helper.rb"
73
+ ]
74
+ s.homepage = "https://github.com/bvsatyaram/eventbrite-api".freeze
75
+ s.licenses = ["MIT".freeze]
76
+ s.rubygems_version = "2.6.12".freeze
77
+ s.summary = "Integrate with Eventbrite API".freeze
78
+
79
+ if s.respond_to? :specification_version then
80
+ s.specification_version = 4
81
+
82
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
83
+ s.add_runtime_dependency(%q<oauth2>.freeze, [">= 0"])
84
+ s.add_runtime_dependency(%q<deep_merge>.freeze, [">= 0"])
85
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
86
+ else
87
+ s.add_dependency(%q<oauth2>.freeze, [">= 0"])
88
+ s.add_dependency(%q<deep_merge>.freeze, [">= 0"])
89
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
90
+ end
91
+ else
92
+ s.add_dependency(%q<oauth2>.freeze, [">= 0"])
93
+ s.add_dependency(%q<deep_merge>.freeze, [">= 0"])
94
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
95
+ end
96
+ end
97
+