Änderung: Anpassung der TaxiHighscore-API und Verbesserung der Highscore-Anzeige im Taxi-Spiel

Änderungen:
- Umbenennung des API-Endpunkts für Highscores von `/api/taxi/highscore` zu `/api/taxi/highscores`.
- Anpassung der Highscore-Datenstruktur zur Verwendung von `hashedUserId` anstelle von `userId`.
- Erweiterung der Router-Logik zur besseren Organisation der Highscore-Abfragen.
- Implementierung einer neuen Highscore-Anzeige im Spiel, die die Top 20 Spieler und den aktuellen Spieler anzeigt.

Diese Anpassungen verbessern die API-Konsistenz und erweitern die Benutzeroberfläche für die Highscore-Anzeige im Spiel.
This commit is contained in:
Torsten Schulz (local)
2025-10-05 12:42:37 +02:00
parent 42349e46c8
commit 1bde46430b
6 changed files with 345 additions and 43 deletions

View File

@@ -17,7 +17,7 @@ class TaxiHighscoreController {
}
const highscoreData = {
userId: parseInt(userId),
hashedUserId: userId, // userId ist bereits ein String (Hash)
nickname,
passengersDelivered: parseInt(passengersDelivered),
playtime: parseInt(playtime),
@@ -75,18 +75,17 @@ class TaxiHighscoreController {
*/
async getUserBestScores(req, res) {
try {
const { userId } = req.params;
const { mapId } = req.query;
const { userId, mapId } = req.query;
if (!userId) {
return res.status(400).json({
success: false,
success: false,
message: 'userId ist erforderlich'
});
}
const bestScores = await taxiHighscoreService.getUserBestScores(
parseInt(userId),
userId, // userId ist bereits ein String (Hash)
mapId ? parseInt(mapId) : null
);
@@ -109,8 +108,7 @@ class TaxiHighscoreController {
*/
async getUserHighscores(req, res) {
try {
const { userId } = req.params;
const { limit = 20 } = req.query;
const { userId, limit = 20 } = req.query;
if (!userId) {
return res.status(400).json({
@@ -120,7 +118,7 @@ class TaxiHighscoreController {
}
const highscores = await taxiHighscoreService.getUserHighscores(
parseInt(userId),
userId, // userId ist bereits ein String (Hash)
parseInt(limit)
);
@@ -143,8 +141,7 @@ class TaxiHighscoreController {
*/
async getUserRank(req, res) {
try {
const { userId } = req.params;
const { mapId, orderBy = 'points' } = req.query;
const { userId, mapId, orderBy = 'points' } = req.query;
if (!userId) {
return res.status(400).json({
@@ -154,7 +151,7 @@ class TaxiHighscoreController {
}
const rank = await taxiHighscoreService.getUserRank(
parseInt(userId),
userId, // userId ist bereits ein String (Hash)
mapId ? parseInt(mapId) : null,
orderBy
);