Skip to content

Commit 78af860

Browse files
committed
fix: makes all tests pass by changing how the POST,GET,GET:ID, and DELETE:ID methods work and catch errors. lesson_26 -JosephCaballero
1 parent c072e07 commit 78af860

File tree

1 file changed

+32
-17
lines changed

1 file changed

+32
-17
lines changed

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

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.codedifferently.lesson26.library.MediaItem;
66
import com.codedifferently.lesson26.library.search.SearchCriteria;
77
import java.io.IOException;
8+
import java.util.ArrayList;
89
import java.util.List;
910
import java.util.Optional;
1011
import java.util.Set;
@@ -65,33 +66,47 @@ public ResponseEntity<MediaItemResponse> getItemById(@PathVariable("id") UUID id
6566
}
6667

6768
@PostMapping()
68-
public ResponseEntity<?> postItems(@RequestBody(required = true) MediaItemRequest request) {
69-
MediaItem newMediaItem = MediaItemRequest.asMediaItem(request);
70-
71-
if (newMediaItem.getTitle() == null
72-
|| newMediaItem.getType() == null
73-
|| request.getType() == null) {
74-
75-
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(request);
69+
public ResponseEntity<?> postItems(@RequestBody CreateMediaItemRequest requestBody) {
70+
List<String> errorsList = new ArrayList<>();
71+
MediaItemRequest request = requestBody.getItem();
72+
if (requestBody.getItem() == null) {
73+
errorsList.add("Cannot enter null");
74+
} else {
75+
if ((request.getTitle() == null || request.getTitle().isBlank())
76+
&& (request.getType() == null || request.getType().isBlank())) {
77+
errorsList.add("title and type cannot be null or blank");
78+
} else {
79+
if (request.getTitle() == null || request.getTitle().isBlank()) {
80+
errorsList.add("title cannot be null or blank");
81+
} else {
82+
if (request.getType() == null || request.getType().isBlank()) {
83+
errorsList.add("type cannot be null or blank");
84+
}
85+
}
86+
}
7687
}
77-
88+
if (!errorsList.isEmpty()) {
89+
return ResponseEntity.status(HttpStatus.BAD_REQUEST)
90+
.body(
91+
new Object() {
92+
public final List<String> errors = errorsList;
93+
});
94+
}
95+
MediaItem newMediaItem = MediaItemRequest.asMediaItem(request);
7896
library.addMediaItem(newMediaItem, librarian);
79-
80-
return ResponseEntity.status(HttpStatus.CREATED).body(request);
97+
return ResponseEntity.ok(requestBody);
8198
}
8299

83100
@DeleteMapping(value = "/{id}")
84101
public ResponseEntity<Void> deleteItem(@PathVariable("id") UUID id) {
85-
Set<MediaItem> test1 = library.search(SearchCriteria.builder().id(id.toString()).build());
86-
102+
Set<MediaItem> test1 = library.search(SearchCriteria.builder().build());
87103
Set<MediaItem> item = library.search(SearchCriteria.builder().id(id.toString()).build());
88104
if (item.isEmpty()) {
89-
ResponseEntity.notFound().build();
90-
} else if (!test1.contains(item.iterator().next())) {
91-
ResponseEntity.notFound().build();
105+
return ResponseEntity.notFound().build();
106+
} else if (!test1.contains(item.iterator().next()) || item.iterator().next() == null) {
107+
return ResponseEntity.notFound().build();
92108
}
93109
library.removeMediaItem(id, librarian);
94-
// Set<MediaItem> libraryAltercation = library.search(SearchCriteria.builder().build());
95110
return ResponseEntity.noContent().build();
96111
}
97112
}

0 commit comments

Comments
 (0)