fix: group api
This commit is contained in:
@@ -1,11 +1,21 @@
|
|||||||
import apiClient from './index';
|
import apiClient from "./index";
|
||||||
import type { Group } from '../types/models';
|
import type { Group } from "../types/models";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取所有分组列表
|
* 获取所有分组列表
|
||||||
*/
|
*/
|
||||||
export const fetchGroups = (): Promise<Group[]> => {
|
export const fetchGroups = (): Promise<Group[]> => {
|
||||||
return apiClient.get('/groups').then(res => res.data.data);
|
return apiClient.get("/groups").then((res) => {
|
||||||
|
const groups = res.data.data;
|
||||||
|
// 将后端返回的 config 字符串解析为对象
|
||||||
|
return groups.map((group: any) => ({
|
||||||
|
...group,
|
||||||
|
config:
|
||||||
|
typeof group.config === "string"
|
||||||
|
? JSON.parse(group.config)
|
||||||
|
: group.config,
|
||||||
|
}));
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13,15 +23,40 @@ export const fetchGroups = (): Promise<Group[]> => {
|
|||||||
* @param id 分组ID
|
* @param id 分组ID
|
||||||
*/
|
*/
|
||||||
export const fetchGroup = (id: string): Promise<Group> => {
|
export const fetchGroup = (id: string): Promise<Group> => {
|
||||||
return apiClient.get(`/groups/${id}`).then(res => res.data.data);
|
return apiClient.get(`/groups/${id}`).then((res) => {
|
||||||
|
const group = res.data.data;
|
||||||
|
// 将后端返回的 config 字符串解析为对象
|
||||||
|
return {
|
||||||
|
...group,
|
||||||
|
config:
|
||||||
|
typeof group.config === "string"
|
||||||
|
? JSON.parse(group.config)
|
||||||
|
: group.config,
|
||||||
|
};
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建一个新的分组
|
* 创建一个新的分组
|
||||||
* @param groupData 新分组的数据
|
* @param groupData 新分组的数据
|
||||||
*/
|
*/
|
||||||
export const createGroup = (groupData: Omit<Group, 'id' | 'created_at' | 'updated_at' | 'api_keys'>): Promise<Group> => {
|
export const createGroup = (
|
||||||
return apiClient.post('/groups', groupData).then(res => res.data.data);
|
groupData: Omit<Group, "id" | "created_at" | "updated_at" | "api_keys">
|
||||||
|
): Promise<Group> => {
|
||||||
|
// 将 config 对象转换为 JSON 字符串,匹配后端期望的格式
|
||||||
|
const requestData = {
|
||||||
|
...groupData,
|
||||||
|
config:
|
||||||
|
typeof groupData.config === "object"
|
||||||
|
? JSON.stringify(groupData.config)
|
||||||
|
: groupData.config,
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log("createGroup - Original data:", groupData);
|
||||||
|
console.log("createGroup - Request data:", requestData);
|
||||||
|
console.log("createGroup - Config type:", typeof requestData.config);
|
||||||
|
|
||||||
|
return apiClient.post("/groups", requestData).then((res) => res.data.data);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,8 +64,23 @@ export const createGroup = (groupData: Omit<Group, 'id' | 'created_at' | 'update
|
|||||||
* @param id 分组ID
|
* @param id 分组ID
|
||||||
* @param groupData 要更新的数据
|
* @param groupData 要更新的数据
|
||||||
*/
|
*/
|
||||||
export const updateGroup = (id: string, groupData: Partial<Omit<Group, 'id' | 'created_at' | 'updated_at' | 'api_keys'>>): Promise<Group> => {
|
export const updateGroup = (
|
||||||
return apiClient.put(`/groups/${id}`, groupData).then(res => res.data.data);
|
id: string,
|
||||||
|
groupData: Partial<
|
||||||
|
Omit<Group, "id" | "created_at" | "updated_at" | "api_keys">
|
||||||
|
>
|
||||||
|
): Promise<Group> => {
|
||||||
|
// 将 config 对象转换为 JSON 字符串,匹配后端期望的格式
|
||||||
|
const requestData = {
|
||||||
|
...groupData,
|
||||||
|
config:
|
||||||
|
groupData.config && typeof groupData.config === "object"
|
||||||
|
? JSON.stringify(groupData.config)
|
||||||
|
: groupData.config,
|
||||||
|
};
|
||||||
|
return apiClient
|
||||||
|
.put(`/groups/${id}`, requestData)
|
||||||
|
.then((res) => res.data.data);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,5 +88,5 @@ export const updateGroup = (id: string, groupData: Partial<Omit<Group, 'id' | 'c
|
|||||||
* @param id 分组ID
|
* @param id 分组ID
|
||||||
*/
|
*/
|
||||||
export const deleteGroup = (id: string): Promise<void> => {
|
export const deleteGroup = (id: string): Promise<void> => {
|
||||||
return apiClient.delete(`/groups/${id}`).then(res => res.data);
|
return apiClient.delete(`/groups/${id}`).then((res) => res.data);
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user