82 lines
2.3 KiB
JavaScript
82 lines
2.3 KiB
JavaScript
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 };
|