From 4d05a9c216dfb9a2ca5e26d53b7a08dd49a6fc23 Mon Sep 17 00:00:00 2001 From: Sdunsmore2006 Date: Mon, 25 Nov 2024 17:23:52 +0000 Subject: [PATCH 1/2] Adds Shawn-Lesson26 Api Editor --- .../lesson26/web/MediaItemRequest.java | 6 +- .../lesson26/web/MediaItemsController.java | 67 +++++++++++++++++-- 2 files changed, 67 insertions(+), 6 deletions(-) diff --git a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemRequest.java b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemRequest.java index 74552dbeb..b34aa055b 100644 --- a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemRequest.java +++ b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemRequest.java @@ -1,13 +1,15 @@ package com.codedifferently.lesson26.web; +import java.util.List; +import java.util.UUID; + import com.codedifferently.lesson26.library.Book; import com.codedifferently.lesson26.library.Dvd; import com.codedifferently.lesson26.library.Magazine; import com.codedifferently.lesson26.library.MediaItem; import com.codedifferently.lesson26.library.Newspaper; + import jakarta.validation.constraints.NotBlank; -import java.util.List; -import java.util.UUID; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java index a393a53b9..ab02d1f3d 100644 --- a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java +++ b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java @@ -1,16 +1,26 @@ package com.codedifferently.lesson26.web; -import com.codedifferently.lesson26.library.Librarian; -import com.codedifferently.lesson26.library.Library; -import com.codedifferently.lesson26.library.MediaItem; -import com.codedifferently.lesson26.library.search.SearchCriteria; import java.io.IOException; import java.util.List; import java.util.Set; +import java.util.UUID; + +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import com.codedifferently.lesson26.library.Librarian; +import com.codedifferently.lesson26.library.Library; +import com.codedifferently.lesson26.library.MediaItem; +import com.codedifferently.lesson26.library.search.SearchCriteria; + +import jakarta.validation.Valid; + @RestController @CrossOrigin public class MediaItemsController { @@ -29,4 +39,53 @@ public GetMediaItemsResponse getItems() { var response = GetMediaItemsResponse.builder().items(responseItems).build(); return response; } + + @GetMapping("/items/{id}") + public ResponseEntity getItemById(@PathVariable("id") UUID id){ + SearchCriteria searchCriteria = SearchCriteria.builder().id(id.toString()).build(); + + Set foundItem = library.search(searchCriteria); + + if (foundItem.isEmpty()){ + return ResponseEntity.notFound().build(); + } + + MediaItem item = foundItem.iterator().next(); + MediaItemResponse response = MediaItemResponse.from(item); + + return ResponseEntity.ok(response); + } + + @DeleteMapping("/items/{id}") + public ResponseEntity deleteItem(@PathVariable("id") UUID id){ + SearchCriteria searchCriteria = SearchCriteria.builder().id(id.toString()).build(); + + Set foundItem = library.search(searchCriteria); + + if (foundItem.isEmpty()){ + return ResponseEntity.notFound().build(); + } + + MediaItem item = foundItem.iterator().next(); + + library.removeMediaItem(item, librarian); + + return ResponseEntity.noContent().build(); + } + + + @PostMapping("/items") + public CreateMediaItemResponse addsItem(@Valid @RequestBody CreateMediaItemRequest request){ + + MediaItemRequest itemRequest = request.getItem(); + + MediaItem item = MediaItemRequest.asMediaItem(itemRequest); + + library.addMediaItem(item, librarian); + + CreateMediaItemResponse response = CreateMediaItemResponse.builder().item(getItemById(item.getId()).getBody()).build(); + + return response; + + } } From 26750bf6ca4cd79fca52bba1bce9021e785fd102 Mon Sep 17 00:00:00 2001 From: Sdunsmore2006 Date: Mon, 25 Nov 2024 18:07:03 +0000 Subject: [PATCH 2/2] Added ./gradlew :api_app:spotlessApply --- .../lesson26/web/MediaItemRequest.java | 6 ++-- .../lesson26/web/MediaItemsController.java | 28 ++++++++----------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemRequest.java b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemRequest.java index b34aa055b..74552dbeb 100644 --- a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemRequest.java +++ b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemRequest.java @@ -1,15 +1,13 @@ package com.codedifferently.lesson26.web; -import java.util.List; -import java.util.UUID; - import com.codedifferently.lesson26.library.Book; import com.codedifferently.lesson26.library.Dvd; import com.codedifferently.lesson26.library.Magazine; import com.codedifferently.lesson26.library.MediaItem; import com.codedifferently.lesson26.library.Newspaper; - import jakarta.validation.constraints.NotBlank; +import java.util.List; +import java.util.UUID; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java index ab02d1f3d..fd5d4b94b 100644 --- a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java +++ b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/MediaItemsController.java @@ -1,10 +1,14 @@ package com.codedifferently.lesson26.web; +import com.codedifferently.lesson26.library.Librarian; +import com.codedifferently.lesson26.library.Library; +import com.codedifferently.lesson26.library.MediaItem; +import com.codedifferently.lesson26.library.search.SearchCriteria; +import jakarta.validation.Valid; import java.io.IOException; import java.util.List; import java.util.Set; import java.util.UUID; - import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; @@ -14,13 +18,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import com.codedifferently.lesson26.library.Librarian; -import com.codedifferently.lesson26.library.Library; -import com.codedifferently.lesson26.library.MediaItem; -import com.codedifferently.lesson26.library.search.SearchCriteria; - -import jakarta.validation.Valid; - @RestController @CrossOrigin public class MediaItemsController { @@ -41,12 +38,12 @@ public GetMediaItemsResponse getItems() { } @GetMapping("/items/{id}") - public ResponseEntity getItemById(@PathVariable("id") UUID id){ + public ResponseEntity getItemById(@PathVariable("id") UUID id) { SearchCriteria searchCriteria = SearchCriteria.builder().id(id.toString()).build(); Set foundItem = library.search(searchCriteria); - if (foundItem.isEmpty()){ + if (foundItem.isEmpty()) { return ResponseEntity.notFound().build(); } @@ -57,12 +54,12 @@ public ResponseEntity getItemById(@PathVariable("id") UUID id } @DeleteMapping("/items/{id}") - public ResponseEntity deleteItem(@PathVariable("id") UUID id){ + public ResponseEntity deleteItem(@PathVariable("id") UUID id) { SearchCriteria searchCriteria = SearchCriteria.builder().id(id.toString()).build(); Set foundItem = library.search(searchCriteria); - if (foundItem.isEmpty()){ + if (foundItem.isEmpty()) { return ResponseEntity.notFound().build(); } @@ -73,9 +70,8 @@ public ResponseEntity deleteItem(@PathVariable("id") UUID id){ return ResponseEntity.noContent().build(); } - @PostMapping("/items") - public CreateMediaItemResponse addsItem(@Valid @RequestBody CreateMediaItemRequest request){ + public CreateMediaItemResponse addsItem(@Valid @RequestBody CreateMediaItemRequest request) { MediaItemRequest itemRequest = request.getItem(); @@ -83,9 +79,9 @@ public CreateMediaItemResponse addsItem(@Valid @RequestBody CreateMediaItemReque library.addMediaItem(item, librarian); - CreateMediaItemResponse response = CreateMediaItemResponse.builder().item(getItemById(item.getId()).getBody()).build(); + CreateMediaItemResponse response = + CreateMediaItemResponse.builder().item(getItemById(item.getId()).getBody()).build(); return response; - } }