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 .exceptions .MediaItemCheckedOutException ;
7+ import com .codedifferently .lesson26 .library .search .SearchCriteria ;
8+ import io .swagger .v3 .oas .annotations .parameters .RequestBody ;
9+ import jakarta .validation .Valid ;
310import java .io .IOException ;
411import java .util .List ;
512import java .util .Map ;
613import java .util .Set ;
7-
814import org .springframework .http .HttpStatus ;
915import org .springframework .http .ResponseEntity ;
1016import org .springframework .web .bind .annotation .CrossOrigin ;
1420import org .springframework .web .bind .annotation .PostMapping ;
1521import org .springframework .web .bind .annotation .RestController ;
1622
17- import com .codedifferently .lesson26 .library .Librarian ;
18- import com .codedifferently .lesson26 .library .Library ;
19- import com .codedifferently .lesson26 .library .MediaItem ;
20- import com .codedifferently .lesson26 .library .exceptions .MediaItemCheckedOutException ;
21- import com .codedifferently .lesson26 .library .search .SearchCriteria ;
22-
23- import io .swagger .v3 .oas .annotations .parameters .RequestBody ;
24- import jakarta .validation .Valid ;
25-
2623@ RestController
2724@ CrossOrigin
2825public class MediaItemsController {
@@ -44,7 +41,7 @@ public GetMediaItemsResponse getItems() {
4441
4542 @ GetMapping ("/items/{id}" )
4643 public ResponseEntity <MediaItemResponse > getItemById (@ PathVariable ("id" ) String id ) {
47- Set <MediaItem > items = library .search (SearchCriteria .builder ().id (id ).build ());
44+ Set <MediaItem > items = library .search (SearchCriteria .builder ().id (id ).build ());
4845 if (items .isEmpty ()) {
4946 return ResponseEntity .status (HttpStatus .NOT_FOUND ).build ();
5047 }
@@ -54,39 +51,40 @@ public ResponseEntity<MediaItemResponse> getItemById(@PathVariable("id") String
5451 }
5552
5653 @ PostMapping ("/items" )
57- public ResponseEntity <?> addItem (@ Valid @ RequestBody MediaItemRequest request ) {
54+ public ResponseEntity <?> addItem (@ Valid @ RequestBody MediaItemRequest request ) {
5855 if (request == null ) {
59- return ResponseEntity .badRequest ().body (Map .of ("errors" , List .of ("Missing required fields" )));
56+ return ResponseEntity .badRequest ().body (Map .of ("errors" , List .of ("Missing required fields" )));
6057 }
6158
6259 MediaItem newItem ;
6360 try {
64- newItem = MediaItemRequest .asMediaItem (request );
61+ newItem = MediaItemRequest .asMediaItem (request );
6562 } catch (IllegalArgumentException e ) {
66- return ResponseEntity .badRequest ().body (Map .of ("errors" , List .of ("Unknown media item type: " + request .getType ())));
63+ return ResponseEntity .badRequest ()
64+ .body (Map .of ("errors" , List .of ("Unknown media item type: " + request .getType ())));
6765 }
6866
69- library .
addMediaItem (
newItem ,
new Librarian (
"Jane Doe" ,
"[email protected] " ));
67+ library .
addMediaItem (
newItem ,
new Librarian (
"Jane Doe" ,
"[email protected] " ));
7068
7169 return ResponseEntity .ok (Map .of ("item" , Map .of ("id" , newItem .getId ().toString ())));
72- }
70+ }
7371
74- @ DeleteMapping ("/items/{id}" )
72+ @ DeleteMapping ("/items/{id}" )
7573 public ResponseEntity <Map <String , List <String >>> deleteItem (@ PathVariable ("id" ) String id ) {
76- Set <MediaItem > items = library .search (SearchCriteria .builder ().id (id ).build ());
74+ Set <MediaItem > items = library .search (SearchCriteria .builder ().id (id ).build ());
7775 if (items .isEmpty ()) {
7876 return ResponseEntity .status (HttpStatus .NOT_FOUND ).build ();
7977 }
80-
78+
8179 MediaItem item = items .iterator ().next ();
8280
8381 try {
8482 library .removeMediaItem (item , librarian );
8583 } catch (MediaItemCheckedOutException e ) {
86- return ResponseEntity .status (HttpStatus .BAD_REQUEST )
84+ return ResponseEntity .status (HttpStatus .BAD_REQUEST )
8785 .body (Map .of ("errors" , List .of (e .getMessage ())));
8886 }
8987
9088 return ResponseEntity .noContent ().build ();
91- }
89+ }
9290}
0 commit comments