Achivements überarbeitet

This commit is contained in:
2025-09-15 20:23:20 +02:00
parent 7cce818932
commit ad6ba66220
6 changed files with 410 additions and 18 deletions

View File

@@ -866,12 +866,21 @@ router.post('/v1/private/create-time', requireApiKey, async (req, res) => {
}
// Zeit mit RFIDUID in die Tabelle einfügen (player_id wird automatisch durch Trigger gesetzt)
// Finde den Spieler mit dieser RFIDUID
const playerResult = await pool.query(
'SELECT id FROM players WHERE rfiduid = $1',
[rfiduid]
);
const player_id = playerResult.rows.length > 0 ? playerResult.rows[0].id : null;
console.log(`🔍 RFIDUID: ${rfiduid}, Player ID: ${player_id}`);
// Zeit mit RFIDUID in die Tabelle einfügen
const result = await pool.query(
`INSERT INTO times (rfiduid, location_id, recorded_time, created_at)
VALUES ($1, $2, $3, $4)
`INSERT INTO times (rfiduid, location_id, recorded_time, player_id, created_at)
VALUES ($1, $2, $3, $4, $5)
RETURNING id, player_id, created_at`,
[rfiduid, location_id, recorded_time, new Date()]
[rfiduid, location_id, recorded_time, player_id, new Date()]
);
// Achievement-Überprüfung nach Zeit-Eingabe (JavaScript)
@@ -905,10 +914,20 @@ router.post('/v1/private/create-time', requireApiKey, async (req, res) => {
const rank = rankResult.rows[0].rank;
// Hole Spielerdaten für WebSocket-Event
const playerResult = await pool.query(
`SELECT firstname, lastname FROM players WHERE id = $1`,
[result.rows[0].player_id]
);
const player = playerResult.rows[0];
const playerName = player ? `${player.firstname} ${player.lastname}` : 'Unbekannter Spieler';
// Sende WebSocket-Event an alle verbundenen Clients
io.emit('newTime', {
id: result.rows[0].id,
player_id: result.rows[0].player_id,
player_name: playerName,
rfiduid: rfiduid,
location_name: location.name,
recorded_time: recorded_time,