41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
export async function createGroup(name: string) {
|
|
const res = await fetch('/api/groups', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ name }),
|
|
});
|
|
const data = await res.json();
|
|
if (!res.ok || data.error) throw new Error(data.error || 'Fehler beim Erstellen der Gruppe');
|
|
return data;
|
|
}
|
|
|
|
export async function fetchGroups() {
|
|
const res = await fetch('/api/groups');
|
|
const data = await res.json();
|
|
if (!res.ok || data.error) throw new Error(data.error || 'Fehler beim Laden der Gruppen');
|
|
return data;
|
|
}
|
|
|
|
export async function deleteGroup(groupName: string) {
|
|
const res = await fetch(`/api/groups/byname/${encodeURIComponent(groupName)}`, {
|
|
method: 'DELETE',
|
|
});
|
|
const data = await res.json();
|
|
if (!res.ok || data.error) throw new Error(data.error || 'Fehler beim Löschen der Gruppe');
|
|
return data;
|
|
}
|
|
|
|
export async function renameGroup(oldName: string, newName: string) {
|
|
const res = await fetch(`/api/groups/byname/${encodeURIComponent(oldName)}`, {
|
|
method: 'PUT',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ newName: newName }),
|
|
});
|
|
const data = await res.json();
|
|
if (!res.ok || data.error) throw new Error(data.error || 'Fehler beim Umbenennen der Gruppe');
|
|
return data;
|
|
}
|
|
|
|
// Hier kannst du später weitere Funktionen ergänzen:
|
|
// export async function updateGroup(id: number, name: string) { ... }
|