Fix parameter parsing tests
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#include "server/api/parameters_parser.hpp"
|
||||
|
||||
#include "server/api/route_parameters_grammar.hpp"
|
||||
#include "server/api/table_parameter_grammar.hpp"
|
||||
|
||||
namespace osrm
|
||||
{
|
||||
namespace server
|
||||
{
|
||||
namespace api
|
||||
{
|
||||
|
||||
template<>
|
||||
boost::optional<engine::api::RouteParameters> parseParameters(std::string::iterator& iter, std::string::iterator end)
|
||||
{
|
||||
RouteParametersGrammar grammar;
|
||||
const auto result = boost::spirit::qi::parse(iter, end, grammar);
|
||||
|
||||
boost::optional<engine::api::RouteParameters> parameters;
|
||||
if (result && iter == end)
|
||||
{
|
||||
parameters = std::move(grammar.parameters);
|
||||
}
|
||||
|
||||
return parameters;
|
||||
}
|
||||
|
||||
template<>
|
||||
boost::optional<engine::api::TableParameters> parseParameters(std::string::iterator& iter, std::string::iterator end)
|
||||
{
|
||||
TableParametersGrammar grammar;
|
||||
const auto result = boost::spirit::qi::parse(iter, end, grammar);
|
||||
|
||||
boost::optional<engine::api::TableParameters> parameters;
|
||||
if (result && iter == end)
|
||||
{
|
||||
parameters = std::move(grammar.parameters);
|
||||
}
|
||||
|
||||
return parameters;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#include "server/api/route_parameters_parser.hpp"
|
||||
#include "server/api/route_parameters_grammar.hpp"
|
||||
|
||||
namespace osrm
|
||||
{
|
||||
namespace server
|
||||
{
|
||||
namespace api
|
||||
{
|
||||
|
||||
boost::optional<engine::api::RouteParameters> parseRouteParameters(std::string::iterator& iter, std::string::iterator end)
|
||||
{
|
||||
RouteParametersGrammar grammar;
|
||||
const auto result = boost::spirit::qi::parse(iter, end, grammar);
|
||||
|
||||
boost::optional<engine::api::RouteParameters> parameters;
|
||||
if (result && iter == end)
|
||||
{
|
||||
parameters = std::move(grammar.route_parameters);
|
||||
}
|
||||
|
||||
return parameters;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "server/service/route_service.hpp"
|
||||
|
||||
#include "engine/api/route_parameters.hpp"
|
||||
#include "server/api/route_parameters_parser.hpp"
|
||||
#include "server/api/parameters_parser.hpp"
|
||||
|
||||
#include "util/json_container.hpp"
|
||||
|
||||
@@ -55,7 +55,7 @@ engine::Status RouteService::RunQuery(std::vector<util::FixedPointCoordinate> co
|
||||
{
|
||||
|
||||
auto options_iterator = options.begin();
|
||||
auto parameters = api::parseRouteParameters(options_iterator, options.end());
|
||||
auto parameters = api::parseParameters<engine::api::RouteParameters>(options_iterator, options.end());
|
||||
if (!parameters || options_iterator != options.end())
|
||||
{
|
||||
const auto position = std::distance(options.begin(), options_iterator);
|
||||
|
||||
Reference in New Issue
Block a user