适配ClassworksKV

This commit is contained in:
SunWuyuan
2025-10-06 14:30:32 +08:00
parent 6cf67d17c6
commit 68d6582ae0
13 changed files with 835 additions and 1207 deletions
+8 -40
View File
@@ -7,18 +7,19 @@ const isValidProvider = () => {
return provider === "kv-server" || provider === "classworkscloud";
};
// Helper function to get request headers with site key and namespace password
// Helper function to get request headers with kvtoken
const getHeaders = () => {
const headers = { Accept: "application/json" };
const kvToken = getSetting("server.kvToken");
const siteKey = getSetting("server.siteKey");
const namespacePassword = getSetting("namespace.password");
if (siteKey) {
// 优先使用新的kvToken
if (kvToken) {
headers["x-app-token"] = kvToken;
} else if (siteKey) {
// 向后兼容旧的siteKey
headers["x-site-key"] = siteKey;
}
if (namespacePassword) {
headers["x-namespace-password"] = namespacePassword;
}
return headers;
};
@@ -33,10 +34,9 @@ export const getNamespaceInfo = async () => {
}
const serverUrl = getSetting("server.domain");
const machineId = getSetting("device.uuid");
try {
const response = await axios.get(`${serverUrl}/${machineId}/_info`, {
const response = await axios.get(`${serverUrl}/kv/_info`, {
headers: getHeaders(),
});
@@ -44,36 +44,4 @@ export const getNamespaceInfo = async () => {
} catch (error) {
throw new Error(error.response?.data?.message || "获取命名空间信息失败");
}
};
/**
* Update namespace password
* @param {string} oldPassword - Current password (if exists)
* @param {string} newPassword - New password to set
* @returns {Promise<Object>} Response data
*/
export const updateNamespacePassword = async (oldPassword, newPassword) => {
if (!isValidProvider()) {
throw new Error("当前数据提供者不支持此操作");
}
const serverUrl = getSetting("server.domain");
const machineId = getSetting("device.uuid");
try {
const response = await axios.put(
`${serverUrl}/${machineId}/_infopassword`,
{
oldPassword,
newPassword,
},
{
headers: getHeaders(),
}
);
return response.data;
} catch (error) {
throw new Error(error.response?.data?.message || "更新命名空间密码失败");
}
};