diff --git a/index.js b/index.js index 795cd14..cac89cc 100644 --- a/index.js +++ b/index.js @@ -297,7 +297,7 @@ const uploadPlayerImage = multer({ storage: playerStorage }); //Neues Bild zu den News hinzufügen -app.post("/api/upload-news-image", upload.single("image"), (req, res) => { +app.post("/api/upload-news-image", uploadNewsImage.single("image"), (req, res) => { if (!req.file) { return res.status(400).send("Kein Bild hochgeladen"); } @@ -432,7 +432,7 @@ app.get("/api/teams/:id", async (req, res) => { // Spieler für dieses Team holen const playerResult = await pool.query(` - SELECT p.id, p.name, p.nickname, p.position, p.jersey_number + SELECT p.id, p.name, p.nickname, p.position, p.jersey_number, p.image_url FROM players p INNER JOIN player_teams pt ON p.id = pt.player_id WHERE pt.team_id = $1 @@ -464,7 +464,7 @@ app.get("/api/players", async (req, res) => { //Upload Player Image -app.post("/api/upload-player-image", upload.single("image"), (req, res) => { +app.post("/api/upload-player-image", uploadPlayerImage.single("image"), (req, res) => { if (!req.file) { return res.status(400).send("Kein Bild hochgeladen"); } @@ -473,6 +473,137 @@ app.post("/api/upload-player-image", upload.single("image"), (req, res) => { }); +//Spieler bearbeiten +// Spieler aktualisieren +app.put("/api/players/:id", async (req, res) => { + const { id } = req.params; + const { + name, + nickname, + birthdate, + position, + jersey_number, + favorite_food, + status, + image_url, + } = req.body; + + if (!name || !position) { + return res.status(400).send("Name und Position sind Pflichtfelder"); + } + + try { + const result = await pool.query( + `UPDATE players + SET + name = $1, + nickname = $2, + birthdate = $3, + position = $4, + jersey_number = $5, + favorite_food = $6, + status = $7, + image_url = $8 + WHERE id = $9 + RETURNING *`, + [ + name, + nickname || null, + birthdate || null, + position, + jersey_number ? Number(jersey_number) : null, + favorite_food || null, + status || "aktiv", + image_url || null, + id, + ] + ); + + if (result.rowCount === 0) { + return res.status(404).send("Spieler nicht gefunden"); + } + + res.json(result.rows[0]); + } catch (err) { + console.error("Fehler beim Aktualisieren des Spielers:", err); + res.status(500).send("Fehler beim Aktualisieren des Spielers"); + } +}); + + +//Einzelnen Spieler abrufen +// Einzelnen Spieler abrufen +app.get("/api/players/:id", async (req, res) => { + const { id } = req.params; + + try { + const result = await pool.query( + "SELECT * FROM players WHERE id = $1", + [id] + ); + + if (result.rowCount === 0) { + return res.status(404).send("Spieler nicht gefunden"); + } + + res.json(result.rows[0]); + } catch (err) { + console.error("Fehler beim Abrufen des Spielers:", err); + res.status(500).send("Fehler beim Abrufen des Spielers"); + } +}); + + +// Spieler aus einem Team entfernen +app.delete("/api/teams/:teamId/players/:playerId", async (req, res) => { + const { teamId, playerId } = req.params; + + try { + const result = await pool.query( + "DELETE FROM player_teams WHERE team_id = $1 AND player_id = $2", + [teamId, playerId] + ); + + if (result.rowCount === 0) { + return res.status(404).send("Spieler nicht im Team gefunden"); + } + + res.send("Spieler erfolgreich aus dem Team entfernt"); + } catch (err) { + console.error("Fehler beim Entfernen des Spielers:", err); + res.status(500).send("Fehler beim Entfernen des Spielers"); + } +}); + + +// Existierenden Spieler einem Team hinzufügen +app.post("/api/teams/:teamId/players", async (req, res) => { + const { teamId } = req.params; + const { playerId } = req.body; + + if (!playerId) { + return res.status(400).send("playerId ist erforderlich"); + } + + try { + const result = await pool.query( + "INSERT INTO player_teams (player_id, team_id) VALUES ($1, $2)", + [playerId, teamId] + ); + res.status(201).send("Spieler erfolgreich dem Team zugeordnet"); + } catch (err) { + if (err.code === "23505") { + return res.status(400).send("Spieler ist bereits im Team"); + } + console.error("Fehler beim Hinzufügen des Spielers zum Team:", err); + res.status(500).send("Fehler beim Hinzufügen des Spielers"); + } +}); + + + + + // Server starten app.listen(port, () => {