class Lyft::Client::Api::Rides

Public Instance Methods

cancel(access_token:, params: {}) click to toggle source

Cancel a ride request. @see developer.lyft.com/docs/request-cancel

@param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [String] :ride_id (required) @option params [String] :cancel_confirmation_token

# File lib/lyft/client/api/rides.rb, line 14
def cancel(access_token:, params: {})
  ride_id = require_ride_id(params)
  resp = connection(access_token).post  do |req|
    req.url "/#{Api::VERSION}/rides/#{ride_id}/cancel"
    req.body = params
  end
  handle_response(resp)
end
destination(access_token:, params: {}) click to toggle source

Update the ride destination @see developer.lyft.com/docs/request-destination

@param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [String] :ride_id (required) @option params [Float] :lat (required) @option params [Float] :lng (required) @option params [String] :address

# File lib/lyft/client/api/rides.rb, line 34
def destination(access_token:, params: {})
  ride_id = require_ride_id(params)
  resp = connection(access_token).put do |req|
    req.url "/#{Api::VERSION}/rides/#{ride_id}/destination"
    req.body = params
  end
  handle_response(resp)
end
details(access_token:, params: {}) click to toggle source

Get details of a ride. @see developer.lyft.com/docs/ride-request-details

@param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [String] :ride_id The ride id. (required)

# File lib/lyft/client/api/rides.rb, line 51
def details(access_token:, params: {})
  ride_id = require_ride_id(params)
  resp = connection(access_token).get do |req|
    req.url "/#{Api::VERSION}/rides/#{ride_id}"
    req.body = params
  end
  handle_response(resp)
end
rate(access_token:, params: {}) click to toggle source

Rate a ride and/or provide a tip. @see developer.lyft.com/docs/ride-request-rating-and-tipping

@param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [String] :ride_id (required) @option params [Integer] :rating Rating should be between 1 and 5 inclusive. (required) @option params [Hash] :tip The tip should include :amount and :currency. @option params [String] :feedback

# File lib/lyft/client/api/rides.rb, line 71
def rate(access_token:, params: {})
  ride_id = require_ride_id(params)
  resp = connection(access_token).put do |req|
    req.url "/#{Api::VERSION}/rides/#{ride_id}/rating"
    req.body = params
  end
  handle_response(resp)
end
Also aliased as: tip
receipt(access_token:, params: {}) click to toggle source

Get receipt for ride @see developer.lyft.com/docs/request-receipt

@param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [String] :ride_id (required)

# File lib/lyft/client/api/rides.rb, line 89
def receipt(access_token:, params: {})
  ride_id = require_ride_id(params)
  resp = connection(access_token).get do |req|
    req.url "/#{Api::VERSION}/rides/#{ride_id}/receipt"
    req.params = params
  end
  handle_response(resp)
end
request(access_token:, params: {}) click to toggle source

Request a ride. @see developer.lyft.com/docs/request

@param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [Hash] :origin The origin should contain :lat and :lng @option params [Hash] :destination The destination should contain :lat and :lng. @option params [String] :ride_type @option params [String] :primetime_confirmation_token

# File lib/lyft/client/api/rides.rb, line 109
def request(access_token:, params: {})
  resp = connection(access_token).post do |req|
    req.url "/#{Api::VERSION}/rides"
    req.body = params
  end
  handle_response(resp)
end
set_driver_availability(access_token:, params: {}) click to toggle source

Set driver availability for a ride type in an area.

@raise [RuntimeError] Raises if not in sandbox mode. @raise [ArgumentError] Raises if invalid ride type. @param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [String] :ride_type (required) @option params [Float] :lat (required) @option params [Float] :lng (required) @option params [Boolean] :driver_availability

# File lib/lyft/client/api/rides.rb, line 196
def set_driver_availability(access_token:, params: {})
  validate_sandboxed
  ride_type = require_ride_type(params)
  resp = connection(access_token).put do |req|
    req.url "/#{Api::VERSION}/sandbox/ridetypes/#{ride_type}"
    req.body = params
  end
  handle_response(resp)
end
set_primetime(access_token:, params: {}) click to toggle source

Set the primetime percentage in area

@example Set the prime time percentage.

client.rides.set_primetime(
  access_token: 'my_token',
  lat: 37.7833,
  lng: -122.4167,
  primetime_percentage: '25%'
)

@raise [RuntimeError] Raises if not in sandbox mode. @param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [Float] :lat (required) @option params [Float] :lng (required) @option params [String] :primetime_percentage

# File lib/lyft/client/api/rides.rb, line 174
def set_primetime(access_token:, params: {})
  validate_sandboxed
  resp = connection(access_token).put do |req|
    req.url "/#{Api::VERSION}/sandbox/primetime"
    req.body = params
  end
  handle_response(resp)
end
set_ridetypes(access_token:, params: {}) click to toggle source

Preset the ridetypes in area.

@raise [RuntimeError] Raises if not in sandbox mode. @param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [Float] :lat (required) @option params [Float] :lng (required) @option params [Array<String>] :ride_types The ride types to make available.

Accepted values are 'lyft', 'lyft_line', 'lyft_plus', and 'lyft_suv'.
# File lib/lyft/client/api/rides.rb, line 128
def set_ridetypes(access_token:, params: {})
  validate_sandboxed
  resp = connection(access_token).put do |req|
    req.url "/#{Api::VERSION}/sandbox/ridetypes"
    req.body = params
  end
  handle_response(resp)
end
set_status(access_token:, params: {}) click to toggle source

Propogate ride through different states.

@raise [RuntimeError] Raises if not in sandbox mode. @param access_token [String] The access_token (required) @param params [Hash] The lyft parameters. @option params [String] :ride_id (required) @option params [String] :status The status of the ride

# File lib/lyft/client/api/rides.rb, line 146
def set_status(access_token:, params: {})
  validate_sandboxed
  ride_id = require_ride_id(params)
  resp = connection(access_token).put do |req|
    req.url "/#{Api::VERSION}/sandbox/rides/#{ride_id}"
    req.body = params
  end
  handle_response(resp)
end
tip(access_token:, params: {})
Alias for: rate

Private Instance Methods

require_key(params, key) click to toggle source
# File lib/lyft/client/api/rides.rb, line 221
def require_key(params, key)
  value = params.delete(key.to_sym)
  raise ArgumentError, "Missing param :#{key}" if value.blank?
  value
end
require_ride_id(params) click to toggle source
# File lib/lyft/client/api/rides.rb, line 227
def require_ride_id(params)
  require_key(params, :ride_id)
end
require_ride_type(params) click to toggle source
# File lib/lyft/client/api/rides.rb, line 231
def require_ride_type(params)
  require_key(params, :ride_type)
end
validate_ride_type(params) click to toggle source
# File lib/lyft/client/api/rides.rb, line 216
def validate_ride_type(params)
  return if Lyft::Ride::RIDE_TYPES.include?(params[:ride_type])
  raise ArgumentError, 'Invalid Ride Type'
end
validate_sandboxed() click to toggle source

Validates if the current configuration is using lyft sandbox. @raise [RuntimeError] Raises if not in sandbox mode.

# File lib/lyft/client/api/rides.rb, line 212
def validate_sandboxed
  raise 'This method is only available in sandbox mode.' unless configuration.sandbox?
end