feat(workspace): add WorkspaceEdit and WorkspaceCreate pages
This commit is contained in:
@@ -64,3 +64,49 @@ export const deleteWorkspace = async (id: string): Promise<void> => {
|
||||
throw new Error('Failed to delete workspace');
|
||||
}
|
||||
};
|
||||
|
||||
export const fetchWorkspaceMemberships = async (workspaceId: string) => {
|
||||
const response = await authFetch(`/api/workspace-memberships/?workspace=${workspaceId}`);
|
||||
if (!response.ok) throw new Error("Failed to fetch workspace memberships");
|
||||
|
||||
const data = await response.json();
|
||||
return data.results || data;
|
||||
};
|
||||
|
||||
export const addWorkspaceMembership = async (data: { workspace: string; user: string; role: string }) => {
|
||||
const response = await authFetch(`/api/workspace-memberships/`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({}));
|
||||
throw new Error(errorData.error || JSON.stringify(errorData) || 'Failed to add workspace membership');
|
||||
}
|
||||
|
||||
return await response.json();
|
||||
};
|
||||
|
||||
export const removeWorkspaceMembership = async (membershipId: string): Promise<void> => {
|
||||
const response = await authFetch(`/api/workspace-memberships/${membershipId}/`, {
|
||||
method: 'DELETE',
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to remove workspace membership');
|
||||
}
|
||||
};
|
||||
|
||||
export const updateWorkspaceMembership = async (membershipId: string | number, data: { role: string }) => {
|
||||
const response = await authFetch(`/api/workspace-memberships/${membershipId}/`, {
|
||||
method: 'PATCH',
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({}));
|
||||
throw new Error(errorData.error || JSON.stringify(errorData) || 'Failed to update membership');
|
||||
}
|
||||
|
||||
return await response.json();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user