aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tom_tom.rb
diff options
context:
space:
mode:
authorTeddy Wing2018-03-12 12:28:19 +0100
committerTeddy Wing2018-03-14 16:38:39 +0100
commit0d5e6f92f74a06807c67c9d0427dd5b5543a6400 (patch)
treea0496938aed2517a9f113eb53fb2769fb24d9266 /lib/tom_tom.rb
parentac2f38518f6c0aa81fcc622ce5f0ab3b3837dbe0 (diff)
downloadchouette-core-0d5e6f92f74a06807c67c9d0427dd5b5543a6400.tar.bz2
TomTom#batch: Populate WayCosts with distance & time from API
Look through the API response from `/batch` and extract the distance & time values given to us by TomTom. These are inserted in the `WayCost`s given to use in the argument to `#batch`. At the end, we get a list of `WayCost`s that are completely filled with distance & time values. We need to split up this code a bit to make it more testable, but already this seems to function correctly. Refs #6095
Diffstat (limited to 'lib/tom_tom.rb')
-rw-r--r--lib/tom_tom.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/tom_tom.rb b/lib/tom_tom.rb
index 58604c347..415bba54b 100644
--- a/lib/tom_tom.rb
+++ b/lib/tom_tom.rb
@@ -32,6 +32,21 @@ class TomTom
batchItems: batch_items
}.to_json
end
+
+ response = JSON.parse(response.body)
+
+ calculated_routes = response['batchItems']
+ calculated_routes.each_with_index do |route, i|
+ next if route['statusCode'] != 200
+
+ distance = route['response']['routes'][0]['summary']['lengthInMeters']
+ time = route['response']['routes'][0]['summary']['travelTimeInSeconds']
+
+ way_costs[i].distance = distance
+ way_costs[i].time = time
+ end
+
+ way_costs
end
def convert_way_costs_for_batch(way_costs)