const bcrypt = require("bcryptjs"); const jwt = require("jsonwebtoken"); const { Pool } = require("pg"); // Datenbankverbindung const pool = new Pool({ user: process.env.DB_USER, host: process.env.DB_HOST, database: process.env.DB_NAME, password: process.env.DB_PASSWORD, port: 5432, }); const allMembers = async (req, res) => { const { id } = req.body; // Abteilungs-ID aus dem Request-Body try { // Überprüfen, ob eine ID übergeben wurde if (id === undefined) { return res.status(400).json({ message: "Abteilungs-ID fehlt" }); } 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 gefunden" }); } // Erfolgreiche Antwort mit den Mitgliedern res.status(200).json({ members: allMembers.rows }); } catch (err) { res.status(500).json({ message: "Fehler beim Abrufen der Mitglieder", error: err.message, }); } }; const newMember = async (req, res) => { const { vorname, nachname, geburtsdatum, abteilung, adresse, probe } = req.body; try { const newMember = await pool.query( "INSERT INTO mitglieder (vorname, nachname, geburtsdatum, adresse, probe) VALUES ($1, $2, $3, $4, $5) RETURNING id", [vorname, nachname, geburtsdatum, adresse, probe] ); const intoAbt = await pool.query( "INSERT INTO Abteilungszuordnung (FID_Mitglied, FID_Abteilung) VALUES ($1, $2)", [newMember.rows[0].id, abteilung] ); res .status(201) .json({ message: "Mitglied erstellt", member: newMember.rows[0] }); } catch (err) { res.status(500).json({ message: "Fehler beim Erstellen des Mitglieds", error: err.message, }); } }; module.exports = { allMembers, newMember };