Skip to content

Commit bb0ca25

Browse files
Merge pull request #3 from matthieuLabaune/develop
Develop
2 parents 3b5f3fb + f3c032c commit bb0ca25

File tree

8 files changed

+116
-92
lines changed

8 files changed

+116
-92
lines changed

pom.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@
3434
<scope>test</scope>
3535
</dependency>
3636

37+
<dependency>
38+
<groupId>org.springframework.boot</groupId>
39+
<artifactId>spring-boot-starter-data-jpa</artifactId>
40+
</dependency>
41+
42+
<dependency>
43+
<groupId>org.mariadb.jdbc</groupId>
44+
<artifactId>mariadb-java-client</artifactId>
45+
</dependency>
46+
3747
<dependency>
3848
<groupId>io.springfox</groupId>
3949
<artifactId>springfox-swagger2</artifactId>
@@ -50,6 +60,10 @@
5060
<artifactId>jaxb-api</artifactId>
5161
<version>2.3.0</version>
5262
</dependency>
63+
<dependency>
64+
<groupId>junit</groupId>
65+
<artifactId>junit</artifactId>
66+
</dependency>
5367

5468
</dependencies>
5569

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,67 @@
11
package com.ecars.microcars.controller;
22

3-
import com.ecars.microcars.dao.CarDao;
3+
import com.ecars.microcars.repository.CarRepository;
44
import com.ecars.microcars.model.Car;
5+
import io.swagger.annotations.Api;
6+
import io.swagger.annotations.ApiOperation;
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 javax.sql.rowset.CachedRowSet;
1112
import java.util.List;
1213

