diff --git a/routes/feature.js b/routes/feature.js index b1449cc..b7e0348 100644 --- a/routes/feature.js +++ b/routes/feature.js @@ -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); diff --git a/routes/member.js b/routes/member.js index 1f724b4..cfffaf8 100644 --- a/routes/member.js +++ b/routes/member.js @@ -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**