stubhub 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +32 -2
- data/lib/stubhub.rb +2 -8
- data/lib/stubhub/client.rb +17 -6
- data/lib/stubhub/event.rb +13 -7
- data/lib/stubhub/genre.rb +9 -1
- data/lib/stubhub/ticket.rb +3 -3
- data/lib/stubhub/venue.rb +15 -1
- data/lib/stubhub/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Stubhub
|
2
2
|
|
3
|
-
|
3
|
+
A gem for accessing the StubHub API
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -18,7 +18,37 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
Examples
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
|
25
|
+
# find a ticket by ticket id
|
26
|
+
Stubhub::Ticket.find_by_ticket_id(487197960) # => returns a Ticket object
|
27
|
+
|
28
|
+
# find an event by event id
|
29
|
+
Stubhub::Event.find_by_event_id(4236091) # => returns an Event object
|
30
|
+
|
31
|
+
# find tickets for an specific event
|
32
|
+
# first find the event
|
33
|
+
event = Stubhub::Event.find_by_event_id(4236091) # => returns an Event object
|
34
|
+
# then call tickets method on that event
|
35
|
+
event.tickets # => returns an array of ticket objects
|
36
|
+
#return the first 20 ticket listings
|
37
|
+
event.tickets("row" => 20) # => returns an array of ticket objects
|
38
|
+
#return the second 20 ticket listings
|
39
|
+
event.tickets("start" => 20, "row" => 20) # => returns an array of ticket objects
|
40
|
+
|
41
|
+
|
42
|
+
# search for an event
|
43
|
+
Stubhub::Event.search("swedish house mafia") # => returns an Event object
|
44
|
+
|
45
|
+
# search for a venue
|
46
|
+
Stubhub::Venue.search("Oracle Arena") # => returns a Venue object
|
47
|
+
|
48
|
+
# search for a genre
|
49
|
+
Stubhub::Genre.search("ice show") # => returns a Genre object
|
50
|
+
|
51
|
+
```
|
22
52
|
|
23
53
|
## Contributing
|
24
54
|
|
data/lib/stubhub.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'httparty'
|
3
3
|
require 'ostruct'
|
4
|
+
require 'uri'
|
4
5
|
|
5
6
|
require_relative 'stubhub/document'
|
6
7
|
require_relative 'stubhub/client'
|
@@ -14,11 +15,4 @@ require_relative 'stubhub/version'
|
|
14
15
|
|
15
16
|
|
16
17
|
module Stubhub
|
17
|
-
|
18
|
-
# EXAMPLES -----------
|
19
|
-
# doc types: event, venue, genre, geo (Geography), venue_zone_section (Venue Zone Section)
|
20
|
-
# puts Stubhub::Ticket.find_by_ticket_id(487197960)
|
21
|
-
# puts Stubhub::Event.find_by_event_id(4236091) => individual event
|
22
|
-
# puts Stubhub::Event.search("swedish house mafia")
|
23
|
-
# --------------------------
|
24
|
-
end
|
18
|
+
end
|
data/lib/stubhub/client.rb
CHANGED
@@ -5,20 +5,31 @@ module Stubhub
|
|
5
5
|
base_uri "http://www.stubhub.com/listingCatalog/select/?q="
|
6
6
|
format :json
|
7
7
|
|
8
|
-
def self.convert_query_to_url(options)
|
9
|
-
|
8
|
+
def self.convert_query_to_url(params, options)
|
9
|
+
params.map do |k,v|
|
10
10
|
"%2B+#{k}%3A#{v}%0D%0A"
|
11
|
-
end.join <<
|
11
|
+
end.join << self.defaults.merge(options).map do |k,v|
|
12
|
+
"&#{k}=#{v}"
|
13
|
+
end.join
|
12
14
|
end
|
13
15
|
|
14
|
-
def self.make_request(klass, options)
|
15
|
-
query_url = convert_query_to_url(options)
|
16
|
+
def self.make_request(klass, params, options)
|
17
|
+
query_url = convert_query_to_url(params, options)
|
16
18
|
result = get(query_url)
|
17
19
|
parsed_result = JSON.parse(result.body)
|
18
|
-
parsed_result["response"]["docs"].map do |doc|
|
20
|
+
objects = parsed_result["response"]["docs"].map do |doc|
|
19
21
|
klass.new(doc)
|
20
22
|
end
|
23
|
+
objects.length == 1 ? objects.first : objects
|
21
24
|
end
|
22
25
|
|
26
|
+
def self.defaults
|
27
|
+
@options ||= {
|
28
|
+
"start" => 0,
|
29
|
+
"rows" => 10,
|
30
|
+
"wt" => "json"
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
23
34
|
end
|
24
35
|
end
|
data/lib/stubhub/event.rb
CHANGED
@@ -1,17 +1,23 @@
|
|
1
1
|
module Stubhub
|
2
2
|
class Event < Document
|
3
3
|
|
4
|
-
def self.find_by_event_id(event_id)
|
5
|
-
|
4
|
+
def self.find_by_event_id(event_id, options = {})
|
5
|
+
params = {"stubhubDocumentType" => "#{demodulize(self).downcase}",
|
6
6
|
"event_id" => "#{event_id}"}
|
7
|
-
Client.make_request(Event, options)
|
7
|
+
Client.make_request(Event, params, options)
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.search(search_query)
|
11
|
-
search_query.
|
12
|
-
|
10
|
+
def self.search(search_query, options = {})
|
11
|
+
search_query = URI.escape(search_query)
|
12
|
+
params = {"stubhubDocumentType" => "#{demodulize(self).downcase}",
|
13
13
|
"description" => "#{search_query}"}
|
14
|
-
Client.make_request(Event, options)
|
14
|
+
Client.make_request(Event, params, options)
|
15
|
+
end
|
16
|
+
|
17
|
+
def tickets(options = {})
|
18
|
+
params = {"stubhubDocumentType" => "ticket",
|
19
|
+
"event_id" => "#{self.event_id}"}
|
20
|
+
Client.make_request(Ticket, params, options)
|
15
21
|
end
|
16
22
|
|
17
23
|
end
|
data/lib/stubhub/genre.rb
CHANGED
@@ -1,3 +1,11 @@
|
|
1
1
|
module Stubhub
|
2
|
-
class Genre < Document
|
2
|
+
class Genre < Document
|
3
|
+
def self.search(search_query, options = {})
|
4
|
+
search_query = URI.escape(search_query)
|
5
|
+
params = {"stubhubDocumentType" => "#{demodulize(self).downcase}",
|
6
|
+
"description" => "#{search_query}"}
|
7
|
+
Client.make_request(Event, params, options = {})
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
3
11
|
end
|
data/lib/stubhub/ticket.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
module Stubhub
|
2
2
|
class Ticket < Document
|
3
3
|
|
4
|
-
def self.find_by_ticket_id(ticket_id)
|
5
|
-
|
4
|
+
def self.find_by_ticket_id(ticket_id, options = {})
|
5
|
+
params = {"stubhubDocumentType" => "#{demodulize(self).downcase}",
|
6
6
|
"id" => "#{ticket_id}"}
|
7
|
-
Client.make_request(Ticket, options)
|
7
|
+
Client.make_request(Ticket, params, options = {})
|
8
8
|
end
|
9
9
|
|
10
10
|
|
data/lib/stubhub/venue.rb
CHANGED
@@ -1,3 +1,17 @@
|
|
1
1
|
module Stubhub
|
2
|
-
class Venue < Document
|
2
|
+
class Venue < Document
|
3
|
+
def self.find_by_venue_id(venue_id, options = {})
|
4
|
+
params = {"stubhubDocumentType" => "#{demodulize(self).downcase}",
|
5
|
+
"venue_id" => "#{venue_id}"}
|
6
|
+
Client.make_request(Venue, params, options = {})
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.search(search_query, options = {})
|
10
|
+
search_query = URI.escape(search_query)
|
11
|
+
params = {"stubhubDocumentType" => "#{demodulize(self).downcase}",
|
12
|
+
"description" => "#{search_query}"}
|
13
|
+
Client.make_request(Venue, params, options = {})
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
3
17
|
end
|
data/lib/stubhub/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stubhub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: HTTParty
|