77import java .io .IOException ;
88import java .util .List ;
99import java .util .Set ;
10+ import java .util .Optional ;
1011import org .springframework .http .ResponseEntity ;
1112import org .springframework .web .bind .annotation .CrossOrigin ;
1213import org .springframework .web .bind .annotation .GetMapping ;
1314import org .springframework .web .bind .annotation .RestController ;
1415
1516@ RestController
17+ @ RequestMapping ("/items" )
1618@ CrossOrigin
1719public class MediaItemsController {
1820
@@ -24,11 +26,32 @@ public MediaItemsController(Library library) throws IOException {
2426 this .librarian = library .getLibrarians ().stream ().findFirst ().orElseThrow ();
2527 }
2628
27- @ GetMapping ("/items" )
28- public ResponseEntity <GetMediaItemsResponse > getItems () {
29+ @ GetMapping ()
30+ public ResponseEntity <GetMediaItemsResponse > getItemById () {
2931 Set <MediaItem > items = library .search (SearchCriteria .builder ().build ());
30- List <MediaItemResponse > responseItems = items .stream ().map (MediaItemResponse ::from ).toList ();
31- var response = GetMediaItemsResponse .builder ().items (responseItems ).build ();
32+ if (items .isEmpty ()) {
33+ ResponseEntity .noContent ();
34+ }
35+ }
3236 return ResponseEntity .ok (response );
3337 }
34- }
38+ @ GetMapping (value = "/{id}" )
39+ public ResponseEntity <MediaItemResponse > getItemById (@ PathVariable ("id" ) UUID id ) {
40+
41+ System .out .println (id .toString ());
42+
43+ Set <MediaItem > items = library .search (SearchCriteria .builder ().id (id .toString ()).build ());
44+ Optional <MediaItem > matchedItem =
45+ items .stream ().filter (item -> item .getId ().equals (id )).findFirst ();
46+ System .out .println ("items" );
47+ System .out .println (items );
48+ System .out .println (matchedItem );
49+ System .out .println ("mathcedItems" );
50+ return matchedItem
51+ .map (
52+ item -> {
53+ MediaItemResponse responseItem = MediaItemResponse .from (item );
54+ return ResponseEntity .ok (responseItem );
55+ })
56+ .orElse (ResponseEntity .notFound ().build ());
57+ }
0 commit comments