@@ -29,7 +29,7 @@ exports.genre_detail = asyncHandler(async (req, res, next) => {
2929
3030 res . render ( "genre_detail" , {
3131 title : "Genre Detail" ,
32- genre : genre ,
32+ genre,
3333 genre_books : booksInGenre ,
3434 } ) ;
3535} ) ;
@@ -59,24 +59,24 @@ exports.genre_create_post = [
5959 // There are errors. Render the form again with sanitized values/error messages.
6060 res . render ( "genre_form" , {
6161 title : "Create Genre" ,
62- genre : genre ,
62+ genre,
6363 errors : errors . array ( ) ,
6464 } ) ;
6565 return ;
66+ }
67+
68+ // Data from form is valid.
69+ // Check if Genre with same name (case insensitive) already exists.
70+ const genreExists = await Genre . findOne ( { name : req . body . name } )
71+ . collation ( { locale : "en" , strength : 2 } )
72+ . exec ( ) ;
73+ if ( genreExists ) {
74+ // Genre exists, redirect to its detail page.
75+ res . redirect ( genreExists . url ) ;
6676 } else {
67- // Data from form is valid.
68- // Check if Genre with same name (case insensitive) already exists.
69- const genreExists = await Genre . findOne ( { name : req . body . name } )
70- . collation ( { locale : "en" , strength : 2 } )
71- . exec ( ) ;
72- if ( genreExists ) {
73- // Genre exists, redirect to its detail page.
74- res . redirect ( genreExists . url ) ;
75- } else {
76- await genre . save ( ) ;
77- // New genre saved. Redirect to genre detail page.
78- res . redirect ( genre . url ) ;
79- }
77+ await genre . save ( ) ;
78+ // New genre saved. Redirect to genre detail page.
79+ res . redirect ( genre . url ) ;
8080 }
8181 } ) ,
8282] ;
@@ -95,7 +95,7 @@ exports.genre_delete_get = asyncHandler(async (req, res, next) => {
9595
9696 res . render ( "genre_delete" , {
9797 title : "Delete Genre" ,
98- genre : genre ,
98+ genre,
9999 genre_books : booksInGenre ,
100100 } ) ;
101101} ) ;
@@ -112,15 +112,15 @@ exports.genre_delete_post = asyncHandler(async (req, res, next) => {
112112 // Genre has books. Render in same way as for GET route.
113113 res . render ( "genre_delete" , {
114114 title : "Delete Genre" ,
115- genre : genre ,
115+ genre,
116116 genre_books : booksInGenre ,
117117 } ) ;
118118 return ;
119- } else {
120- // Genre has no books. Delete object and redirect to the list of genres.
121- await Genre . findByIdAndDelete ( req . body . id ) ;
122- res . redirect ( "/catalog/genres" ) ;
123119 }
120+
121+ // Genre has no books. Delete object and redirect to the list of genres.
122+ await Genre . findByIdAndDelete ( req . body . id ) ;
123+ res . redirect ( "/catalog/genres" ) ;
124124} ) ;
125125
126126// Display Genre update form on GET.
@@ -134,7 +134,7 @@ exports.genre_update_get = asyncHandler(async (req, res, next) => {
134134 return next ( err ) ;
135135 }
136136
137- res . render ( "genre_form" , { title : "Update Genre" , genre : genre } ) ;
137+ res . render ( "genre_form" , { title : "Update Genre" , genre } ) ;
138138} ) ;
139139
140140// Handle Genre update on POST.
@@ -160,14 +160,14 @@ exports.genre_update_post = [
160160 // There are errors. Render the form again with sanitized values and error messages.
161161 res . render ( "genre_form" , {
162162 title : "Update Genre" ,
163- genre : genre ,
163+ genre,
164164 errors : errors . array ( ) ,
165165 } ) ;
166166 return ;
167- } else {
168- // Data from form is valid. Update the record.
169- await Genre . findByIdAndUpdate ( req . params . id , genre ) ;
170- res . redirect ( genre . url ) ;
171167 }
168+
169+ // Data from form is valid. Update the record.
170+ await Genre . findByIdAndUpdate ( req . params . id , genre ) ;
171+ res . redirect ( genre . url ) ;
172172 } ) ,
173173] ;
0 commit comments