eventbrite-api-v3 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+