Skip to content

Commit c852b6d

Browse files
committed
feat: updated controller to conform with test cases requirements
1 parent c633f31 commit c852b6d

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

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

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,44 +38,53 @@ public GetMediaItemsResponse getItems() {
3838
}
3939

4040
@GetMapping("/items/{id}")
41-
public GetMediaItemsResponse getItem(@PathVariable UUID id) {
41+
public ResponseEntity<String> getItem(@PathVariable UUID id) {
4242
Set<MediaItem> items = library.search(SearchCriteria.builder().build());
43+
4344
List<MediaItemResponse> responseItem =
4445
items.stream()
4546
.map(MediaItemResponse::from) // Transform the original objects
4647
.filter(item -> item.getId().equals(id))
4748
.toList();
48-
var response = GetMediaItemsResponse.builder().items(responseItem).build();
49-
50-
return response;
49+
if (responseItem.size() == 0) {
50+
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
51+
}
52+
if (responseItem.size() >= 1)
53+
return ResponseEntity.status(HttpStatus.OK).body("media item found");
54+
else return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
5155
}
5256

5357
@DeleteMapping("/items/{id}")
54-
public ResponseEntity<Object> deleteItem(@PathVariable UUID id) {
58+
public ResponseEntity<Void> deleteItem(@PathVariable UUID id) {
5559
Set<MediaItem> items = library.search(SearchCriteria.builder().build());
5660
List<MediaItemResponse> itemToDelete =
5761
items.stream()
5862
.map(MediaItemResponse::from) // Transform the original objects
5963
.filter(item -> item.getId().equals(id))
6064
.toList();
65+
if (itemToDelete.isEmpty()) {
66+
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
67+
}
6168

6269
if (!itemToDelete.isEmpty()) {
6370
library.removeMediaItem(id, librarian);
64-
return ResponseEntity.status(HttpStatus.OK).body("media item deleted successfully");
71+
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
6572
}
66-
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Media deletion not successful");
73+
74+
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
6775
}
6876

6977
@PostMapping("/items")
70-
public ResponseEntity<Object> addItem(@RequestBody MediaItemRequest mediaItemRequest) {
71-
72-
MediaItem mediaItem = MediaItemRequest.asMediaItem(mediaItemRequest);
73-
library.addMediaItem(mediaItem, librarian);
74-
75-
if (null == mediaItem) {
76-
return ResponseEntity.status(HttpStatus.BAD_REQUEST)
77-
.body("media item creation not successful");
78+
public ResponseEntity<?> addsItem(@RequestBody CreateMediaItemRequest mediaItemRequest) {
79+
if (null == mediaItemRequest.getItem() || null == mediaItemRequest) {
80+
return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
7881
}
79-
return ResponseEntity.status(HttpStatus.CREATED).body("new media item created successfully");
82+
MediaItem mediaItem = MediaItemRequest.asMediaItem(mediaItemRequest.getItem());
83+
if (null == mediaItem || null == mediaItem.getTitle()) {
84+
return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
85+
}
86+
87+
library.addMediaItem(mediaItem, librarian);
88+
return ResponseEntity.status(HttpStatus.OK).body(mediaItemRequest);
8089
}
8190
}

0 commit comments

Comments
 (0)