module SeatGeek

Constants

CONCERT_ID
PUBLIC_API_URL
SPORTS_ID
THEATRE_ID
VERSION

Attributes

base_url[RW]
options[RW]

Public Class Methods

get_event(id:) click to toggle source
# File lib/seat_geek.rb, line 38
def self.get_event(id:)
  url = "#{PUBLIC_API_URL}events/#{id}"
  request = Typhoeus::Request.new(url,
                                   method: :get,
                                  ).run
  parse_response(request.body)
end
get_events(options) click to toggle source
# File lib/seat_geek.rb, line 30
def self.get_events(options)
  partner_id = options.fetch(:seat_geek_partner_id) { 11781 }
  @options = options.merge(rid: partner_id)
  @base_url = PUBLIC_API_URL + 'events'

  parse_response(typhoeus_request.body)
end
get_recommendations() click to toggle source

GET api.seatgeek.com/2/recommendations

# File lib/seat_geek.rb, line 78
def self.get_recommendations()#client_key:)
  @base_url = PUBLIC_API_URL + '/recommendations?client_id=MzkzMjEyMnwxNDQ5MjgzMTQ1'
  parse_response(typhoeus_request.body)
end
get_taxonomies() click to toggle source
# File lib/seat_geek.rb, line 46
def self.get_taxonomies
  @options = {}
  @base_url = 'https://api.seatgeek.com/2/taxonomies'
  taxonomies = parse_response(typhoeus_request.body)['taxonomies']

  SeatGeek::Taxonomies::Tree.new(parent_ids: [SPORTS_ID, CONCERT_ID, THEATRE_ID], taxonomies: taxonomies)
end
states() click to toggle source
# File lib/seat_geek.rb, line 54
def self.states
  @state ||= [{:state_name=>"AL"}, {:state_name=>"MT"}, {:state_name=>"AK"}, {:state_name=>"NE"},
            {:state_name=>"AZ"}, {:state_name=>"NV"}, {:state_name=>"AR"}, {:state_name=>"NH"},
            {:state_name=>"CA"}, {:state_name=>"NJ"}, {:state_name=>"CO"}, {:state_name=>"NM"},
            {:state_name=>"CT"}, {:state_name=>"NY"}, {:state_name=>"DE"}, {:state_name=>"NC"},
            {:state_name=>"FL"}, {:state_name=>"ND"}, {:state_name=>"GA"}, {:state_name=>"OH"},
            {:state_name=>"HI"}, {:state_name=>"OK"}, {:state_name=>"ID"}, {:state_name=>"OR"},
            {:state_name=>"IL"}, {:state_name=>"PA"}, {:state_name=>"IN"}, {:state_name=>"RI"},
            {:state_name=>"IA"}, {:state_name=>"SC"}, {:state_name=>"KS"}, {:state_name=>"SD"},
            {:state_name=>"KY"}, {:state_name=>"TN"}, {:state_name=>"LA"}, {:state_name=>"TX"},
            {:state_name=>"ME"}, {:state_name=>"UT"}, {:state_name=>"MD"}, {:state_name=>"VT"},
            {:state_name=>"MA"}, {:state_name=>"VA"}, {:state_name=>"MI"}, {:state_name=>"WA"},
            {:state_name=>"MN"}, {:state_name=>"WV"}, {:state_name=>"MS"}, {:state_name=>"WI"},
            {:state_name=>"MO"}, {:state_name=>"WY"}].sort_by { |x| x[:state_name] }
end

Private Instance Methods

build_url() click to toggle source

Instead of BuildQuery what if it’s the Method name? E.G Recommendations.build(options) E.G Events.build(options) This way each build could have their own custom settings

# File lib/seat_geek.rb, line 91
def build_url
  BuildQuery.build(options, base_url)
end
parse_response(json_string) click to toggle source
# File lib/seat_geek.rb, line 101
def parse_response(json_string)
  Oj.load(json_string)
end
typhoeus_request() click to toggle source
# File lib/seat_geek.rb, line 95
def typhoeus_request
  Typhoeus::Request.new(build_url,
    method: :get
  ).run
end