import m from "mithril" /** * Datenmodell für einen Kunden. */ export interface iKunde { id: number name: string strasse: string plz: string ort: string land: string } /* ------------------------------------------------------------------ */ /* REST-API-Aufrufe (Client-Seite) */ /* ------------------------------------------------------------------ */ /* Die folgenden Funktionen kapseln die Kommunikation mit den */ /* serverseitigen REST-Endpunkten (/xhr/kunde/*). */ /* ------------------------------------------------------------------ */ /** * Basis-Pfad der Kunden-REST-Endpunkte. */ const KUNDE_REST_BASE = "/xhr/kunde" /** * Lädt die Kundenliste vom Server. */ export function fetchKunden(): Promise { return m.request({ method: "GET", url: KUNDE_REST_BASE + "/list" }).then((result) => result as iKunde[]) } /** * Lädt einen einzelnen Kunden anhand seiner ID vom Server. */ export function fetchKundeById(id: number): Promise { return m.request({ method: "GET", url: KUNDE_REST_BASE + "/get", params: {id: id} }).then((result) => result as iKunde) } /** * Legt einen neuen Kunden serverseitig an. Die ID wird vom Server * vergeben und im zurückgegebenen Kundenobjekt gesetzt. */ export function createKundeREST(kunde: iKunde): Promise { return m.request({ method: "POST", url: KUNDE_REST_BASE + "/create", body: kunde }).then((result) => result as iKunde) } /** * Aktualisiert einen bestehenden Kunden serverseitig. */ export function updateKundeREST(kunde: iKunde): Promise { return m.request({ method: "PUT", url: KUNDE_REST_BASE + "/update", body: kunde }).then((result) => result as iKunde) } /** * Löscht einen Kunden serverseitig anhand seiner ID. */ export function deleteKundeREST(id: number): Promise { return m.request({ method: "DELETE", url: KUNDE_REST_BASE + "/delete", params: {id: id} }).then(() => undefined) }