11package com .codedifferently .lesson23 .web ;
22
3+ import com .codedifferently .lesson23 .library .Librarian ;
4+ import com .codedifferently .lesson23 .library .Library ;
5+ import com .codedifferently .lesson23 .library .MediaItem ;
6+ import com .codedifferently .lesson23 .library .exceptions .MediaItemCheckedOutException ;
7+ import com .codedifferently .lesson23 .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 .HttpStatus ;
914import org .springframework .http .ResponseEntity ;
1015import org .springframework .web .bind .annotation .CrossOrigin ;
1520import org .springframework .web .bind .annotation .RequestBody ;
1621import org .springframework .web .bind .annotation .RestController ;
1722
18- import com .codedifferently .lesson23 .library .Librarian ;
19- import com .codedifferently .lesson23 .library .Library ;
20- import com .codedifferently .lesson23 .library .MediaItem ;
21- import com .codedifferently .lesson23 .library .exceptions .MediaItemCheckedOutException ;
22- import com .codedifferently .lesson23 .library .search .SearchCriteria ;
23-
24- import jakarta .validation .Valid ;
25-
2623@ RestController
2724@ CrossOrigin
2825public class MediaItemsController {
@@ -47,21 +44,22 @@ public ResponseEntity<GetMediaItemsResponse> getItems() {
4744 public ResponseEntity <MediaItemResponse > getItem (@ PathVariable String id ) {
4845 UUID itemId = UUID .fromString (id );
4946 Set <MediaItem > items = library .search (SearchCriteria .builder ().id (itemId .toString ()).build ());
50-
47+
5148 if (items .isEmpty ()) {
5249 return ResponseEntity .notFound ().build ();
5350 }
54-
51+
5552 MediaItem item = items .iterator ().next ();
5653 MediaItemResponse response = MediaItemResponse .from (item );
5754 return ResponseEntity .ok (response );
5855 }
5956
6057 @ PostMapping ("/items" )
61- public ResponseEntity <CreateMediaItemResponse > createItem (@ Valid @ RequestBody CreateMediaItemRequest request ) {
58+ public ResponseEntity <CreateMediaItemResponse > createItem (
59+ @ Valid @ RequestBody CreateMediaItemRequest request ) {
6260 MediaItem mediaItem = MediaItemRequest .asMediaItem (request .getItem ());
6361 library .addMediaItem (mediaItem , librarian );
64-
62+
6563 MediaItemResponse responseItem = MediaItemResponse .from (mediaItem );
6664 CreateMediaItemResponse response = CreateMediaItemResponse .builder ().item (responseItem ).build ();
6765 return ResponseEntity .ok (response );
@@ -70,19 +68,16 @@ public ResponseEntity<CreateMediaItemResponse> createItem(@Valid @RequestBody Cr
7068 @ DeleteMapping ("/items/{id}" )
7169 public ResponseEntity <Void > deleteItem (@ PathVariable String id ) {
7270 UUID itemId = UUID .fromString (id );
73-
71+
7472 if (!library .hasMediaItem (itemId )) {
7573 return ResponseEntity .notFound ().build ();
7674 }
77-
75+
7876 try {
7977 library .removeMediaItem (itemId , librarian );
8078 return ResponseEntity .noContent ().build ();
8179 } catch (MediaItemCheckedOutException e ) {
8280 return ResponseEntity .status (HttpStatus .CONFLICT ).build ();
8381 }
8482 }
85-
86- }
87-
88-
83+ }
0 commit comments