Skip to content

Commit 6c7697f

Browse files
committed
Handle admin product save errors
1 parent fa38ec5 commit 6c7697f

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

server.js

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3026,9 +3026,14 @@ app.get("/admin/products/new", requireAdmin, (req, res) => {
30263026
});
30273027

30283028
app.post("/admin/products/new", requireAdmin, withProductUploads, (req, res) => {
3029-
createProduct(db, productInputWithUploads(req));
3030-
setFlash(req, "success", "Produit créé.");
3031-
saveSessionAndRedirect(req, res, "/admin");
3029+
try {
3030+
createProduct(db, productInputWithUploads(req));
3031+
setFlash(req, "success", "Produit créé.");
3032+
return saveSessionAndRedirect(req, res, "/admin");
3033+
} catch (error) {
3034+
setFlash(req, "error", `Création impossible : ${error.message}`);
3035+
return saveSessionAndRedirect(req, res, "/admin/products/new");
3036+
}
30323037
});
30333038

30343039
app.get("/admin/products/:id/edit", requireAdmin, (req, res) => {
@@ -3046,13 +3051,18 @@ app.get("/admin/products/:id/edit", requireAdmin, (req, res) => {
30463051
});
30473052

30483053
app.post("/admin/products/:id/edit", requireAdmin, withProductUploads, (req, res) => {
3049-
const product = updateProduct(db, Number.parseInt(req.params.id, 10), productInputWithUploads(req));
3050-
if (!product) {
3051-
return res.status(404).render("not-found", { title: "Produit introuvable" });
3052-
}
3054+
try {
3055+
const product = updateProduct(db, Number.parseInt(req.params.id, 10), productInputWithUploads(req));
3056+
if (!product) {
3057+
return res.status(404).render("not-found", { title: "Produit introuvable" });
3058+
}
30533059

3054-
setFlash(req, "success", "Produit mis à jour.");
3055-
saveSessionAndRedirect(req, res, "/admin");
3060+
setFlash(req, "success", "Produit mis à jour.");
3061+
return saveSessionAndRedirect(req, res, "/admin");
3062+
} catch (error) {
3063+
setFlash(req, "error", `Mise à jour impossible : ${error.message}`);
3064+
return saveSessionAndRedirect(req, res, `/admin/products/${req.params.id}/edit`);
3065+
}
30563066
});
30573067

30583068
app.post("/admin/products/:id/delete", requireAdmin, (req, res) => {

0 commit comments

Comments
 (0)