@@ -3026,9 +3026,14 @@ app.get("/admin/products/new", requireAdmin, (req, res) => {
30263026} ) ;
30273027
30283028app . 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
30343039app . get ( "/admin/products/:id/edit" , requireAdmin , ( req , res ) => {
@@ -3046,13 +3051,18 @@ app.get("/admin/products/:id/edit", requireAdmin, (req, res) => {
30463051} ) ;
30473052
30483053app . 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
30583068app . post ( "/admin/products/:id/delete" , requireAdmin , ( req , res ) => {
0 commit comments