Skip to content

Commit f5c5457

Browse files
authored
Merge branch 'main' into 65-complete-postman-collection
2 parents 64b970a + dc80f0b commit f5c5457

36 files changed

+675
-631
lines changed

.github/workflows/ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
build:
8+
runs-on: ubuntu-latest
9+
10+
steps:
11+
- name: Checkout repository
12+
uses: actions/checkout@v3
13+
14+
- name: Set up JDK 17
15+
uses: actions/setup-java@v3
16+
with:
17+
java-version: '17'
18+
distribution: 'corretto'
19+
20+
- name: Cache Maven dependencies
21+
uses: actions/cache@v3
22+
with:
23+
path: ~/.m2/repository
24+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
25+
restore-keys: |
26+
${{ runner.os }}-maven-
27+
28+
- name: Run Spotless
29+
run: mvn spotless:apply

README.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,19 +109,25 @@ The project uses Docker Compose to spin up a PostgreSQL container, please check
109109
- **Output**: List of all GameDTO objects.
110110
- **Exceptions**:
111111
- Internal Server Error (Error 500): Internal database error.
112-
- `GET /{parameter}`: Retrieves game information by title, author, or age.
112+
- `GET /{id}`: Retrieves game information by id.
113+
- **Input**: `id` parameter.
114+
- **Output**: GameDTO object.
115+
- **Exceptions**:
116+
- Bad Request Exception (Error 400): The id field cannot be empty.
117+
- Game not found (Error 404): No game matches the given id.
118+
- Internal Server Error (Error 500): Internal database error.
119+
- `GET /search/{parameter}`: Retrieves game information by title, author, or artist.
113120
- **Input**: `parameter`.
114121
- **Output**: List of GameDTO objects.
115122
- **Exceptions**:
116123
- Bad Request Exception (Error 400): The parameter field cannot be empty.
117124
- Game not found (Error 404): No game matches the given parameters.
118125
- Internal Server Error (Error 500): Internal database error.
119-
- `GET /search/{name)`: Retrieves game information by name from the BGG API.
126+
- `GET /search/bgg/{name)`: Retrieves game information by name from the BGG API.
120127
- **Input**: `name`.
121128
- **Output**: List of games results from the BGG API.
122129
- **Exceptions**:
123130
- Bad Request Exception (Error 400): The name field cannot be empty.
124-
- Game not found (Error 404): No game matches the given parameters.
125131
- Internal Server Error (Error 500): Internal database error.
126132
- `POST /{id}`: Creates a game using the "id" parameter from the public BGG API.
127133
- **Input**: `id` parameter.

eclipse-formatter.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<profiles version="12">
3+
<profile kind="CodeFormatterProfile" name="Custom" version="12">
4+
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
5+
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
6+
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
7+
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="true"/>
8+
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
9+
</profile>
10+
</profiles>

pom.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,26 @@
9898
<artifactId>maven-surefire-plugin</artifactId>
9999
<version>3.5.2</version>
100100
</plugin>
101+
<plugin>
102+
<groupId>com.diffplug.spotless</groupId>
103+
<artifactId>spotless-maven-plugin</artifactId>
104+
<version>2.44.0</version>
105+
<executions>
106+
<execution>
107+
<goals>
108+
<goal>check</goal>
109+
<goal>apply</goal>
110+
</goals>
111+
</execution>
112+
</executions>
113+
<configuration>
114+
<java>
115+
<eclipse>
116+
<file>${basedir}/eclipse-formatter.xml</file>
117+
</eclipse>
118+
</java>
119+
</configuration>
120+
</plugin>
101121
</plugins>
102122
</build>
103123
</project>

src/main/java/com/es/boardGameTraining/BoardGameTrainingApplication.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@
88
@SpringBootApplication
99
public class BoardGameTrainingApplication {
1010

11-
public static void main(String[] args) {
12-
SpringApplication.run(BoardGameTrainingApplication.class, args);
13-
}
14-
15-
@Bean // More explicit creation than @Autowired
16-
public RestTemplate restTemplate() {
17-
return new RestTemplate();
18-
}
11+
public static void main(String[] args) {
12+
SpringApplication.run(BoardGameTrainingApplication.class, args);
13+
}
1914

15+
@Bean // More explicit creation than @Autowired
16+
public RestTemplate restTemplate() {
17+
return new RestTemplate();
18+
}
2019
}

src/main/java/com/es/boardGameTraining/ServletInitializer.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55

