优化3D
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
#include <drogon/drogon.h>
|
||||
#include <nlohmann/json.hpp>
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@@ -139,23 +138,13 @@ int run_web_server(std::uint16_t port, const std::filesystem::path& asset_root)
|
||||
callback(error_response(drogon::k400BadRequest, "invalid data generation request"));
|
||||
return;
|
||||
}
|
||||
if (!input.contains("count") || !input["count"].is_number_unsigned()
|
||||
|| !input.contains("minimum") || !input["minimum"].is_number()
|
||||
|| !input.contains("maximum") || !input["maximum"].is_number()) {
|
||||
callback(error_response(drogon::k400BadRequest, "count, minimum and maximum are required"));
|
||||
return;
|
||||
}
|
||||
const auto count = input["count"].get<std::size_t>();
|
||||
const auto minimum = input["minimum"].get<double>();
|
||||
const auto maximum = input["maximum"].get<double>();
|
||||
if (count == 0 || count > 1'000'000 || !std::isfinite(minimum)
|
||||
|| !std::isfinite(maximum) || minimum >= maximum) {
|
||||
callback(error_response(drogon::k400BadRequest, "invalid count or range"));
|
||||
if (!input.is_object()) {
|
||||
callback(error_response(drogon::k400BadRequest, "data generation input must be an object"));
|
||||
return;
|
||||
}
|
||||
auto output = std::make_shared<std::function<void(const drogon::HttpResponsePtr&)>>(
|
||||
std::move(callback));
|
||||
plot->async_generate_data(count, minimum, maximum, [output](nlohmann::json result) {
|
||||
plot->async_generate_data(std::move(input), [output](nlohmann::json result) {
|
||||
(*output)(json_response(std::move(result)));
|
||||
});
|
||||
}, {drogon::Post});
|
||||
|
||||
Reference in New Issue
Block a user