From 660c0cc6029f15a5bef33ab9718ade5b9b386de9 Mon Sep 17 00:00:00 2001 From: Denis Chaplygin Date: Mon, 16 Sep 2019 14:32:53 +0300 Subject: [PATCH] Implemented 'skip_waypoints' for the 'Table' service. --- include/engine/api/nearest_api.hpp | 2 +- include/engine/api/route_api.hpp | 1 + include/engine/api/table_api.hpp | 33 ++++++++++++++++++++++-------- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/include/engine/api/nearest_api.hpp b/include/engine/api/nearest_api.hpp index 525fa2dbe..7f2d519ca 100644 --- a/include/engine/api/nearest_api.hpp +++ b/include/engine/api/nearest_api.hpp @@ -2,11 +2,11 @@ #define ENGINE_API_NEAREST_API_HPP #include "engine/api/base_api.hpp" +#include "engine/api/base_result.hpp" #include "engine/api/nearest_parameters.hpp" #include "engine/api/json_factory.hpp" #include "engine/phantom_node.hpp" -#include "base_result.hpp" #include diff --git a/include/engine/api/route_api.hpp b/include/engine/api/route_api.hpp index ae6d394ee..ee1cd8d39 100644 --- a/include/engine/api/route_api.hpp +++ b/include/engine/api/route_api.hpp @@ -3,6 +3,7 @@ #include "extractor/maneuver_override.hpp" #include "engine/api/base_api.hpp" +#include "engine/api/base_result.hpp" #include "engine/api/json_factory.hpp" #include "engine/api/route_parameters.hpp" diff --git a/include/engine/api/table_api.hpp b/include/engine/api/table_api.hpp index 7b6cd1c48..bdb9db7a9 100644 --- a/include/engine/api/table_api.hpp +++ b/include/engine/api/table_api.hpp @@ -2,6 +2,7 @@ #define ENGINE_API_TABLE_HPP #include "engine/api/base_api.hpp" +#include "engine/api/base_result.hpp" #include "engine/api/json_factory.hpp" #include "engine/api/table_parameters.hpp" @@ -83,24 +84,32 @@ class TableAPI final : public BaseAPI flatbuffers::Offset>> sources; if (parameters.sources.empty()) { - sources = MakeWaypoints(fb_result, phantoms); + if (!parameters.skip_waypoints) { + sources = MakeWaypoints(fb_result, phantoms); + } number_of_sources = phantoms.size(); } else { - sources = MakeWaypoints(fb_result, phantoms, parameters.sources); + if (!parameters.skip_waypoints) { + sources = MakeWaypoints(fb_result, phantoms, parameters.sources); + } } flatbuffers::Offset>> destinations; if (parameters.destinations.empty()) { - destinations = MakeWaypoints(fb_result, phantoms); + if (!parameters.skip_waypoints) { + destinations = MakeWaypoints(fb_result, phantoms); + } number_of_destinations = phantoms.size(); } else { - destinations = MakeWaypoints(fb_result, phantoms, parameters.destinations); + if (!parameters.skip_waypoints) { + destinations = MakeWaypoints(fb_result, phantoms, parameters.destinations); + } } boost::optional>> durations = boost::none; @@ -162,22 +171,30 @@ class TableAPI final : public BaseAPI // symmetric case if (parameters.sources.empty()) { - response.values["sources"] = MakeWaypoints(phantoms); + if (!parameters.skip_waypoints) { + response.values["sources"] = MakeWaypoints(phantoms); + } number_of_sources = phantoms.size(); } else { - response.values["sources"] = MakeWaypoints(phantoms, parameters.sources); + if (!parameters.skip_waypoints) { + response.values["sources"] = MakeWaypoints(phantoms, parameters.sources); + } } if (parameters.destinations.empty()) { - response.values["destinations"] = MakeWaypoints(phantoms); + if (!parameters.skip_waypoints) { + response.values["destinations"] = MakeWaypoints(phantoms); + } number_of_destinations = phantoms.size(); } else { - response.values["destinations"] = MakeWaypoints(phantoms, parameters.destinations); + if (!parameters.skip_waypoints) { + response.values["destinations"] = MakeWaypoints(phantoms, parameters.destinations); + } } if (parameters.annotations & TableParameters::AnnotationsType::Duration)