fix: handle empty playerId string in user edit API

This commit is contained in:
2026-03-31 16:44:26 -07:00
parent 33beed97c3
commit 1f9f708f19
+8 -4
View File
@@ -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 // Update the user
const user = await prisma.user.update({ const user = await prisma.user.update({
where: { id }, where: { id },
@@ -39,14 +43,14 @@ export async function PUT(
email: email || existingUser.email, email: email || existingUser.email,
name: name !== undefined ? name : existingUser.name, name: name !== undefined ? name : existingUser.name,
role: role || existingUser.role, role: role || existingUser.role,
playerId: playerId ? parseInt(playerId) : null, playerId: isValidPlayerId ? parsedPlayerId : null,
}, },
}); });
// Update the player's user relation if needed // Update the player's user relation if needed
if (playerId !== undefined) { if (playerId !== undefined) {
// First, remove user from any existing player // First, remove user from any existing player
if (existingUser.playerId && existingUser.playerId !== parseInt(playerId)) { if (existingUser.playerId && existingUser.playerId !== parsedPlayerId) {
await prisma.player.update({ await prisma.player.update({
where: { id: existingUser.playerId }, where: { id: existingUser.playerId },
data: { user: { disconnect: true } }, data: { user: { disconnect: true } },
@@ -54,9 +58,9 @@ export async function PUT(
} }
// Then, connect user to the new player // Then, connect user to the new player
if (playerId) { if (isValidPlayerId) {
await prisma.player.update({ await prisma.player.update({
where: { id: parseInt(playerId) }, where: { id: parsedPlayerId! },
data: { user: { connect: { id: user.id } } }, data: { user: { connect: { id: user.id } } },
}); });
} }