Skip to content

Commit 9e4c030

Browse files
committed
fix: made changes to code to pass the failed test.
1 parent b1b236e commit 9e4c030

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package 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.search.SearchCriteria;
73
import java.io.IOException;
84
import java.util.List;
5+
import java.util.Optional;
96
import java.util.Set;
107
import java.util.UUID;
8+
119
import org.springframework.http.ResponseEntity;
1210
import org.springframework.web.bind.annotation.CrossOrigin;
1311
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -17,6 +15,13 @@
1715
import org.springframework.web.bind.annotation.RequestBody;
1816
import org.springframework.web.bind.annotation.RestController;
1917

18+
import com.codedifferently.lesson26.library.Librarian;
19+
import com.codedifferently.lesson26.library.Library;
20+
import com.codedifferently.lesson26.library.MediaItem;
21+
import com.codedifferently.lesson26.library.search.SearchCriteria;
22+
23+
import jakarta.validation.Valid;
24+
2025
@RestController
2126
@CrossOrigin
2227
public class MediaItemsController {
@@ -37,15 +42,20 @@ public GetMediaItemsResponse getItems() {
3742
}
3843

3944
@GetMapping("/items/{id}")
40-
public MediaItemResponse getItemById(@PathVariable("id") String id) {
45+
public ResponseEntity<MediaItemResponse> getItemById(@PathVariable("id") String id) {
4146
Set<MediaItem> items = library.search(SearchCriteria.builder().id(id).build());
42-
MediaItemResponse response =
43-
items.stream().map(MediaItemResponse::from).findFirst().orElseThrow();
44-
return response;
47+
Optional<MediaItemResponse> response =
48+
items.stream().map(MediaItemResponse::from).findFirst();
49+
50+
if (response.isPresent()){
51+
return ResponseEntity.ok(response.get());
52+
}
53+
54+
return ResponseEntity.notFound().build();
4555
}
4656

4757
@PostMapping("/items")
48-
public CreateMediaItemResponse postItems(@RequestBody CreateMediaItemRequest requestItem) {
58+
public CreateMediaItemResponse postItems(@Valid @RequestBody CreateMediaItemRequest requestItem) {
4959
MediaItemRequest itemMediaItemRequest = requestItem.getItem();
5060
MediaItem item = MediaItemRequest.asMediaItem(itemMediaItemRequest);
5161
library.addMediaItem(item, librarian);

0 commit comments

Comments
 (0)