Move MD logic in its own file

This commit is contained in:
Yves
2025-03-03 15:14:10 +01:00
parent 883a2be1e4
commit 35f1bb9942
2 changed files with 7 additions and 16 deletions

View File

@@ -195,28 +195,15 @@ void HttpServer::HandleGetLocalToken(const httplib::Request &req,
return;
}
if (!db->ExtensionIsLoaded("motherduck")) {
res.set_content("", "text/plain"); // UI expects an empty response if the
// extension is not loaded
return;
}
Connection connection{*db};
try {
auto token = GetMDToken(connection);
res.status = 200;
res.set_content(token, "text/plain");
} catch (std::exception &ex) {
if (StringUtil::Contains(
ex.what(), "GET_MD_TOKEN will be available after you connect")) {
// UI expects an empty response if MD isn't connected
res.status = 200;
res.set_content("", "text/plain");
} else {
res.status = 500;
res.set_content("Could not get token: " + std::string(ex.what()),
"text/plain");
}
res.status = 500;
res.set_content("Could not get token: " + std::string(ex.what()),
"text/plain");
}
}

View File

@@ -5,6 +5,10 @@
namespace duckdb {
std::string GetMDToken(Connection &connection) {
if (!IsMDConnected(connection)) {
return ""; // UI expects an empty response if MD isn't connected
}
auto query_res = connection.Query("CALL GET_MD_TOKEN()");
if (query_res->HasError()) {
query_res->ThrowError();