Skip to content

Commit 426b05c

Browse files
committed
chore: add @dDeleteMapping request.
1 parent 9de33c4 commit 426b05c

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.codedifferently.lesson26.web;
22

33
import java.util.List;
4+
45
import lombok.Builder;
56
import lombok.Data;
67
import lombok.Singular;

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

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
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;
73
import java.io.IOException;
84
import java.util.List;
95
import java.util.Set;
6+
107
import org.springframework.http.ResponseEntity;
118
import org.springframework.web.bind.annotation.CrossOrigin;
9+
import org.springframework.web.bind.annotation.DeleteMapping;
1210
import org.springframework.web.bind.annotation.GetMapping;
11+
import org.springframework.web.bind.annotation.PathVariable;
1312
import org.springframework.web.bind.annotation.RestController;
1413

14+
import com.codedifferently.lesson26.library.Librarian;
15+
import com.codedifferently.lesson26.library.Library;
16+
import com.codedifferently.lesson26.library.MediaItem;
17+
import com.codedifferently.lesson26.library.search.SearchCriteria;
18+
1519
@RestController
1620
@CrossOrigin
1721
public class MediaItemsController {
@@ -31,4 +35,18 @@ public ResponseEntity<GetMediaItemsResponse> getItems() {
3135
var response = GetMediaItemsResponse.builder().items(responseItems).build();
3236
return ResponseEntity.ok(response);
3337
}
38+
39+
@DeleteMapping("/items/{id}")
40+
public ResponseEntity<Void> deleteItem(@PathVariable String id) {
41+
Set<MediaItem> items = library.search(SearchCriteria.builder().id(id).build());
42+
43+
if (items.isEmpty()) {
44+
return ResponseEntity.notFound().build(); // Return 404 if item is not found
45+
}
46+
47+
MediaItem itemToDelete = items.iterator().next();
48+
library.removeMediaItem(itemToDelete, librarian); // Assuming there's a method to remove items in the library
49+
50+
return ResponseEntity.noContent().build(); // Return 204 No Content if deletion is successful
51+
}
3452
}

0 commit comments

Comments
 (0)