Class: Echelon::DisneyWorld::Park

Inherits:
Park
  • Object
show all
Defined in:
lib/echelon/parks/disney_world.rb

Direct Known Subclasses

AnimalKingdom, Epcot, HollywoodStudios, MagicKingdom

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Park

#find_by_id, #find_by_name, #rides

Constructor Details

#initialize(access_token, park_id) ⇒ Park

Returns a new instance of Park.



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/echelon/parks/disney_world.rb', line 48

def initialize(access_token, park_id)
  uri = URI.parse("https://api.wdpro.disney.go.com/facility-service/theme-parks/#{park_id};entityType=theme-park/wait-times")
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  headers = {
    'Authorization' => "BEARER #{access_token}",
    'Accept' => 'application/json;apiversion=1',
    'X-Conversation-Id' => '~WDPRO-MOBILE.CLIENT-PROD'
  }

  resp = http.get(uri.request_uri, headers)
  @json_data = JSON.parse(resp.body)
end

Instance Attribute Details

#json_dataObject (readonly)

Returns the value of attribute json_data.



42
43
44
# File 'lib/echelon/parks/disney_world.rb', line 42

def json_data
  @json_data
end

Instance Method Details

#ride_listObject



44
45
46
# File 'lib/echelon/parks/disney_world.rb', line 44

def ride_list
  json_data['entries'].inject({}) { |a, r| a[r['id'].split(';').first.to_i] = r['name']; a }
end