diff --git a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java index bbbc45e41..4ec2cb2c9 100644 --- a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java +++ b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java @@ -7,12 +7,14 @@ import java.io.IOException; import java.util.List; import java.util.Set; +import java.util.Optional; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController +@RequestMapping("/items") @CrossOrigin public class MediaItemsController { @@ -24,11 +26,32 @@ public MediaItemsController(Library library) throws IOException { this.librarian = library.getLibrarians().stream().findFirst().orElseThrow(); } - @GetMapping("/items") - public ResponseEntity getItems() { + @GetMapping() + public ResponseEntity getItemById() { Set items = library.search(SearchCriteria.builder().build()); - List responseItems = items.stream().map(MediaItemResponse::from).toList(); - var response = GetMediaItemsResponse.builder().items(responseItems).build(); + if (items.isEmpty()) { + ResponseEntity.noContent(); + } + } return ResponseEntity.ok(response); } -} +@GetMapping(value = "/{id}") + public ResponseEntity getItemById(@PathVariable("id") UUID id) { + + System.out.println(id.toString()); + + Set items = library.search(SearchCriteria.builder().id(id.toString()).build()); + Optional matchedItem = + items.stream().filter(item -> item.getId().equals(id)).findFirst(); + System.out.println("items"); + System.out.println(items); + System.out.println(matchedItem); + System.out.println("mathcedItems"); + return matchedItem + .map( + item -> { + MediaItemResponse responseItem = MediaItemResponse.from(item); + return ResponseEntity.ok(responseItem); + }) + .orElse(ResponseEntity.notFound().build()); + }