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
## Ü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

View File

@ -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