🔧 Fix settings modal: Load current user preferences
- Added show_in_leaderboard to user-player API response - Improved loadSettings() function with better error handling - Added console logging for debugging - Settings modal now shows current user preference instead of always 'off' - Fixed dependency on currentPlayerId (now uses currentUser.id directly)
This commit is contained in:
@@ -1256,7 +1256,7 @@ router.get('/v1/public/user-player/:supabase_user_id', async (req, res) => {
|
||||
|
||||
try {
|
||||
const result = await pool.query(
|
||||
'SELECT id, firstname, lastname, birthdate, rfiduid FROM players WHERE supabase_user_id = $1',
|
||||
'SELECT id, firstname, lastname, birthdate, rfiduid, show_in_leaderboard FROM players WHERE supabase_user_id = $1',
|
||||
[supabase_user_id]
|
||||
);
|
||||
|
||||
@@ -2915,14 +2915,14 @@ router.get('/achievements/leaderboard', async (req, res) => {
|
||||
router.post('/v1/public/update-player-settings', async (req, res) => {
|
||||
try {
|
||||
const { player_id, show_in_leaderboard } = req.body;
|
||||
|
||||
|
||||
if (!player_id) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: 'Player ID ist erforderlich'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Update player settings
|
||||
const updateQuery = `
|
||||
UPDATE players
|
||||
@@ -2930,22 +2930,22 @@ router.post('/v1/public/update-player-settings', async (req, res) => {
|
||||
WHERE id = $2
|
||||
RETURNING id, firstname, lastname, show_in_leaderboard
|
||||
`;
|
||||
|
||||
|
||||
const result = await pool.query(updateQuery, [show_in_leaderboard || false, player_id]);
|
||||
|
||||
|
||||
if (result.rows.length === 0) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: 'Spieler nicht gefunden'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: 'Einstellungen erfolgreich aktualisiert',
|
||||
data: result.rows[0]
|
||||
});
|
||||
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error updating player settings:', error);
|
||||
res.status(500).json({
|
||||
@@ -2959,14 +2959,14 @@ router.post('/v1/public/update-player-settings', async (req, res) => {
|
||||
router.post('/v1/private/update-player-settings', requireApiKey, async (req, res) => {
|
||||
try {
|
||||
const { player_id, show_in_leaderboard } = req.body;
|
||||
|
||||
|
||||
if (!player_id) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: 'Player ID ist erforderlich'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Update player settings
|
||||
const updateQuery = `
|
||||
UPDATE players
|
||||
@@ -2974,22 +2974,22 @@ router.post('/v1/private/update-player-settings', requireApiKey, async (req, res
|
||||
WHERE id = $2
|
||||
RETURNING id, firstname, lastname, show_in_leaderboard
|
||||
`;
|
||||
|
||||
|
||||
const result = await pool.query(updateQuery, [show_in_leaderboard || false, player_id]);
|
||||
|
||||
|
||||
if (result.rows.length === 0) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: 'Spieler nicht gefunden'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: 'Einstellungen erfolgreich aktualisiert',
|
||||
data: result.rows[0]
|
||||
});
|
||||
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error updating player settings:', error);
|
||||
res.status(500).json({
|
||||
|
||||
Reference in New Issue
Block a user