diff --git a/README.md b/README.md index 2fa4743..77bfc90 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ - # Server README ## Übersicht @@ -29,6 +28,16 @@ Mitglieder können ihre eigenen Daten bearbeiten und den eigenen Fortschritt anz Website mit Script zum erstellen der .env Datei sowie der Tabellen und eines Admin-Benutzers. +## Begriffe + +- Mitglied: Vereinsmitglied +- Teilnehmer: Teilnehmer_in einer Abteilung. Kann Mitglied sein oder zur Probe Teilnehmen. +- Abteilung: Sportstunde mit einem oder mehreren Trainingstagen. +- Riege: Unterteilung einer Abteilung, wird von einem Helfer geleitet. +- Helfer: Person, die Aufwärmen und Spiele leitet. +- Riegenleiter: Helfer, der eine Riege leitet. +- Leiter: Helfer, der eine Abteilung leitet (Übungsleiter_in) Eine Abteilung hat nur einen Leiter. + ## Anforderungen - Node.js (Version 14 oder höher) @@ -45,7 +54,7 @@ Website mit Script zum erstellen der .env Datei sowie der Tabellen und eines Adm - `/auth/register`: Registrierung eines neuen Benutzers - `/auth/login`: Anmeldung eines bestehenden Benutzers - `/auth/update`: Aktualisierung der Daten eines bestehenden Benutzers -- `/members/all`: Alle Mitglieder einer Abteilung +- `/members/all`: Alle Teilnehmer einer Abteilung ausgeben. Es muss eine Abteilungs-ID übergeben werden. Bei id = -1 werden alle Mitglieder zurückgegeben. - `/members/new`: Erstellung eines neuen Mitglieds ## Middleware diff --git a/server/controllers/memberController.js b/server/controllers/memberController.js index 956a189..b61a4f2 100644 --- a/server/controllers/memberController.js +++ b/server/controllers/memberController.js @@ -16,26 +16,34 @@ const allMembers = async (req, res) => { try { // Überprüfen, ob eine ID übergeben wurde - if (!id) { + if (id === undefined) { return res.status(400).json({ message: "Abteilungs-ID fehlt" }); } - // Abfrage der Mitglieder basierend auf der Abteilungs-ID - const allMembers = await pool.query( - ` - SELECT m.* - FROM mitglieder m - JOIN Abteilungszuordnung az ON m.ID = az.FID_Mitglied - WHERE az.FID_Abteilung = $1 - `, - [id] - ); + let allMembers; + + // Wenn die ID -1 ist, gib alle Mitglieder zurück + if (id === -1) { + allMembers = await pool.query(` + SELECT m.* + FROM mitglieder m + `); + } else { + // Andernfalls, gib Mitglieder der spezifischen Abteilung zurück + allMembers = await pool.query( + ` + SELECT m.* + FROM mitglieder m + JOIN Abteilungszuordnung az ON m.ID = az.FID_Mitglied + WHERE az.FID_Abteilung = $1 + `, + [id] + ); + } // Wenn keine Mitglieder gefunden wurden if (allMembers.rows.length === 0) { - return res - .status(404) - .json({ message: "Keine Mitglieder in dieser Abteilung gefunden" }); + return res.status(404).json({ message: "Keine Mitglieder gefunden" }); } // Erfolgreiche Antwort mit den Mitgliedern