Skip to content

Commit c072e07

Browse files
committed
fix: working through making the tests all pass. lesson_26 -JosephCaballero
1 parent 57b994b commit c072e07

File tree

1 file changed

+49
-35
lines changed

1 file changed

+49
-35
lines changed
Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +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.search.SearchCriteria;
37
import java.io.IOException;
48
import java.util.List;
59
import java.util.Optional;
610
import java.util.Set;
711
import java.util.UUID;
8-
12+
import org.springframework.http.HttpStatus;
913
import org.springframework.http.ResponseEntity;
1014
import org.springframework.web.bind.annotation.CrossOrigin;
1115
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -16,11 +20,6 @@
1620
import org.springframework.web.bind.annotation.RequestMapping;
1721
import org.springframework.web.bind.annotation.RestController;
1822

19-
import com.codedifferently.lesson26.library.Librarian;
20-
import com.codedifferently.lesson26.library.Library;
21-
import com.codedifferently.lesson26.library.MediaItem;
22-
import com.codedifferently.lesson26.library.search.SearchCriteria;
23-
2423
@RestController
2524
@RequestMapping("/items")
2625
@CrossOrigin
@@ -33,51 +32,66 @@ public MediaItemsController(Library library) throws IOException {
3332
this.librarian = library.getLibrarians().stream().findFirst().orElseThrow();
3433
}
3534

36-
37-
3835
@GetMapping()
39-
public ResponseEntity<GetMediaItemsResponse> getItemById() {
40-
Set<MediaItem> items = library.search(SearchCriteria.builder().build());
36+
public ResponseEntity<GetMediaItemsResponse> getItemById() {
37+
Set<MediaItem> items = library.search(SearchCriteria.builder().build());
38+
if (items.isEmpty()) {
39+
ResponseEntity.noContent();
40+
}
4141
List<MediaItemResponse> responseItems = items.stream().map(MediaItemResponse::from).toList();
4242
var response = GetMediaItemsResponse.builder().items(responseItems).build();
4343
return ResponseEntity.ok(response);
44-
}
45-
46-
@GetMapping(value = "/{id}")
47-
public ResponseEntity<MediaItemResponse> getItemById(@PathVariable("id") UUID id) {
48-
49-
System.out.println(id.toString());
44+
}
5045

46+
@GetMapping(value = "/{id}")
47+
public ResponseEntity<MediaItemResponse> getItemById(@PathVariable("id") UUID id) {
5148

52-
Set<MediaItem> items = library.search(SearchCriteria.builder().id(id.toString()).build());
49+
System.out.println(id.toString());
5350

54-
Optional<MediaItem> matchedItem = items.stream()
55-
.filter(item -> item.getId().equals(id))
56-
.findFirst();
57-
System.out.println("items");
58-
System.out.println(items);
59-
System.out.println(matchedItem);
60-
System.out.println("mathcedItems");
61-
return matchedItem.map(item -> {
62-
MediaItemResponse responseItem = MediaItemResponse.from(item);
63-
return ResponseEntity.ok(responseItem);
64-
}).orElse(ResponseEntity.notFound().build());
65-
}
51+
Set<MediaItem> items = library.search(SearchCriteria.builder().id(id.toString()).build());
52+
Optional<MediaItem> matchedItem =
53+
items.stream().filter(item -> item.getId().equals(id)).findFirst();
54+
System.out.println("items");
55+
System.out.println(items);
56+
System.out.println(matchedItem);
57+
System.out.println("mathcedItems");
58+
return matchedItem
59+
.map(
60+
item -> {
61+
MediaItemResponse responseItem = MediaItemResponse.from(item);
62+
return ResponseEntity.ok(responseItem);
63+
})
64+
.orElse(ResponseEntity.notFound().build());
65+
}
6666

6767
@PostMapping()
68-
public CreateMediaItemResponse postItems(@RequestBody MediaItemRequest request) {
68+
public ResponseEntity<?> postItems(@RequestBody(required = true) MediaItemRequest request) {
6969
MediaItem newMediaItem = MediaItemRequest.asMediaItem(request);
7070

71+
if (newMediaItem.getTitle() == null
72+
|| newMediaItem.getType() == null
73+
|| request.getType() == null) {
74+
75+
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(request);
76+
}
77+
7178
library.addMediaItem(newMediaItem, librarian);
7279

73-
MediaItemResponse responseItem = MediaItemResponse.from(newMediaItem);
74-
return CreateMediaItemResponse.builder().item(responseItem).build();
80+
return ResponseEntity.status(HttpStatus.CREATED).body(request);
7581
}
7682

7783
@DeleteMapping(value = "/{id}")
78-
public Set<MediaItem> deleteItem(@PathVariable("id") UUID id){
84+
public ResponseEntity<Void> deleteItem(@PathVariable("id") UUID id) {
85+
Set<MediaItem> test1 = library.search(SearchCriteria.builder().id(id.toString()).build());
86+
87+
Set<MediaItem> item = library.search(SearchCriteria.builder().id(id.toString()).build());
88+
if (item.isEmpty()) {
89+
ResponseEntity.notFound().build();
90+
} else if (!test1.contains(item.iterator().next())) {
91+
ResponseEntity.notFound().build();
92+
}
7993
library.removeMediaItem(id, librarian);
80-
Set<MediaItem> libraryAltercation = library.search(SearchCriteria.builder().build());
81-
return libraryAltercation;
94+
// Set<MediaItem> libraryAltercation = library.search(SearchCriteria.builder().build());
95+
return ResponseEntity.noContent().build();
8296
}
8397
}

0 commit comments

Comments
 (0)