From 3d9c5a718452d628d50b2097c77b1b4b262078d5 Mon Sep 17 00:00:00 2001 From: Nate Wessel Date: Thu, 5 Oct 2023 16:27:49 -0400 Subject: [PATCH] Ensure JSON returns correct data types, correctly escaped (#81) * return numeric travel time (not string) * double quote strings for CSV, not for JSON --- backend/app/routes.py | 2 +- frontend/src/travelTimeQuery.js | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/backend/app/routes.py b/backend/app/routes.py index 5805e12..fd57cca 100644 --- a/backend/app/routes.py +++ b/backend/app/routes.py @@ -305,7 +305,7 @@ def aggregate_travel_times(start_node, end_node, start_time, end_time, start_dat connection.close() return jsonify({ - 'travel_time': travel_time, # may be null if insufficient data + 'travel_time': float(travel_time), # may be null if insufficient data 'route_text': stname, 'links': links }) diff --git a/frontend/src/travelTimeQuery.js b/frontend/src/travelTimeQuery.js index 4ae3997..bc40f65 100644 --- a/frontend/src/travelTimeQuery.js +++ b/frontend/src/travelTimeQuery.js @@ -48,17 +48,25 @@ export class TravelTimeQuery { resultsRecord(type='json'){ const record = { URI: this.URI, - corridor: `"${this.corridor.name}"`, - timeRange: `"${this.timeRange.name}"`, - dateRange: `"${this.dateRange.name}"`, - daysOfWeek: `"${this.days.name}"`, + corridor: this.corridor.name, + timeRange: this.timeRange.name, + dateRange: this.dateRange.name, + daysOfWeek: this.days.name, hoursInRange: this.hoursInRange, mean_travel_time_minutes: this.#travelTime } if(type=='json'){ return record }else if(type=='csv'){ - return Object.values(record).join(',') + return Object.values(record) + .map( value => { + + if(typeof value == 'string'){ + return `"${value}"` + } + return value + } ) + .join(',') } return 'invalid type requested' }