Adds a limit for number of results returned in Nearest service, resolves #2872

This commit is contained in:
Daniel J. Hofmann
2016-09-12 11:47:22 +02:00
committed by Moritz Kobitzsch
parent e6fe9d0d67
commit e3c1b133bf
8 changed files with 68 additions and 11 deletions
+12 -1
View File
@@ -16,13 +16,24 @@ namespace engine
namespace plugins
{
NearestPlugin::NearestPlugin(datafacade::BaseDataFacade &facade) : BasePlugin{facade} {}
NearestPlugin::NearestPlugin(datafacade::BaseDataFacade &facade, const int max_results_)
: BasePlugin{facade}, max_results{max_results_}
{
}
Status NearestPlugin::HandleRequest(const api::NearestParameters &params,
util::json::Object &json_result)
{
BOOST_ASSERT(params.IsValid());
if (params.number_of_results > max_results)
{
return Error("TooBig",
"Number of results " + std::to_string(params.number_of_results) +
" is higher than current maximum (" + std::to_string(max_results) + ")",
json_result);
}
if (!CheckAllCoordinates(params.coordinates))
return Error("InvalidOptions", "Coordinates are invalid", json_result);