适配ClassworksKV
This commit is contained in:
+8
-40
@@ -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 || "更新命名空间密码失败");
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user