Riegen in Abfrage der Mitglieder

This commit is contained in:
klaas 2025-03-15 23:28:29 +01:00
parent d54cf7cefd
commit 85f07108c1
2 changed files with 39 additions and 24 deletions

View File

@ -21,7 +21,7 @@ router.get("/:id?", requireAuth, async (req, res) => {
return res.json(result.rows[0]);
} else {
result = await pool.query(
"SELECT id, title FROM features ORDER BY datetime DESC"
"SELECT * FROM features ORDER BY datetime DESC"
);
return res.json(result.rows);
}
@ -70,7 +70,7 @@ router.put("/:id?", requireAuth, async (req, res) => {
[done, id]
);
} else {
if (!title || !body || !type || !urgency ) {
if (!title || !body || !type || !urgency) {
return res
.status(400)
.json({ error: "Alle Felder sind erforderlich" });
@ -104,12 +104,10 @@ router.put("/:id?", requireAuth, async (req, res) => {
[title, body, type, urgency, fid_user, datetime]
);
return res
.status(201)
.json({
message: "Feature erfolgreich angelegt",
feature: result.rows[0],
});
return res.status(201).json({
message: "Feature erfolgreich angelegt",
feature: result.rows[0],
});
}
} catch (err) {
console.error(err);

View File

@ -5,37 +5,54 @@ const { requireAuth, requireAdmin } = require("../middleware/auth"); // Auth-Mid
const router = express.Router();
router.get("/:id?", requireAuth, async (req, res) => {
const { id } = req.params;
const abteilung = req.abteilung;
const { id } = req.params; // Mitglieds-ID (optional)
const abteilung = req.abteilung; // Abteilung aus Middleware
try {
let query;
let values = [];
if (id) {
// **Ein einzelnes Mitglied abrufen**
if (abteilung) {
// Falls Abteilung gesetzt ist, prüfen ob das Mitglied dazugehört
// **Einzelnes Mitglied mit aktueller Riege abrufen**
query = `
SELECT m.*
FROM mitglieder m
JOIN abteilungszuordnung dm ON m.id = dm.fid_mitglied
WHERE m.id = $1 AND dm.fid_abteilung = $2
`;
SELECT
m.*,
r.id AS riegen_id,
r.fid_abteilung,
riegenzuordnung.von,
riegenzuordnung.bis
FROM mitglieder m
LEFT JOIN riegenzuordnung
ON m.id = riegenzuordnung.fid_mitglied
AND riegenzuordnung.bis IS NULL
LEFT JOIN riegen r
ON riegenzuordnung.fid_riege = r.id
WHERE m.id = $1 AND (r.fid_abteilung = $2 OR r.fid_abteilung IS NULL)
`;
values = [id, abteilung];
} else {
// Mitglied ohne Abteilungseinschränkung abrufen
query = `SELECT * FROM mitglieder WHERE id = $1`;
// **Einzelnes Mitglied ohne Riege abrufen**
query = `SELECT * FROM members WHERE id = $1`;
values = [id];
}
} else if (abteilung) {
// **Alle Mitglieder einer Abteilung abrufen**
query = `
SELECT m.*
FROM mitglieder m
JOIN abteilungszuordnung dm ON m.id = dm.fid_mitglied
WHERE dm.fid_abteilung = $1
`;
SELECT
m.*,
r.id AS riegen_id,
r.fid_abteilung,
riegenzuordnung.von,
riegenzuordnung.bis
FROM mitglieder m
LEFT JOIN riegenzuordnung
ON m.id = riegenzuordnung.fid_mitglied
AND riegenzuordnung.bis IS NULL
LEFT JOIN riegen r
ON riegenzuordnung.fid_riege = r.id
WHERE r.fid_abteilung = $1 OR r.fid_abteilung IS NULL
`;
values = [abteilung];
} else {
// **Alle Mitglieder abrufen**