added clear mount location

This commit is contained in:
Scott E. Graves 2025-03-24 13:00:55 -05:00
parent 89507bd0bd
commit 2496679165
2 changed files with 23 additions and 0 deletions

View File

@ -74,6 +74,9 @@ private:
[[nodiscard]] auto data_directory_exists(provider_type prov, [[nodiscard]] auto data_directory_exists(provider_type prov,
std::string_view name) const -> bool; std::string_view name) const -> bool;
void handle_delete_mount_location(const httplib::Request &req,
httplib::Response &res) const;
void handle_get_available_locations(httplib::Response &res) const; void handle_get_available_locations(httplib::Response &res) const;
void handle_get_mount(const httplib::Request &req, void handle_get_mount(const httplib::Request &req,

View File

@ -168,6 +168,10 @@ handlers::handlers(mgmt_app_config *config, httplib::Server *server)
: http_error_codes::internal_error; : http_error_codes::internal_error;
}); });
server->Delete("/api/v1/mount_location", [this](auto &&req, auto &&res) {
handle_delete_mount_location(req, res);
});
server->Get("/api/v1/locations", [this](auto && /* req */, auto &&res) { server->Get("/api/v1/locations", [this](auto && /* req */, auto &&res) {
handle_get_available_locations(res); handle_get_available_locations(res);
}); });
@ -298,6 +302,22 @@ auto handlers::data_directory_exists(provider_type prov,
return ret; return ret;
} }
void handlers::handle_delete_mount_location(const httplib::Request &req,
httplib::Response &res) const {
REPERTORY_USES_FUNCTION_NAME();
auto prov = provider_type_from_string(req.get_param_value("type"));
auto name = req.get_param_value("name");
if (not data_directory_exists(prov, name)) {
res.status = http_error_codes::not_found;
return;
}
config_->set_mount_location(prov, name, "");
res.status = http_error_codes::ok;
}
void handlers::handle_get_available_locations(httplib::Response &res) const { void handlers::handle_get_available_locations(httplib::Response &res) const {
#if defined(_WIN32) #if defined(_WIN32)
constexpr const std::array<std::string_view, 26U> letters{ constexpr const std::array<std::string_view, 26U> letters{