Files
ApiCore/ApiCore-Frontend/src/lib/queens/api.ts
T
Nick Szaunig 49ce23147c feat(frontend): Koeniginnen-Views (Modul 4)
/queens: Liste; /queens/new: Anlegeformular; /queens/[id]: Bearbeiten
(Zucht/Herkunft/Status/Notizen), "Volk zuweisen"-Dialog (nur ACTIVE
Voelker zur Auswahl) und Volk-Historie. Bearbeitungsformular initialisiert
Zustand direkt aus der geladenen Queen (gleiches Key-Reset-Pattern wie
bei Apiaries/Colonies).

Nav-Leiste und proxy.ts-Matcher um /queens erweitert.

10 Vitest-Tests, Lint, Typecheck und Build gruen. Kompletter Flow
(Anlegen, Volk zuweisen, Historie) live im Browser gegen den echten
Server verifiziert.
2026-08-21 18:35:33 +02:00

42 lines
1.1 KiB
TypeScript

import { apiFetch } from "@/lib/auth/api-client";
import {
AssignColonyInput,
CreateQueenInput,
Queen,
QueenColonyHistoryEntry,
UpdateQueenInput,
} from "./types";
export function fetchQueens(): Promise<Queen[]> {
return apiFetch<Queen[]>("/queens");
}
export function fetchQueen(id: string): Promise<Queen> {
return apiFetch<Queen>(`/queens/${id}`);
}
export function fetchQueenHistory(id: string): Promise<QueenColonyHistoryEntry[]> {
return apiFetch<QueenColonyHistoryEntry[]>(`/queens/${id}/history`);
}
export function createQueen(input: CreateQueenInput): Promise<Queen> {
return apiFetch<Queen>("/queens", {
method: "POST",
body: JSON.stringify(input),
});
}
export function updateQueen(id: string, input: UpdateQueenInput): Promise<Queen> {
return apiFetch<Queen>(`/queens/${id}`, {
method: "PATCH",
body: JSON.stringify(input),
});
}
export function assignQueenColony(id: string, input: AssignColonyInput): Promise<Queen> {
return apiFetch<Queen>(`/queens/${id}/assign-colony`, {
method: "POST",
body: JSON.stringify(input),
});
}