Fix table response format to return null + double in seconds
This commit is contained in:
		
							parent
							
								
									8b50f48d8e
								
							
						
					
					
						commit
						4e9709d038
					
				| @ -36,21 +36,31 @@ class TableAPI final : public BaseAPI | |||||||
|                               const std::vector<PhantomNode> &phantoms, |                               const std::vector<PhantomNode> &phantoms, | ||||||
|                               util::json::Object &response) const |                               util::json::Object &response) const | ||||||
|     { |     { | ||||||
|  |         auto number_of_sources = parameters.sources.size(); | ||||||
|  |         auto number_of_destinations = parameters.destinations.size();; | ||||||
|  | 
 | ||||||
|         // symmetric case
 |         // symmetric case
 | ||||||
|         if (parameters.sources.empty()) |         if (parameters.sources.empty()) | ||||||
|         { |         { | ||||||
|             BOOST_ASSERT(parameters.destinations.empty()); |  | ||||||
|             response.values["sources"] = MakeWaypoints(phantoms); |             response.values["sources"] = MakeWaypoints(phantoms); | ||||||
|             response.values["destinations"] = MakeWaypoints(phantoms); |             number_of_sources = phantoms.size(); | ||||||
|             response.values["durations"] = MakeTable(durations, phantoms.size(), phantoms.size()); |  | ||||||
|         } |         } | ||||||
|         else |         else | ||||||
|         { |         { | ||||||
|             response.values["sources"] = MakeWaypoints(phantoms, parameters.sources); |             response.values["sources"] = MakeWaypoints(phantoms, parameters.sources); | ||||||
|             response.values["destinations"] = MakeWaypoints(phantoms, parameters.destinations); |  | ||||||
|             response.values["durations"] = |  | ||||||
|                 MakeTable(durations, parameters.sources.size(), parameters.destinations.size()); |  | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|  |         if (parameters.destinations.empty()) | ||||||
|  |         { | ||||||
|  |             response.values["destinations"] = MakeWaypoints(phantoms); | ||||||
|  |             number_of_destinations = phantoms.size(); | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |         { | ||||||
|  |             response.values["destinations"] = MakeWaypoints(phantoms, parameters.destinations); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         response.values["durations"] = MakeTable(durations, number_of_sources, number_of_destinations); | ||||||
|         response.values["code"] = "ok"; |         response.values["code"] = "ok"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -94,7 +104,15 @@ class TableAPI final : public BaseAPI | |||||||
|             util::json::Array json_row; |             util::json::Array json_row; | ||||||
|             auto row_begin_iterator = values.begin() + (row * number_of_columns); |             auto row_begin_iterator = values.begin() + (row * number_of_columns); | ||||||
|             auto row_end_iterator = values.begin() + ((row + 1) * number_of_columns); |             auto row_end_iterator = values.begin() + ((row + 1) * number_of_columns); | ||||||
|             json_row.values.insert(json_row.values.end(), row_begin_iterator, row_end_iterator); |             json_row.values.resize(number_of_columns); | ||||||
|  |             std::transform(row_begin_iterator, row_end_iterator, json_row.values.begin(), [](const EdgeWeight duration) | ||||||
|  |                 { | ||||||
|  |                   if (duration == INVALID_EDGE_WEIGHT) | ||||||
|  |                   { | ||||||
|  |                       return util::json::Value(util::json::Null()); | ||||||
|  |                   } | ||||||
|  |                   return util::json::Value(util::json::Number(duration / 10.)); | ||||||
|  |                 }); | ||||||
|             json_table.values.push_back(std::move(json_row)); |             json_table.values.push_back(std::move(json_row)); | ||||||
|         } |         } | ||||||
|         return json_table; |         return json_table; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user