66
public class ServletInitializer extends SpringBootServletInitializer {
77

8-
@Override
9-
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
10-
return application.sources(BoardGameTrainingApplication.class);
11-
}
12-
8+
@Override
9+
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
10+
return application.sources(BoardGameTrainingApplication.class);
11+
}
1312
}

src/main/java/com/es/boardGameTraining/controller/GameController.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22

33
import com.es.boardGameTraining.dto.GameBggDTO;
44
import com.es.boardGameTraining.dto.GameDTO;
5+
import com.es.boardGameTraining.service.GameService;
6+
import java.util.List;
57
import org.springframework.beans.factory.annotation.Autowired;
68
import org.springframework.http.HttpStatus;
79
import org.springframework.http.ResponseEntity;
810
import org.springframework.web.bind.annotation.*;
911

10-
import com.es.boardGameTraining.service.GameService;
11-
12-
import java.util.List;
13-
1412
@RestController
1513
@RequestMapping("/games")
1614
public class GameController {
@@ -22,15 +20,19 @@ public ResponseEntity<List<GameDTO>> getAllGames() {
2220
return new ResponseEntity<>(gameService.getAllGames(), HttpStatus.OK);
2321
}
2422

25-
@GetMapping("/{parameter}")
26-
public ResponseEntity<List<GameDTO>> getGamesByParameter(@PathVariable String parameter) {
27-
return new ResponseEntity<>(gameService.getGamesByParameter(parameter), HttpStatus.OK);
23+
@GetMapping("/{id}")
24+
public ResponseEntity<GameDTO> findGameById(@PathVariable String id) {
25+
return new ResponseEntity<>(gameService.getGameById(id), HttpStatus.OK);
2826
}
2927

28+
@GetMapping("/search/{parameter}")
29+
public ResponseEntity<List<GameDTO>> searchGames(@PathVariable String parameter) {
30+
return new ResponseEntity<>(gameService.searchGames(parameter), HttpStatus.OK);
31+
}
3032

31-
@GetMapping("/search/{name}")
32-
public ResponseEntity<List<GameBggDTO>> searchGames(@PathVariable String name) {
33-
return new ResponseEntity<>(gameService.searchGames(name), HttpStatus.OK);
33+
@GetMapping("/search/bgg/{name}")
34+
public ResponseEntity<List<GameBggDTO>> searchGamesBGG(@PathVariable String name) {
35+
return new ResponseEntity<>(gameService.searchGamesBGG(name), HttpStatus.OK);
3436
}
3537

3638
@PostMapping("/{id}")

src/main/java/com/es/boardGameTraining/controller/PlayController.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
import com.es.boardGameTraining.dto.PlayCreateDTO;
44
import com.es.boardGameTraining.dto.PlayDTO;
55
import com.es.boardGameTraining.service.PlayService;
6+
import java.util.List;
67
import org.springframework.beans.factory.annotation.Autowired;
78
import org.springframework.http.HttpStatus;
89
import org.springframework.http.ResponseEntity;
910
import org.springframework.web.bind.annotation.*;
1011

11-
import java.util.List;
12-
1312
@RestController
1413
@RequestMapping("/plays")
1514
public class PlayController {

src/main/java/com/es/boardGameTraining/controller/PlayerController.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@
33
import com.es.boardGameTraining.dto.PlayerCreateDTO;
44
import com.es.boardGameTraining.dto.PlayerDTO;
55
import com.es.boardGameTraining.service.PlayerService;
6+
import java.util.List;
67
import org.springframework.beans.factory.annotation.Autowired;
78
import org.springframework.http.HttpStatus;
89
import org.springframework.http.ResponseEntity;
910
import org.springframework.web.bind.annotation.*;
1011

11-
import java.util.List;
12-
1312
@RestController
14-
@RequestMapping("/player")
13+
@RequestMapping("/players")
1514
public class PlayerController {
1615

1716
@Autowired
@@ -23,8 +22,8 @@ public ResponseEntity<List<PlayerDTO>> getAllPlayers() {
2322
}
2423

2524
@GetMapping("/{nickname}")
26-
public ResponseEntity<List<PlayerDTO>> getPlayerByParameter(@PathVariable String nickname) {
27-
return new ResponseEntity<>(playerService.getPlayersByParameter(nickname), HttpStatus.OK);
25+
public ResponseEntity<PlayerDTO> getPlayerByParameter(@PathVariable String nickname) {
26+
return new ResponseEntity<>(playerService.getPlayerByNickname(nickname), HttpStatus.OK);
2827
}
2928

3029
@PostMapping("/")

0 commit comments

Comments
 (0)