tkd_neu/server/controllers/memberController.js

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 };