Skip to content

Commit 39380da

Browse files
fix: add @Valid annotation to fix NullPointerException on request
1 parent 5339835 commit 39380da

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
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.exceptions.MediaItemCheckedOutException;
7+
import com.codedifferently.lesson26.library.search.SearchCriteria;
8+
import jakarta.validation.Valid;
39
import java.io.IOException;
410
import java.util.List;
511
import java.util.Set;
612
import java.util.UUID;
7-
813
import org.springframework.http.ResponseEntity;
914
import org.springframework.web.bind.annotation.CrossOrigin;
1015
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -14,12 +19,6 @@
1419
import org.springframework.web.bind.annotation.RequestBody;
1520
import 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
2524
public 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

Comments
 (0)