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) { 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] ); // Wenn keine Mitglieder gefunden wurden if (allMembers.rows.length === 0) { return res .status(404) .json({ message: "Keine Mitglieder in dieser Abteilung 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 };