3939 * <li><b>GET</b> {@code /players} - Retrieve all players</li>
4040 * <li><b>GET</b> {@code /players/{id}} - Retrieve player by ID</li>
4141 * <li><b>GET</b> {@code /players/search/league/{league}} - Search players by league name</li>
42- * <li><b>GET</b> {@code /players/search/ squadnumber/{number}} - Search player by squad number</li>
42+ * <li><b>GET</b> {@code /players/squadnumber/{number}} - Retrieve player by squad number</li>
4343 * <li><b>POST</b> {@code /players} - Create a new player</li>
4444 * <li><b>PUT</b> {@code /players/{id}} - Update an existing player</li>
4545 * <li><b>DELETE</b> {@code /players/{id}} - Delete a player by ID</li>
@@ -113,6 +113,24 @@ public ResponseEntity<Void> post(@RequestBody @Valid PlayerDTO playerDTO) {
113113 * -----------------------------------------------------------------------------------------------------------------------
114114 */
115115
116+ /**
117+ * Retrieves all players in the squad.
118+ * <p>
119+ * Returns the complete Argentina 2022 FIFA World Cup squad (26 players).
120+ * </p>
121+ *
122+ * @return 200 OK with array of all players (empty array if none found)
123+ */
124+ @ GetMapping ("/players" )
125+ @ Operation (summary = "Retrieves all players" )
126+ @ ApiResponses (value = {
127+ @ ApiResponse (responseCode = "200" , description = "OK" , content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = PlayerDTO [].class )))
128+ })
129+ public ResponseEntity <List <PlayerDTO >> getAll () {
130+ List <PlayerDTO > players = playersService .retrieveAll ();
131+ return ResponseEntity .status (HttpStatus .OK ).body (players );
132+ }
133+
116134 /**
117135 * Retrieves a single player by their unique identifier.
118136 *
@@ -133,21 +151,26 @@ public ResponseEntity<PlayerDTO> getById(@PathVariable Long id) {
133151 }
134152
135153 /**
136- * Retrieves all players in the squad.
154+ * Retrieves a player by their squad number (unique identifier) .
137155 * <p>
138- * Returns the complete Argentina 2022 FIFA World Cup squad (26 players).
156+ * Squad numbers are unique jersey numbers (e.g., Messi is #10). This is a direct lookup similar to getById().
157+ * Example: {@code /players/squadnumber/10} returns Lionel Messi
139158 * </p>
140159 *
141- * @return 200 OK with array of all players (empty array if none found)
160+ * @param squadNumber the squad number to retrieve (jersey number, typically 1-99)
161+ * @return 200 OK with player data, or 404 Not Found if no player has that number
142162 */
143- @ GetMapping ("/players" )
144- @ Operation (summary = "Retrieves all players " )
163+ @ GetMapping ("/players/squadnumber/{squadNumber} " )
164+ @ Operation (summary = "Retrieves a player by squad number " )
145165 @ ApiResponses (value = {
146- @ ApiResponse (responseCode = "200" , description = "OK" , content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = PlayerDTO [].class )))
166+ @ ApiResponse (responseCode = "200" , description = "OK" , content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = PlayerDTO .class ))),
167+ @ ApiResponse (responseCode = "404" , description = "Not Found" , content = @ Content )
147168 })
148- public ResponseEntity <List <PlayerDTO >> getAll () {
149- List <PlayerDTO > players = playersService .retrieveAll ();
150- return ResponseEntity .status (HttpStatus .OK ).body (players );
169+ public ResponseEntity <PlayerDTO > getBySquadNumber (@ PathVariable Integer squadNumber ) {
170+ PlayerDTO player = playersService .retrieveBySquadNumber (squadNumber );
171+ return (player != null )
172+ ? ResponseEntity .status (HttpStatus .OK ).body (player )
173+ : ResponseEntity .status (HttpStatus .NOT_FOUND ).build ();
151174 }
152175
153176 /**
@@ -169,30 +192,6 @@ public ResponseEntity<List<PlayerDTO>> searchByLeague(@PathVariable String leagu
169192 return ResponseEntity .status (HttpStatus .OK ).body (players );
170193 }
171194
172- /**
173- * Searches for a player by their squad number.
174- * <p>
175- * Squad numbers are jersey numbers that users recognize (e.g., Messi is #10).
176- * Example: {@code /players/search/squadnumber/10} returns Lionel Messi
177- * </p>
178- *
179- * @param squadNumber the squad number to search for (jersey number, typically 1-99)
180- * @return 200 OK with player data, or 404 Not Found if no player has that
181- * number
182- */
183- @ GetMapping ("/players/search/squadnumber/{squadNumber}" )
184- @ Operation (summary = "Searches for a player by squad number" )
185- @ ApiResponses (value = {
186- @ ApiResponse (responseCode = "200" , description = "OK" , content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = PlayerDTO .class ))),
187- @ ApiResponse (responseCode = "404" , description = "Not Found" , content = @ Content )
188- })
189- public ResponseEntity <PlayerDTO > searchBySquadNumber (@ PathVariable Integer squadNumber ) {
190- PlayerDTO player = playersService .searchBySquadNumber (squadNumber );
191- return (player != null )
192- ? ResponseEntity .status (HttpStatus .OK ).body (player )
193- : ResponseEntity .status (HttpStatus .NOT_FOUND ).build ();
194- }
195-
196195 /*
197196 * -----------------------------------------------------------------------------------------------------------------------
198197 * HTTP PUT
0 commit comments