fix: handle empty playerId string in user edit API
This commit is contained in:
@@ -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 } } },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user