diff --git a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/GetMediaItemsResponse.java b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/GetMediaItemsResponse.java index 0d167cdba..ce05b28cd 100644 --- a/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/GetMediaItemsResponse.java +++ b/lesson_26/api/java/api_app/src/main/java/com/codedifferently/lesson26/web/GetMediaItemsResponse.java @@ -1,6 +1,7 @@ package com.codedifferently.lesson26.web; import java.util.List; + import lombok.Builder; import lombok.Data; import lombok.Singular; 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 bbbc45e41..8462a84c9 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,17 +1,21 @@ 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 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.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; + @RestController @CrossOrigin public class MediaItemsController { @@ -31,4 +35,18 @@ public ResponseEntity getItems() { var response = GetMediaItemsResponse.builder().items(responseItems).build(); return ResponseEntity.ok(response); } + + @DeleteMapping("/items/{id}") + public ResponseEntity deleteItem(@PathVariable String id) { + Set items = library.search(SearchCriteria.builder().id(id).build()); + + if (items.isEmpty()) { + return ResponseEntity.notFound().build(); // Return 404 if item is not found + } + + MediaItem itemToDelete = items.iterator().next(); + library.removeMediaItem(itemToDelete, librarian); // Assuming there's a method to remove items in the library + + return ResponseEntity.noContent().build(); // Return 204 No Content if deletion is successful + } }