gogokit 0.1.0
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.
- checksums.yaml +15 -0
- data/LICENSE.txt +19 -0
- data/README.md +18 -0
- data/Rakefile +12 -0
- data/gogokit.gemspec +27 -0
- data/lib/gogokit.rb +6 -0
- data/lib/gogokit/client.rb +171 -0
- data/lib/gogokit/client/category.rb +39 -0
- data/lib/gogokit/client/country.rb +38 -0
- data/lib/gogokit/client/currency.rb +38 -0
- data/lib/gogokit/client/event.rb +41 -0
- data/lib/gogokit/client/language.rb +38 -0
- data/lib/gogokit/client/listing.rb +41 -0
- data/lib/gogokit/client/metro_area.rb +39 -0
- data/lib/gogokit/client/oauth.rb +55 -0
- data/lib/gogokit/client/root.rb +24 -0
- data/lib/gogokit/client/search.rb +27 -0
- data/lib/gogokit/client/venue.rb +39 -0
- data/lib/gogokit/configuration.rb +40 -0
- data/lib/gogokit/connection.rb +34 -0
- data/lib/gogokit/default.rb +10 -0
- data/lib/gogokit/error.rb +12 -0
- data/lib/gogokit/middleware/raise_error.rb +27 -0
- data/lib/gogokit/money.rb +19 -0
- data/lib/gogokit/oauth_token.rb +21 -0
- data/lib/gogokit/paged_resource.rb +23 -0
- data/lib/gogokit/resource.rb +18 -0
- data/lib/gogokit/resource/category.rb +43 -0
- data/lib/gogokit/resource/country.rb +27 -0
- data/lib/gogokit/resource/currency.rb +27 -0
- data/lib/gogokit/resource/event.rb +54 -0
- data/lib/gogokit/resource/language.rb +27 -0
- data/lib/gogokit/resource/listing.rb +89 -0
- data/lib/gogokit/resource/listing_note.rb +17 -0
- data/lib/gogokit/resource/metro_area.rb +29 -0
- data/lib/gogokit/resource/root.rb +15 -0
- data/lib/gogokit/resource/search_result.rb +52 -0
- data/lib/gogokit/resource/ticket_type.rb +17 -0
- data/lib/gogokit/resource/venue.rb +49 -0
- data/lib/gogokit/seating.rb +19 -0
- data/lib/gogokit/utils.rb +18 -0
- data/lib/gogokit/version.rb +17 -0
- metadata +155 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
require 'gogokit/paged_resource'
|
3
|
+
require 'gogokit/money'
|
4
|
+
require 'roar/coercion'
|
5
|
+
|
6
|
+
module GogoKit
|
7
|
+
# Represents a grouping of events or other categories
|
8
|
+
#
|
9
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#category
|
10
|
+
class Category < Resource
|
11
|
+
attr_accessor :id,
|
12
|
+
:name,
|
13
|
+
:description_html,
|
14
|
+
:min_ticket_price,
|
15
|
+
:min_event_date,
|
16
|
+
:max_event_date
|
17
|
+
end
|
18
|
+
|
19
|
+
module CategoryRepresenter
|
20
|
+
include Representable::JSON
|
21
|
+
include GogoKit::ResourceRepresenter
|
22
|
+
|
23
|
+
property :id
|
24
|
+
property :name
|
25
|
+
property :description_html
|
26
|
+
property :min_ticket_price,
|
27
|
+
extend: GogoKit::MoneyRepresenter,
|
28
|
+
class: GogoKit::Money,
|
29
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
30
|
+
property :min_event_date, type: DateTime
|
31
|
+
property :max_event_date, type: DateTime
|
32
|
+
end
|
33
|
+
|
34
|
+
module CategoriesRepresenter
|
35
|
+
include Representable::JSON
|
36
|
+
include GogoKit::PagedResourceRepresenter
|
37
|
+
|
38
|
+
collection :items,
|
39
|
+
class: Category,
|
40
|
+
extend: CategoryRepresenter,
|
41
|
+
embedded: true
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
|
3
|
+
module GogoKit
|
4
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#country
|
5
|
+
class Country < Resource
|
6
|
+
attr_accessor :code,
|
7
|
+
:name
|
8
|
+
end
|
9
|
+
|
10
|
+
module CountryRepresenter
|
11
|
+
include Representable::JSON
|
12
|
+
include GogoKit::ResourceRepresenter
|
13
|
+
|
14
|
+
property :code
|
15
|
+
property :name
|
16
|
+
end
|
17
|
+
|
18
|
+
module CountriesRepresenter
|
19
|
+
include Representable::JSON
|
20
|
+
include GogoKit::PagedResourceRepresenter
|
21
|
+
|
22
|
+
collection :items,
|
23
|
+
class: Country,
|
24
|
+
extend: CountryRepresenter,
|
25
|
+
embedded: true
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
|
3
|
+
module GogoKit
|
4
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#currency
|
5
|
+
class Currency < Resource
|
6
|
+
attr_accessor :code,
|
7
|
+
:name
|
8
|
+
end
|
9
|
+
|
10
|
+
module CurrencyRepresenter
|
11
|
+
include Representable::JSON
|
12
|
+
include GogoKit::ResourceRepresenter
|
13
|
+
|
14
|
+
property :code
|
15
|
+
property :name
|
16
|
+
end
|
17
|
+
|
18
|
+
module CurrenciesRepresenter
|
19
|
+
include Representable::JSON
|
20
|
+
include GogoKit::PagedResourceRepresenter
|
21
|
+
|
22
|
+
collection :items,
|
23
|
+
class: Currency,
|
24
|
+
extend: CurrencyRepresenter,
|
25
|
+
embedded: true
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
require 'gogokit/paged_resource'
|
3
|
+
require 'gogokit/money'
|
4
|
+
require 'gogokit/resource/venue'
|
5
|
+
require 'roar/coercion'
|
6
|
+
|
7
|
+
module GogoKit
|
8
|
+
# An event on the viagogo platform.
|
9
|
+
#
|
10
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#event
|
11
|
+
class Event < Resource
|
12
|
+
attr_accessor :id,
|
13
|
+
:name,
|
14
|
+
:start_date,
|
15
|
+
:end_date,
|
16
|
+
:date_confirmed,
|
17
|
+
:min_ticket_price,
|
18
|
+
:notes_html,
|
19
|
+
:restrictions_html,
|
20
|
+
:venue
|
21
|
+
end
|
22
|
+
|
23
|
+
module EventRepresenter
|
24
|
+
include Representable::JSON
|
25
|
+
include GogoKit::ResourceRepresenter
|
26
|
+
|
27
|
+
property :id
|
28
|
+
property :name
|
29
|
+
property :start_date, type: DateTime
|
30
|
+
property :end_date, type: DateTime
|
31
|
+
property :date_confirmed
|
32
|
+
property :min_ticket_price,
|
33
|
+
class: GogoKit::Money,
|
34
|
+
extend: GogoKit::MoneyRepresenter,
|
35
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
36
|
+
property :notes_html
|
37
|
+
property :restrictions_html
|
38
|
+
property :venue,
|
39
|
+
class: Venue,
|
40
|
+
extend: VenueRepresenter,
|
41
|
+
skip_parse: ->(fragment, _) { fragment.nil? },
|
42
|
+
embedded: true
|
43
|
+
end
|
44
|
+
|
45
|
+
module EventsRepresenter
|
46
|
+
include Representable::JSON
|
47
|
+
include GogoKit::PagedResourceRepresenter
|
48
|
+
|
49
|
+
collection :items,
|
50
|
+
class: Event,
|
51
|
+
extend: EventRepresenter,
|
52
|
+
embedded: true
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
|
3
|
+
module GogoKit
|
4
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#language
|
5
|
+
class Language < Resource
|
6
|
+
attr_accessor :code,
|
7
|
+
:name
|
8
|
+
end
|
9
|
+
|
10
|
+
module LanguageRepresenter
|
11
|
+
include Representable::JSON
|
12
|
+
include GogoKit::ResourceRepresenter
|
13
|
+
|
14
|
+
property :code
|
15
|
+
property :name
|
16
|
+
end
|
17
|
+
|
18
|
+
module LanguagesRepresenter
|
19
|
+
include Representable::JSON
|
20
|
+
include GogoKit::PagedResourceRepresenter
|
21
|
+
|
22
|
+
collection :items,
|
23
|
+
class: Language,
|
24
|
+
extend: LanguageRepresenter,
|
25
|
+
embedded: true
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
require 'gogokit/resource/listing_note'
|
3
|
+
require 'gogokit/resource/ticket_type'
|
4
|
+
require 'gogokit/money'
|
5
|
+
require 'gogokit/seating'
|
6
|
+
|
7
|
+
module GogoKit
|
8
|
+
# A set of tickets for sale on the viagogo marketplace
|
9
|
+
#
|
10
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#listing
|
11
|
+
class Listing < Resource
|
12
|
+
attr_accessor :id,
|
13
|
+
:number_of_tickets,
|
14
|
+
:seating,
|
15
|
+
:pickup_available,
|
16
|
+
:download_available,
|
17
|
+
:ticket_price,
|
18
|
+
:estimated_ticket_price,
|
19
|
+
:estimated_total_ticket_price,
|
20
|
+
:estimated_booking_fee,
|
21
|
+
:estimated_shipping,
|
22
|
+
:estimated_vat,
|
23
|
+
:estimated_total_charge,
|
24
|
+
:ticket_type,
|
25
|
+
:listing_notes
|
26
|
+
end
|
27
|
+
|
28
|
+
module ListingRepresenter
|
29
|
+
include Representable::JSON
|
30
|
+
include GogoKit::ResourceRepresenter
|
31
|
+
|
32
|
+
property :id
|
33
|
+
property :number_of_tickets
|
34
|
+
property :seating,
|
35
|
+
extend: GogoKit::SeatingRepresenter,
|
36
|
+
class: GogoKit::Seating,
|
37
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
38
|
+
property :pickup_available
|
39
|
+
property :download_available
|
40
|
+
property :ticket_price,
|
41
|
+
extend: GogoKit::MoneyRepresenter,
|
42
|
+
class: GogoKit::Money,
|
43
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
44
|
+
property :estimated_ticket_price,
|
45
|
+
extend: GogoKit::MoneyRepresenter,
|
46
|
+
class: GogoKit::Money,
|
47
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
48
|
+
property :estimated_total_ticket_price,
|
49
|
+
extend: GogoKit::MoneyRepresenter,
|
50
|
+
class: GogoKit::Money,
|
51
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
52
|
+
property :estimated_booking_fee,
|
53
|
+
extend: GogoKit::MoneyRepresenter,
|
54
|
+
class: GogoKit::Money,
|
55
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
56
|
+
property :estimated_shipping,
|
57
|
+
extend: GogoKit::MoneyRepresenter,
|
58
|
+
class: GogoKit::Money,
|
59
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
60
|
+
property :estimated_vat,
|
61
|
+
extend: GogoKit::MoneyRepresenter,
|
62
|
+
class: GogoKit::Money,
|
63
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
64
|
+
property :estimated_total_charge,
|
65
|
+
extend: GogoKit::MoneyRepresenter,
|
66
|
+
class: GogoKit::Money,
|
67
|
+
skip_parse: ->(fragment, _) { fragment.nil? }
|
68
|
+
property :ticket_type,
|
69
|
+
extend: GogoKit::TicketTypeRepresenter,
|
70
|
+
class: GogoKit::TicketType,
|
71
|
+
skip_parse: ->(fragment, _) { fragment.nil? },
|
72
|
+
embedded: true
|
73
|
+
collection :listing_notes,
|
74
|
+
extend: GogoKit::ListingNoteRepresenter,
|
75
|
+
class: GogoKit::ListingNote,
|
76
|
+
skip_parse: ->(fragment, _) { fragment.nil? },
|
77
|
+
embedded: true
|
78
|
+
end
|
79
|
+
|
80
|
+
module ListingsRepresenter
|
81
|
+
include Representable::JSON
|
82
|
+
include GogoKit::PagedResourceRepresenter
|
83
|
+
|
84
|
+
collection :items,
|
85
|
+
class: Listing,
|
86
|
+
extend: ListingRepresenter,
|
87
|
+
embedded: true
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
|
3
|
+
module GogoKit
|
4
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#listingnote
|
5
|
+
class ListingNote < Resource
|
6
|
+
attr_accessor :id,
|
7
|
+
:note
|
8
|
+
end
|
9
|
+
|
10
|
+
module ListingNoteRepresenter
|
11
|
+
include Representable::JSON
|
12
|
+
include GogoKit::ResourceRepresenter
|
13
|
+
|
14
|
+
property :id
|
15
|
+
property :note
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
|
3
|
+
module GogoKit
|
4
|
+
# A metropolitan region that contains venues where events are taking place
|
5
|
+
#
|
6
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#metroarea
|
7
|
+
class MetroArea < Resource
|
8
|
+
attr_accessor :id,
|
9
|
+
:name
|
10
|
+
end
|
11
|
+
|
12
|
+
module MetroAreaRepresenter
|
13
|
+
include Representable::JSON
|
14
|
+
include GogoKit::ResourceRepresenter
|
15
|
+
|
16
|
+
property :id
|
17
|
+
property :name
|
18
|
+
end
|
19
|
+
|
20
|
+
module MetroAreasRepresenter
|
21
|
+
include Representable::JSON
|
22
|
+
include GogoKit::PagedResourceRepresenter
|
23
|
+
|
24
|
+
collection :items,
|
25
|
+
class: MetroArea,
|
26
|
+
extend: MetroAreaRepresenter,
|
27
|
+
embedded: true
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
|
3
|
+
module GogoKit
|
4
|
+
# The root of the viagogo API service.
|
5
|
+
#
|
6
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#root
|
7
|
+
class Root < Resource
|
8
|
+
end
|
9
|
+
|
10
|
+
# A representer for {GogoKit::Root}
|
11
|
+
module RootRepresenter
|
12
|
+
include Representable::JSON
|
13
|
+
include GogoKit::ResourceRepresenter
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
require 'gogokit/paged_resource'
|
3
|
+
require 'gogokit/resource/category'
|
4
|
+
require 'gogokit/resource/event'
|
5
|
+
require 'gogokit/resource/metro_area'
|
6
|
+
require 'gogokit/resource/venue'
|
7
|
+
|
8
|
+
module GogoKit
|
9
|
+
# A result of a search query
|
10
|
+
#
|
11
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#searchresult
|
12
|
+
class SearchResult < Resource
|
13
|
+
attr_accessor :title,
|
14
|
+
:type,
|
15
|
+
:type_description,
|
16
|
+
:event,
|
17
|
+
:category,
|
18
|
+
:metro_area,
|
19
|
+
:venue
|
20
|
+
end
|
21
|
+
|
22
|
+
# Representer for {GogoKit::SearchResult}
|
23
|
+
module SearchResultRepresenter
|
24
|
+
include Representable::JSON
|
25
|
+
include GogoKit::ResourceRepresenter
|
26
|
+
|
27
|
+
property :title
|
28
|
+
property :type
|
29
|
+
property :type_description
|
30
|
+
property :event, class: Event, extend: EventRepresenter, embedded: true
|
31
|
+
property :category,
|
32
|
+
class: Category,
|
33
|
+
extend: CategoryRepresenter,
|
34
|
+
embedded: true
|
35
|
+
property :metro_area,
|
36
|
+
class: MetroArea,
|
37
|
+
extend: MetroAreaRepresenter,
|
38
|
+
embedded: true
|
39
|
+
property :venue, class: Venue, extend: VenueRepresenter, embedded: true
|
40
|
+
end
|
41
|
+
|
42
|
+
# Representer for a {GogoKit::Page} of {GogoKit::SearchResult}s
|
43
|
+
module SearchResultsRepresenter
|
44
|
+
include Representable::JSON
|
45
|
+
include GogoKit::PagedResourceRepresenter
|
46
|
+
|
47
|
+
collection :items,
|
48
|
+
class: SearchResult,
|
49
|
+
extend: SearchResultRepresenter,
|
50
|
+
embedded: true
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
|
3
|
+
module GogoKit
|
4
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#tickettype
|
5
|
+
class TicketType < Resource
|
6
|
+
attr_accessor :type,
|
7
|
+
:name
|
8
|
+
end
|
9
|
+
|
10
|
+
module TicketTypeRepresenter
|
11
|
+
include Representable::JSON
|
12
|
+
include GogoKit::ResourceRepresenter
|
13
|
+
|
14
|
+
property :type
|
15
|
+
property :name
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'gogokit/resource'
|
2
|
+
require 'gogokit/resource/country'
|
3
|
+
|
4
|
+
module GogoKit
|
5
|
+
# A location where an event takes place.
|
6
|
+
#
|
7
|
+
# @see http://viagogo.github.io/developer.viagogo.net/#venue
|
8
|
+
class Venue < Resource
|
9
|
+
attr_accessor :id,
|
10
|
+
:name,
|
11
|
+
:address_1,
|
12
|
+
:address_2,
|
13
|
+
:city,
|
14
|
+
:state_province,
|
15
|
+
:postal_code,
|
16
|
+
:latitude,
|
17
|
+
:longitude,
|
18
|
+
:country
|
19
|
+
end
|
20
|
+
|
21
|
+
module VenueRepresenter
|
22
|
+
include Representable::JSON
|
23
|
+
include GogoKit::ResourceRepresenter
|
24
|
+
|
25
|
+
property :id
|
26
|
+
property :name
|
27
|
+
property :address_1
|
28
|
+
property :address_2
|
29
|
+
property :city
|
30
|
+
property :state_province
|
31
|
+
property :postal_code
|
32
|
+
property :latitude
|
33
|
+
property :longitude
|
34
|
+
property :country,
|
35
|
+
class: Country,
|
36
|
+
extend: CountryRepresenter,
|
37
|
+
embedded: true
|
38
|
+
end
|
39
|
+
|
40
|
+
module VenuesRepresenter
|
41
|
+
include Representable::JSON
|
42
|
+
include GogoKit::PagedResourceRepresenter
|
43
|
+
|
44
|
+
collection :items,
|
45
|
+
class: Venue,
|
46
|
+
extend: VenueRepresenter,
|
47
|
+
embedded: true
|
48
|
+
end
|
49
|
+
end
|