diff --git a/src/app/api/admin/users/[id]/route.ts b/src/app/api/admin/users/[id]/route.ts index c95d629..66451cb 100644 --- a/src/app/api/admin/users/[id]/route.ts +++ b/src/app/api/admin/users/[id]/route.ts @@ -32,6 +32,10 @@ export async function PUT( ); } + // Parse playerId - handle empty string case + const parsedPlayerId = playerId ? parseInt(playerId) : undefined; + const isValidPlayerId = parsedPlayerId !== undefined && !isNaN(parsedPlayerId); + // Update the user const user = await prisma.user.update({ where: { id }, @@ -39,14 +43,14 @@ export async function PUT( email: email || existingUser.email, name: name !== undefined ? name : existingUser.name, role: role || existingUser.role, - playerId: playerId ? parseInt(playerId) : null, + playerId: isValidPlayerId ? parsedPlayerId : null, }, }); // Update the player's user relation if needed if (playerId !== undefined) { // First, remove user from any existing player - if (existingUser.playerId && existingUser.playerId !== parseInt(playerId)) { + if (existingUser.playerId && existingUser.playerId !== parsedPlayerId) { await prisma.player.update({ where: { id: existingUser.playerId }, data: { user: { disconnect: true } }, @@ -54,9 +58,9 @@ export async function PUT( } // Then, connect user to the new player - if (playerId) { + if (isValidPlayerId) { await prisma.player.update({ - where: { id: parseInt(playerId) }, + where: { id: parsedPlayerId! }, data: { user: { connect: { id: user.id } } }, }); }