mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-11 17:27:31 +02:00
Improve user update error handling for duplicate entries
Add specific error handling for duplicate username or email during user updates, returning 409 status codes and informative messages. Replit-Commit-Author: Agent Replit-Commit-Session-Id: a8a78c07-e900-425c-a577-5b4c5894379d Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/a8a78c07-e900-425c-a577-5b4c5894379d/vetH0Gp
This commit is contained in:
1 parent
98a3ae5009
commit
d85d62a5da
3 files changed
+199
-1
No files matched your search
+17
-1
@@ -954,11 +954,27 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
||||
const updatedUser = await storage.updateUser(req.params.id, userData);
|
||||
|
||||
res.json(updatedUser);
|
||||
} catch (error) {
|
||||
} catch (error: any) {
|
||||
console.error("Error updating user:", error);
|
||||
|
||||
if (error instanceof z.ZodError) {
|
||||
return res.status(400).json({ message: "Invalid user data", errors: error.errors });
|
||||
}
|
||||
|
||||
// Handle specific database constraint errors
|
||||
if (error.code === '23505') {
|
||||
if (error.constraint === 'users_username_key') {
|
||||
return res.status(409).json({
|
||||
message: "Un utilisateur avec ce nom d'utilisateur existe déjà. Veuillez choisir un autre nom d'utilisateur."
|
||||
});
|
||||
}
|
||||
if (error.constraint === 'users_email_key') {
|
||||
return res.status(409).json({
|
||||
message: "Un utilisateur avec cette adresse email existe déjà. Veuillez utiliser une autre adresse email ou laisser le champ vide."
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
res.status(500).json({ message: "Failed to update user" });
|
||||
}
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user