Client: Kunden-Datenhaltung auf Server-REST-Endpunkte umgestellt
In-Memory-Datenhaltung (kundenDaten, getNewKundeId, addKunde, updateKunde, getKunden) aus kunde.ts entfernt. Die Kundenliste und das Formular nutzen jetzt fetchKunden/createKundeREST/updateKundeREST asynchron vom Server. projekt.ts, kontakt.ts, call_log.ts: getKunden() durch asynchrones fetchKunden() im oninit ersetzt, Kundenliste im Closure-State gehalten. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
1 parent
13eaaec9c1
commit
15d4e2ac48
5 files changed
+58
-78
No files matched your search
+3
-48
@@ -12,57 +12,11 @@ export interface iKunde {
|
||||
land: string
|
||||
}
|
||||
|
||||
/**
|
||||
* In-Memory-Datenspeicher für Kunden. Wird als Fallback solange verwendet,
|
||||
* bis die serverseitigen REST-Endpunkte verfügbar sind.
|
||||
*/
|
||||
export const kundenDaten: iKunde[] = [
|
||||
{id: 1, name: "Musterfirma GmbH", strasse: "Musterstraße 1", plz: "12345", ort: "Musterstadt", land: "Deutschland"},
|
||||
{id: 2, name: "Beispiel AG", strasse: "Beispielweg 2", plz: "54321", ort: "Beispielstadt", land: "Deutschland"},
|
||||
{id: 3, name: "Test Unternehmen", strasse: "Testallee 3", plz: "67890", ort: "Testdorf", land: "Österreich"}
|
||||
]
|
||||
|
||||
/**
|
||||
* Liefert die nächste freie Kunden-ID auf Basis des In-Memory-Speichers.
|
||||
* Sobald die serverseitige ID-Vergabe verfügbar ist, entfällt diese Funktion.
|
||||
*/
|
||||
export function getNewKundeId(): number {
|
||||
if (kundenDaten.length === 0) {
|
||||
return 1
|
||||
}
|
||||
return Math.max(...kundenDaten.map((kunde: iKunde) => kunde.id)) + 1
|
||||
}
|
||||
|
||||
/**
|
||||
* Fügt einen neuen Kunden dem In-Memory-Speicher hinzu.
|
||||
*/
|
||||
export function addKunde(kunde: iKunde): void {
|
||||
kundenDaten.push(kunde)
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualisiert einen bestehenden Kunden im In-Memory-Speicher.
|
||||
*/
|
||||
export function updateKunde(kunde: iKunde): void {
|
||||
const index = kundenDaten.findIndex((k: iKunde) => k.id === kunde.id)
|
||||
if (index !== -1) {
|
||||
kundenDaten[index] = kunde
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert eine Kopie aller Kunden aus dem In-Memory-Speicher.
|
||||
*/
|
||||
export function getKunden(): iKunde[] {
|
||||
return [...kundenDaten]
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* REST-API-Aufrufe (Client-Seite) */
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Die folgenden Funktionen kapseln die Kommunikation mit den */
|
||||
/* serverseitigen REST-Endpunkten. Die Endpunkte sind noch nicht */
|
||||
/* implementiert und werden später nachgereicht. */
|
||||
/* serverseitigen REST-Endpunkten (/xhr/kunde/*). */
|
||||
/* ------------------------------------------------------------------ */
|
||||
|
||||
/**
|
||||
@@ -92,7 +46,8 @@ export function fetchKundeById(id: number): Promise<iKunde> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt einen neuen Kunden serverseitig an.
|
||||
* Legt einen neuen Kunden serverseitig an. Die ID wird vom Server
|
||||
* vergeben und im zurückgegebenen Kundenobjekt gesetzt.
|
||||
*/
|
||||
export function createKundeREST(kunde: iKunde): Promise<iKunde> {
|
||||
return m.request({
|
||||
|
||||
Reference in new issue
Block a user