Last fixes

This commit is contained in:
Marc 2025-04-28 22:48:15 +00:00
parent 7b4a5a5e38
commit b101cf0c85

137
index.js
View File

@ -297,7 +297,7 @@ const uploadPlayerImage = multer({ storage: playerStorage });
//Neues Bild zu den News hinzufügen //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) { if (!req.file) {
return res.status(400).send("Kein Bild hochgeladen"); 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 // Spieler für dieses Team holen
const playerResult = await pool.query(` 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 FROM players p
INNER JOIN player_teams pt ON p.id = pt.player_id INNER JOIN player_teams pt ON p.id = pt.player_id
WHERE pt.team_id = $1 WHERE pt.team_id = $1
@ -464,7 +464,7 @@ app.get("/api/players", async (req, res) => {
//Upload Player Image //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) { if (!req.file) {
return res.status(400).send("Kein Bild hochgeladen"); 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 // Server starten
app.listen(port, () => { app.listen(port, () => {