Skip to content

Commit 20ac23b

Browse files
committed
chore: 2nd draft of HTTP methods
1 parent 37ecbc3 commit 20ac23b

File tree

1 file changed

+14
-26
lines changed

1 file changed

+14
-26
lines changed

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

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.springframework.web.bind.annotation.PathVariable;
1515
import org.springframework.web.bind.annotation.RestController;
1616
import org.springframework.web.bind.annotation.PostMapping;
17+
import org.springframework.web.bind.annotation.RequestBody;
1718

1819
@RestController
1920
@CrossOrigin
@@ -35,41 +36,28 @@ public GetMediaItemsResponse getItems() {
3536
}
3637

3738
@PostMapping("/items")
38-
public MediaItemResponse postItem() {
39-
//UUID id = UUID.randomUUID();
40-
MediaItemRequest newItem = CreateMediaItemRequest.builder()
41-
.id(UUID.randomUUID())
42-
.type("Book")
43-
.isbn("13")
44-
.title("The Fall of the House of Usher")
45-
.authors(new String[] {"Edgar Allan Poe"})
46-
.edition("1st Edition")
47-
.pages(25)
48-
.build();
49-
50-
CreateMediaItemRequest createRequest = CreateMediaItemRequest.builder()
51-
.item(newItem)
52-
.build();
53-
39+
public MediaItemResponse addItemById(@RequestBody CreateMediaItemRequest createRequest) {
40+
if (createRequest.getItem().getId() == null) {
41+
createRequest.getItem().setId(UUID.randomUUID());
42+
}
43+
5444
library.add(createRequest.getItem());
5545

5646
return MediaItemResponse.from(createRequest.getItem());
5747
}
5848

5949
@GetMapping("/items/:{id}")
60-
public GetMediaItemsResponse getItemById(@PathVariable("id") String id) {
61-
Set<MediaItem> item = library.search(SearchCriteria.builder().id(id).build());
62-
List<MediaItemResponse> responseItemById = item.stream().map(MediaItemResponse::from).toList();
63-
MediaItemResponse findItem = responseItemById.stream().findFirst().orElseThrow();
64-
var response = GetMediaItemsResponse.builder().item(responseItemById).build();
65-
return response;
50+
public MediaItemResponse getItemById(@PathVariable("id") UUID id) {
51+
MediaItem item = library.search(SearchCriteria.builder().id(id.toString()).build()).stream().findFirst().orElseThrow();
52+
53+
return MediaItemResponse.from(item);
6654
}
6755

6856
@DeleteMapping("/items/:{id}")
69-
public MediaItemResponse deleteItemById(@PathVariable("id") String id) {
70-
MediaItem itemToDelete = library.search(SearchCriteria.builder().id(id).build()).stream().findFirst().orElseThrow();
71-
72-
library.delete(itemToDelete);
57+
public MediaItemResponse deleteItemById(@PathVariable("id") UUID id) {
58+
MediaItem itemToDelete = library.search(SearchCriteria.builder().id(id.toString()).build()).stream().findFirst().orElseThrow();
59+
Librarian librarian = library.getLibrarians().stream().findFirst().orElseThrow();
60+
library.removeMediaItem(itemToDelete, librarian);
7361

7462
return MediaItemResponse.from(itemToDelete);
7563
}

0 commit comments

Comments
 (0)