11package 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 ;
73import java .io .IOException ;
84import java .util .List ;
95import java .util .Set ;
6+
107import org .springframework .http .ResponseEntity ;
118import org .springframework .web .bind .annotation .CrossOrigin ;
9+ import org .springframework .web .bind .annotation .DeleteMapping ;
1210import org .springframework .web .bind .annotation .GetMapping ;
11+ import org .springframework .web .bind .annotation .PathVariable ;
1312import 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
1721public 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