14+
@Api(tags = "CarController.java : Controller pour API REST (CRUD sur les voitures)")
1315
@RestController
1416
public class CarController {
1517

1618
@Autowired //Instanciation automatique
17-
private CarDao carDao;
19+
private CarRepository carRepository;
1820

1921
//INDEX => /cars
22+
@ApiOperation(value = "Récupère la liste de toutes les voitures")
2023
@GetMapping(value = "cars") //GET Mapping pour l'uri pour la liste des voitures
2124
public List<Car> listCars() {
22-
return carDao.findAll();
25+
return carRepository.findAll();
2326
}
2427

2528
//SHOW BY ID => /cars/{id}
29+
@ApiOperation(value = "Récupère une voiture grâce à son ID")
2630
@GetMapping(value = "cars/{id}") //GET Mapping pour l'uri pour retourner une voiture par l'id
2731
public Car showCar(@PathVariable int id) {// Va chercher le paramètre id dans l'url et le passe à notre méthode
28-
return carDao.findById(id);
32+
return carRepository.findById(id);
2933
}
3034

35+
@ApiOperation(value = "Ajoute une voiture grâce à la liste")
3136
//STORE /cars
32-
@PostMapping(value = "cars")
33-
public void storeCar(@RequestBody Car car) { // Aller chercher dans le body de la requête la voiture et le parser
34-
carDao.save(car);
37+
@RequestMapping(value = "/cars/", method = RequestMethod.POST)
38+
public ResponseEntity<Object> createCar(@RequestBody Car car) {
39+
carRepository.save(car);
40+
return new ResponseEntity<>("Car is created successfully", HttpStatus.CREATED);
3541
}
3642

43+
@ApiOperation(value = "Mise à jour d'une voiture grâce à son ID")
3744
@PutMapping(value = "/cars/{id}")
38-
public ResponseEntity<?> updateCar(@PathVariable("id") int id, @RequestBody Car car) {
39-
Car currentCar = carDao.findById(id);
45+
public ResponseEntity<Object> updateCar(@PathVariable("id") int id, @RequestBody Car car) {
46+
Car currentCar = carRepository.findById(id);
4047
currentCar.setBrand(car.getBrand());
4148
currentCar.setModel(car.getModel());
42-
carDao.updateCar(currentCar);
43-
return new ResponseEntity<Car>(currentCar, HttpStatus.OK);
49+
carRepository.save(currentCar);
50+
return new ResponseEntity<>("Car is updated successsfully", HttpStatus.OK);
4451
}
4552

4653
//DELETE
47-
@DeleteMapping (value = "/cars/{id}")
48-
public void deleteCar(@PathVariable int id) {
49-
carDao.deleteCar(id);
54+
/* @ApiOperation(value = "Supprime une voiture grâce à son ID")
55+
@DeleteMapping (value = "/cars/{id}")
56+
public void deleteCar(@PathVariable int id) {
57+
carRepository.deleteById(id);
58+
}*/
59+
60+
@ApiOperation(value = "Supprime une voiture grâce à son ID")
61+
@RequestMapping(value = "/cars/{id}", method = RequestMethod.DELETE)
62+
public ResponseEntity<Object> delete(@PathVariable("id") int id) {
63+
carRepository.deleteById(id);
64+
return new ResponseEntity<>("Car is deleted successfully", HttpStatus.OK);
5065
}
5166
}
67+

src/main/java/com/ecars/microcars/dao/CarDao.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/main/java/com/ecars/microcars/dao/CarDaoImpl.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

src/main/java/com/ecars/microcars/model/Car.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,45 @@
11
package com.ecars.microcars.model;
22

3-
import java.util.Objects;
3+
import javax.persistence.*;
4+
import javax.xml.crypto.Data;
5+
import java.text.SimpleDateFormat;
6+
import java.util.Date;
47

8+
@Entity // Comprend que le nom de la table sera automatiquement car et les colonnes id, brand & model, etc
59
public class Car {
10+
11+
/*
12+
private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
13+
*/
14+
15+
//ID
16+
@Id
17+
@GeneratedValue
618
private int id;
19+
20+
//TIMESTAMP
21+
@Temporal(TemporalType.TIMESTAMP)
22+
private Date createdAt;
23+
24+
@Temporal(TemporalType.TIMESTAMP)
25+
private Date modifiedAt;
26+
27+
//DATA ON CARS
728
private String brand;
829
private String model;
930

1031
public Car() {
1132
}
1233

13-
public Car(int id, String brand, String model) {
34+
public Car(String brand, String model) {
35+
}
36+
37+
public Car(int id, String brand, String model, Date createdAt, Date modifiedAt) {
1438
this.id = id;
1539
this.brand = brand;
1640
this.model = model;
41+
this.createdAt = createdAt;
42+
this.modifiedAt = modifiedAt;
1743
}
1844

1945
public int getId() {
@@ -46,6 +72,7 @@ public String toString() {
4672
"id=" + id +
4773
", brand='" + brand + '\'' +
4874
", model='" + model + '\'' +
75+
", modifiedAt='" + model + '\''+
4976
'}';
5077
}
5178
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.ecars.microcars.repository;
2+
3+
import com.ecars.microcars.model.Car;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
import java.util.List;
8+
9+
@Repository
10+
public interface CarRepository extends JpaRepository<Car, Integer> {
11+
12+
List<Car> findAll();
13+
14+
Car findById(int id);
15+
16+
Car save(Car car);
17+
18+
Car deleteById(int id);
19+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.ecars.microcars.repository;
2+
3+
import com.ecars.microcars.model.Car;
4+
import org.junit.Before;
5+
import org.junit.Test;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
8+
import static org.junit.Assert.*;
9+
10+
public class CarRepositoryTest {
11+
12+
@Autowired
13+
private CarRepository carRepository;
14+
}
Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
1-
server.port=8080
1+
#APPLICATION CONFIGURATION
2+
server.port=8081
23
spring.application.name=MicroCars
4+
5+
#DATABASE CONFIGURATION
6+
spring.datasource.url=jdbc:mariadb://localhost:3306/VehiculeRentale
7+
spring.datasource.username=matt
8+
spring.datasource.password=soleil
9+
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
10+
spring.jpa.hibernate.ddl-auto=create-drop

0 commit comments

Comments
 (0)