11package com .codedifferently .lesson26 .web ;
22
3+ import com .codedifferently .lesson26 .library .Librarian ;
4+ import com .codedifferently .lesson26 .library .Library ;
5+ import com .codedifferently .lesson26 .library .MediaItem ;
6+ import com .codedifferently .lesson26 .library .exceptions .MediaItemCheckedOutException ;
7+ import com .codedifferently .lesson26 .library .search .SearchCriteria ;
8+ import jakarta .validation .Valid ;
39import java .io .IOException ;
410import java .util .List ;
511import java .util .Set ;
612import java .util .UUID ;
7-
813import org .springframework .http .ResponseEntity ;
914import org .springframework .web .bind .annotation .CrossOrigin ;
1015import org .springframework .web .bind .annotation .DeleteMapping ;
1419import org .springframework .web .bind .annotation .RequestBody ;
1520import org .springframework .web .bind .annotation .RestController ;
1621
17- import com .codedifferently .lesson26 .library .Librarian ;
18- import com .codedifferently .lesson26 .library .Library ;
19- import com .codedifferently .lesson26 .library .MediaItem ;
20- import com .codedifferently .lesson26 .library .exceptions .MediaItemCheckedOutException ;
21- import com .codedifferently .lesson26 .library .search .SearchCriteria ;
22-
2322@ RestController
2423@ CrossOrigin
2524public class MediaItemsController {
@@ -41,7 +40,7 @@ public ResponseEntity<GetMediaItemsResponse> getItems() {
4140 }
4241
4342 @ GetMapping ("/items/{id}" )
44- public ResponseEntity <MediaItemResponse > getItemsById (@ PathVariable ("id" ) UUID id ) {
43+ public ResponseEntity <MediaItemResponse > getItemsById (@ Valid @ PathVariable ("id" ) UUID id ) {
4544 Set <MediaItem > items = library .search (SearchCriteria .builder ().id (id .toString ()).build ());
4645
4746 if (items .isEmpty ()) {
@@ -53,14 +52,15 @@ public ResponseEntity<MediaItemResponse> getItemsById(@PathVariable("id") UUID i
5352 }
5453
5554 @ PostMapping ("/items" )
56- public ResponseEntity <CreateMediaItemResponse > postItem (@ RequestBody CreateMediaItemRequest request ) {
55+ public ResponseEntity <CreateMediaItemResponse > postItem (
56+ @ Valid @ RequestBody CreateMediaItemRequest request ) {
5757 MediaItem newItem = MediaItemRequest .asMediaItem (request .getItem ());
5858
5959 library .addMediaItem (newItem , librarian );
6060
6161 MediaItemResponse itemResponse = MediaItemResponse .from (newItem );
6262 CreateMediaItemResponse response = CreateMediaItemResponse .builder ().item (itemResponse ).build ();
63-
63+
6464 return ResponseEntity .ok (response );
6565 }
6666
@@ -71,7 +71,7 @@ public ResponseEntity<Void> deleteItem(@PathVariable("id") UUID id) {
7171 if (items .isEmpty ()) {
7272 return ResponseEntity .notFound ().build ();
7373 }
74-
74+
7575 MediaItem itemToDelete = items .iterator ().next ();
7676
7777 try {
0 commit comments