This commit is contained in:
2026-08-24 09:37:04 +08:00
parent 1d3847d454
commit 4f21169ade
42 changed files with 1371 additions and 833 deletions
+32 -1
View File
@@ -150,11 +150,42 @@ int run_web_server(std::uint16_t port, const std::filesystem::path& asset_root)
{"id", id}, {"title", id}, {"category", "Plots"}, {"description", ""},
{"dimension", id.starts_with("datoviz_") ? "3D" : "2D"}, {"websocket", "/ws/plot/" + id},
{"media", plot_media->at(id)},
{"schema", "/plot/" + id + "/schema"}});
{"schema", "/plot/" + id + "/schema"},
{"diagnostics", "/plot/" + id + "/diagnostics"}});
}
callback(json_response(std::move(result)));
}, {drogon::Get});
app.registerHandler("/plot/{1}/diagnostics", [plots](
const drogon::HttpRequestPtr& request,
std::function<void(const drogon::HttpResponsePtr&)>&& callback,
std::string plot_id) {
auto plot = find_plot(*plots, plot_id);
if (!plot) {
callback(error_response(drogon::k404NotFound, "unknown plot"));
return;
}
if (request->method() == drogon::Delete) {
plot->reset_diagnostics();
callback(json_response({{"success", true}}));
return;
}
callback(json_response(plot->diagnostics()));
}, {drogon::Get, drogon::Delete});
app.registerHandler("/gallery/{1}/diagnostics", [gallery_streams](
const drogon::HttpRequestPtr&,
std::function<void(const drogon::HttpResponsePtr&)>&& callback,
std::string group_id) {
const auto found = gallery_streams->find(group_id);
if (found == gallery_streams->end()) {
callback(error_response(drogon::k404NotFound,
"unknown gallery media group"));
return;
}
callback(json_response(found->second->diagnostics()));
}, {drogon::Get});
app.registerHandler("/plot/{1}/schema", [plots](
const drogon::HttpRequestPtr&,
std::function<void(const drogon::HttpResponsePtr&)>&& callback,