From 2ba3aa5a89ce07f4e17a301199b7ac3fd09c13e4 Mon Sep 17 00:00:00 2001 From: Chas Lemley Date: Tue, 21 Mar 2017 13:16:25 -0400 Subject: [PATCH 1/2] add accessors for pickup, destination to Request model - The pickup and destination locations are included in the trip details response. This adds accessors to easily access them from code after retrieving them from the trip details endpoint. --- lib/uber/models/request.rb | 10 +++++++++- spec/lib/api/requests_spec.rb | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/uber/models/request.rb b/lib/uber/models/request.rb index d43650c..7ecbdcb 100644 --- a/lib/uber/models/request.rb +++ b/lib/uber/models/request.rb @@ -1,6 +1,6 @@ module Uber class Request < Base - attr_accessor :request_id, :status, :vehicle, :driver, :location, :eta, :surge_multiplier, :meta, :errors + attr_accessor :request_id, :status, :vehicle, :driver, :location, :pickup, :destination, :eta, :surge_multiplier, :meta, :errors def driver=(value) @driver = value.nil? ? nil : Driver.new(value) @@ -14,6 +14,14 @@ def location=(value) @location = value.nil? ? nil : Location.new(value) end + def pickup=(value) + @pickup = value.nil? ? nil : Location.new(value) + end + + def destination=(value) + @destination = value.nil? ? nil : Location.new(value) + end + def errors=(values) @errors = values.map { |v| RequestError.new(v) } end diff --git a/spec/lib/api/requests_spec.rb b/spec/lib/api/requests_spec.rb index 65bc05e..6c38890 100644 --- a/spec/lib/api/requests_spec.rb +++ b/spec/lib/api/requests_spec.rb @@ -248,6 +248,14 @@ "longitude" => -122.418143, "bearing" => 33 }, + "pickup" => { + "latitude" => 0.0, + "longitude" => 0.5 + }, + "destination" => { + "latitude" => 0.0, + "longitude" => 0.6 + }, "vehicle" => { "make" => "Bugatti", "model" => "Veyron", @@ -276,6 +284,12 @@ expect(request.location.longitude).to eql -122.418143 expect(request.location.bearing).to eql 33 + expect(request.pickup.latitude).to eql 0.0 + expect(request.pickup.longitude).to eql 0.5 + + expect(request.destination.latitude).to eql 0.0 + expect(request.destination.longitude).to eql 0.6 + expect(request.vehicle.make).to eql 'Bugatti' expect(request.vehicle.model).to eql 'Veyron' expect(request.vehicle.license_plate).to eql 'I<3Uber' From 061a64107a1ca1b5270b1032a0f8e1e8867e152e Mon Sep 17 00:00:00 2001 From: Ankur Goel Date: Thu, 23 Mar 2017 23:45:19 +0530 Subject: [PATCH 2/2] added eta in Location for destination and pickup location --- lib/uber/models/request.rb | 2 +- spec/lib/api/requests_spec.rb | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/uber/models/request.rb b/lib/uber/models/request.rb index 7ecbdcb..54fa72e 100644 --- a/lib/uber/models/request.rb +++ b/lib/uber/models/request.rb @@ -58,6 +58,6 @@ class Vehicle < Base end class Location < Base - attr_accessor :latitude, :longitude, :bearing + attr_accessor :latitude, :longitude, :bearing, :eta end end diff --git a/spec/lib/api/requests_spec.rb b/spec/lib/api/requests_spec.rb index 6c38890..2972eea 100644 --- a/spec/lib/api/requests_spec.rb +++ b/spec/lib/api/requests_spec.rb @@ -250,11 +250,13 @@ }, "pickup" => { "latitude" => 0.0, - "longitude" => 0.5 + "longitude" => 0.5, + "eta" => 5 }, "destination" => { "latitude" => 0.0, - "longitude" => 0.6 + "longitude" => 0.6, + "eta" => 19 }, "vehicle" => { "make" => "Bugatti", @@ -286,9 +288,11 @@ expect(request.pickup.latitude).to eql 0.0 expect(request.pickup.longitude).to eql 0.5 + expect(request.pickup.eta).to eql 5 expect(request.destination.latitude).to eql 0.0 expect(request.destination.longitude).to eql 0.6 + expect(request.destination.eta).to eql 19 expect(request.vehicle.make).to eql 'Bugatti' expect(request.vehicle.model).to eql 'Veyron'