class Echelon::DisneyWorld::Park

Attributes

json_data[R]

Public Class Methods

new(access_token, park_id) click to toggle source
# 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'
  }

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

Public Instance Methods

ride_list() click to toggle source
# 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

Private Instance Methods

create_ride_object(ref) click to toggle source
# File lib/echelon/parks/disney_world.rb, line 65
def create_ride_object(ref)
  json_data['entries'].each do |ride|
    if ride['id'].split(';').first.to_i == ref

      ride_status = ride['waitTime']['status']
      status = 1 if ride_status == 'Operating'
      status = 0 if ride_status == 'Closed'
      status = -1 if ride_status == 'Down'

      queue_time = ride['waitTime']['postedWaitMinutes'].to_i

      meta = {
        fastpass_available: ride['waitTime']['fastPass']['available'],
        single_rider: ride['waitTime']['singleRider']
      }

      return Ride.new(name: ride_list[ref], queue_time: queue_time, active: status, meta: meta)
    end
  end
end