@@ -38,44 +38,53 @@ public GetMediaItemsResponse getItems() {
3838 }
3939
4040 @ GetMapping ("/items/{id}" )
41- public GetMediaItemsResponse getItem (@ PathVariable UUID id ) {
41+ public ResponseEntity < String > getItem (@ PathVariable UUID id ) {
4242 Set <MediaItem > items = library .search (SearchCriteria .builder ().build ());
43+
4344 List <MediaItemResponse > responseItem =
4445 items .stream ()
4546 .map (MediaItemResponse ::from ) // Transform the original objects
4647 .filter (item -> item .getId ().equals (id ))
4748 .toList ();
48- var response = GetMediaItemsResponse .builder ().items (responseItem ).build ();
49-
50- return response ;
49+ if (responseItem .size () == 0 ) {
50+ return ResponseEntity .status (HttpStatus .NOT_FOUND ).build ();
51+ }
52+ if (responseItem .size () >= 1 )
53+ return ResponseEntity .status (HttpStatus .OK ).body ("media item found" );
54+ else return ResponseEntity .status (HttpStatus .NO_CONTENT ).build ();
5155 }
5256
5357 @ DeleteMapping ("/items/{id}" )
54- public ResponseEntity <Object > deleteItem (@ PathVariable UUID id ) {
58+ public ResponseEntity <Void > deleteItem (@ PathVariable UUID id ) {
5559 Set <MediaItem > items = library .search (SearchCriteria .builder ().build ());
5660 List <MediaItemResponse > itemToDelete =
5761 items .stream ()
5862 .map (MediaItemResponse ::from ) // Transform the original objects
5963 .filter (item -> item .getId ().equals (id ))
6064 .toList ();
65+ if (itemToDelete .isEmpty ()) {
66+ return ResponseEntity .status (HttpStatus .NOT_FOUND ).build ();
67+ }
6168
6269 if (!itemToDelete .isEmpty ()) {
6370 library .removeMediaItem (id , librarian );
64- return ResponseEntity .status (HttpStatus .OK ). body ( "media item deleted successfully" );
71+ return ResponseEntity .status (HttpStatus .NO_CONTENT ). build ( );
6572 }
66- return ResponseEntity .status (HttpStatus .BAD_REQUEST ).body ("Media deletion not successful" );
73+
74+ return ResponseEntity .status (HttpStatus .NO_CONTENT ).build ();
6775 }
6876
6977 @ PostMapping ("/items" )
70- public ResponseEntity <Object > addItem (@ RequestBody MediaItemRequest mediaItemRequest ) {
71-
72- MediaItem mediaItem = MediaItemRequest .asMediaItem (mediaItemRequest );
73- library .addMediaItem (mediaItem , librarian );
74-
75- if (null == mediaItem ) {
76- return ResponseEntity .status (HttpStatus .BAD_REQUEST )
77- .body ("media item creation not successful" );
78+ public ResponseEntity <?> addsItem (@ RequestBody CreateMediaItemRequest mediaItemRequest ) {
79+ if (null == mediaItemRequest .getItem () || null == mediaItemRequest ) {
80+ return ResponseEntity .status (HttpStatus .BAD_REQUEST ).build ();
7881 }
79- return ResponseEntity .status (HttpStatus .CREATED ).body ("new media item created successfully" );
82+ MediaItem mediaItem = MediaItemRequest .asMediaItem (mediaItemRequest .getItem ());
83+ if (null == mediaItem || null == mediaItem .getTitle ()) {
84+ return ResponseEntity .status (HttpStatus .BAD_REQUEST ).build ();
85+ }
86+
87+ library .addMediaItem (mediaItem , librarian );
88+ return ResponseEntity .status (HttpStatus .OK ).body (mediaItemRequest );
8089 }
8190}
0 commit comments