@@ -38,44 +38,53 @@ public GetMediaItemsResponse getItems() {
38
38
}
39
39
40
40
@ GetMapping ("/items/{id}" )
41
- public GetMediaItemsResponse getItem (@ PathVariable UUID id ) {
41
+ public ResponseEntity < String > getItem (@ PathVariable UUID id ) {
42
42
Set <MediaItem > items = library .search (SearchCriteria .builder ().build ());
43
+
43
44
List <MediaItemResponse > responseItem =
44
45
items .stream ()
45
46
.map (MediaItemResponse ::from ) // Transform the original objects
46
47
.filter (item -> item .getId ().equals (id ))
47
48
.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 ();
51
55
}
52
56
53
57
@ DeleteMapping ("/items/{id}" )
54
- public ResponseEntity <Object > deleteItem (@ PathVariable UUID id ) {
58
+ public ResponseEntity <Void > deleteItem (@ PathVariable UUID id ) {
55
59
Set <MediaItem > items = library .search (SearchCriteria .builder ().build ());
56
60
List <MediaItemResponse > itemToDelete =
57
61
items .stream ()
58
62
.map (MediaItemResponse ::from ) // Transform the original objects
59
63
.filter (item -> item .getId ().equals (id ))
60
64
.toList ();
65
+ if (itemToDelete .isEmpty ()) {
66
+ return ResponseEntity .status (HttpStatus .NOT_FOUND ).build ();
67
+ }
61
68
62
69
if (!itemToDelete .isEmpty ()) {
63
70
library .removeMediaItem (id , librarian );
64
- return ResponseEntity .status (HttpStatus .OK ). body ( "media item deleted successfully" );
71
+ return ResponseEntity .status (HttpStatus .NO_CONTENT ). build ( );
65
72
}
66
- return ResponseEntity .status (HttpStatus .BAD_REQUEST ).body ("Media deletion not successful" );
73
+
74
+ return ResponseEntity .status (HttpStatus .NO_CONTENT ).build ();
67
75
}
68
76
69
77
@ 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 ();
78
81
}
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 );
80
89
}
81
90
}
0 commit comments