Abruf aller Mitglieder aller Abtelungen, README angepasst

This commit is contained in:
Klaas Börgmann 2024-09-25 14:59:58 +02:00
parent 4ed0a42681
commit 57870fd81f
2 changed files with 33 additions and 16 deletions

View File

@ -1,5 +1,4 @@
# Server README # Server README
## Übersicht ## Ü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. 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 ## Anforderungen
- Node.js (Version 14 oder höher) - 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/register`: Registrierung eines neuen Benutzers
- `/auth/login`: Anmeldung eines bestehenden Benutzers - `/auth/login`: Anmeldung eines bestehenden Benutzers
- `/auth/update`: Aktualisierung der Daten 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 - `/members/new`: Erstellung eines neuen Mitglieds
## Middleware ## Middleware

View File

@ -16,26 +16,34 @@ const allMembers = async (req, res) => {
try { try {
// Überprüfen, ob eine ID übergeben wurde // Überprüfen, ob eine ID übergeben wurde
if (!id) { if (id === undefined) {
return res.status(400).json({ message: "Abteilungs-ID fehlt" }); return res.status(400).json({ message: "Abteilungs-ID fehlt" });
} }
// Abfrage der Mitglieder basierend auf der Abteilungs-ID let allMembers;
const allMembers = await pool.query(
` // Wenn die ID -1 ist, gib alle Mitglieder zurück
SELECT m.* if (id === -1) {
FROM mitglieder m allMembers = await pool.query(`
JOIN Abteilungszuordnung az ON m.ID = az.FID_Mitglied SELECT m.*
WHERE az.FID_Abteilung = $1 FROM mitglieder m
`, `);
[id] } 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 // Wenn keine Mitglieder gefunden wurden
if (allMembers.rows.length === 0) { if (allMembers.rows.length === 0) {
return res return res.status(404).json({ message: "Keine Mitglieder gefunden" });
.status(404)
.json({ message: "Keine Mitglieder in dieser Abteilung gefunden" });
} }
// Erfolgreiche Antwort mit den Mitgliedern // Erfolgreiche Antwort mit den Mitgliedern