From 6998047b2608e557fe1f542fc13174b9c77a1cd5 Mon Sep 17 00:00:00 2001 From: Gerard Date: Thu, 25 Mar 2021 18:30:33 +0100 Subject: [PATCH] Correction Spring @Repository --- pom.xml | 14 +++++-- .../CrudEmpleats/CrudEmpleatsApplication.java | 3 +- .../controller/ControllerEmployees.java | 31 ++++++---------- .../CrudEmpleats/domain/Employee.java | 10 +++++ .../itacademy/CrudEmpleats/domain/Jobs.java | 2 +- .../CrudEmpleats/exceptions/IdNotFound.java | 2 + .../persistence/EmployeeRepository.java | 31 ++++++++-------- .../persistence/IEmployeeRepository.java | 1 + .../service/EmployeeServices.java | 37 +++++++++++++++++++ 9 files changed, 92 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/itacademy/CrudEmpleats/service/EmployeeServices.java diff --git a/pom.xml b/pom.xml index bf17321..b3cc358 100644 --- a/pom.xml +++ b/pom.xml @@ -1,12 +1,13 @@ - 4.0.0 org.springframework.boot spring-boot-starter-parent 2.4.3 - + com.itacademy CrudEmpleats @@ -17,6 +18,14 @@ 15 + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-validation + org.springframework.boot spring-boot-starter-thymeleaf @@ -25,7 +34,6 @@ org.springframework.boot spring-boot-starter-web - org.springframework.boot spring-boot-devtools diff --git a/src/main/java/com/itacademy/CrudEmpleats/CrudEmpleatsApplication.java b/src/main/java/com/itacademy/CrudEmpleats/CrudEmpleatsApplication.java index 3803e5e..2f7243f 100644 --- a/src/main/java/com/itacademy/CrudEmpleats/CrudEmpleatsApplication.java +++ b/src/main/java/com/itacademy/CrudEmpleats/CrudEmpleatsApplication.java @@ -2,8 +2,9 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -@SpringBootApplication +@SpringBootApplication(exclude={DataSourceAutoConfiguration.class}) public class CrudEmpleatsApplication { public static void main(String[] args) { diff --git a/src/main/java/com/itacademy/CrudEmpleats/controller/ControllerEmployees.java b/src/main/java/com/itacademy/CrudEmpleats/controller/ControllerEmployees.java index a7447f2..bca99f4 100644 --- a/src/main/java/com/itacademy/CrudEmpleats/controller/ControllerEmployees.java +++ b/src/main/java/com/itacademy/CrudEmpleats/controller/ControllerEmployees.java @@ -1,16 +1,15 @@ package com.itacademy.CrudEmpleats.controller; -import java.io.IOException; import java.util.List; -import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import com.itacademy.CrudEmpleats.domain.Employee; -import com.itacademy.CrudEmpleats.persistence.EmployeeRepository; +import com.itacademy.CrudEmpleats.service.EmployeeServices; @RestController public class ControllerEmployees { @@ -19,45 +18,39 @@ public class ControllerEmployees { */ @Autowired - private EmployeeRepository repositori; - - - // Temporalment redirigim a la llista d'empleats - @GetMapping("/") - void start(HttpServletResponse reponse) throws IOException { - reponse.sendRedirect("/Empleat"); - } + private EmployeeServices repositori; // Crear nou empleat - @PostMapping( "/Empleat") + @PostMapping( "/EmployeeList") @ResponseStatus(HttpStatus.CREATED) // 201 - public Employee addEmployee(@RequestBody Employee employee) { + public Employee addEmployee(@Valid @RequestBody Employee employee) { repositori.addEmployee(employee); - return employee; + return repositori.getEmployeeById(employee.getId()); + } // Retorna una llista JSon d'empleats - @GetMapping("/Empleat") + @GetMapping("/EmployeeList") public List allEmployees() { return repositori.getAllEmployees(); } // Busca un empleat per Id - @GetMapping("/Empleat/{id}") + @GetMapping("/EmployeeList/{id}") public Employee getFirstEmployee(@PathVariable("id") int id) { return repositori.getEmployeeById(id); } // Actualitzar Empleat - @PutMapping("/Empleat/{id}") + @PutMapping("/EmployeeList/{id}") @ResponseStatus(HttpStatus.ACCEPTED) // 202 - public Employee updateEmployee(@RequestBody Employee employee, @PathVariable("id") int id) { + public Employee updateEmployee(@Valid @RequestBody Employee employee, @PathVariable("id") int id) { repositori.updateEmployee(employee,id); return repositori.getEmployeeById(id); } // Eliminar Empleat - @DeleteMapping("/Empleat/{id}") + @DeleteMapping("/EmployeeList/{id}") @ResponseStatus(HttpStatus.ACCEPTED) // 202 public String deleteEmployee(@PathVariable("id") int id) { repositori.deleteEmployee(id); diff --git a/src/main/java/com/itacademy/CrudEmpleats/domain/Employee.java b/src/main/java/com/itacademy/CrudEmpleats/domain/Employee.java index f345441..91e2a70 100644 --- a/src/main/java/com/itacademy/CrudEmpleats/domain/Employee.java +++ b/src/main/java/com/itacademy/CrudEmpleats/domain/Employee.java @@ -1,9 +1,19 @@ package com.itacademy.CrudEmpleats.domain; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Entity public class Employee { + @Id + @NotNull private int id; + @NotBlank private String name; + @NotBlank private String job; private double salary ; diff --git a/src/main/java/com/itacademy/CrudEmpleats/domain/Jobs.java b/src/main/java/com/itacademy/CrudEmpleats/domain/Jobs.java index b89cdce..01ce1d5 100644 --- a/src/main/java/com/itacademy/CrudEmpleats/domain/Jobs.java +++ b/src/main/java/com/itacademy/CrudEmpleats/domain/Jobs.java @@ -8,7 +8,7 @@ public enum Jobs { Programador_Senior("Programador Senior",35000), Programador_Mid("Programador Mid-Level",29000), Programador_Junior("Programador Junior",21000), - Administrativa("Administrativa",25000); + Administratiu("Administratiu",25000); private String name; private double salary; diff --git a/src/main/java/com/itacademy/CrudEmpleats/exceptions/IdNotFound.java b/src/main/java/com/itacademy/CrudEmpleats/exceptions/IdNotFound.java index 16a5532..6c08e0a 100644 --- a/src/main/java/com/itacademy/CrudEmpleats/exceptions/IdNotFound.java +++ b/src/main/java/com/itacademy/CrudEmpleats/exceptions/IdNotFound.java @@ -2,6 +2,8 @@ public class IdNotFound extends RuntimeException { + private static final long serialVersionUID = 1L; + private int id; public IdNotFound(int id) { diff --git a/src/main/java/com/itacademy/CrudEmpleats/persistence/EmployeeRepository.java b/src/main/java/com/itacademy/CrudEmpleats/persistence/EmployeeRepository.java index a646adc..4cad6f2 100644 --- a/src/main/java/com/itacademy/CrudEmpleats/persistence/EmployeeRepository.java +++ b/src/main/java/com/itacademy/CrudEmpleats/persistence/EmployeeRepository.java @@ -1,32 +1,33 @@ package com.itacademy.CrudEmpleats.persistence; + import java.util.*; -import org.springframework.stereotype.Service; +import org.springframework.stereotype.Repository; import com.itacademy.CrudEmpleats.domain.Employee; import com.itacademy.CrudEmpleats.exceptions.IdNotFound; -@Service +@Repository public class EmployeeRepository implements IEmployeeRepository{ // Els objectes persistents únicament en memòria private static int idcount=0; - /* - private List repository = new ArrayList<>( - Arrays.asList( - new Employee("Joan", "Director_Projectes"), - new Employee("Gerard", "Programador_Junior"), - new Employee("Maria", "Administrativa") - ) - ); - */ - private List repository = new ArrayList<>( + + private static List repository = new ArrayList<>( Arrays.asList( - new Employee(idcount++,"Joan", "Director_Projectes"), - new Employee(idcount++,"Gerard", "Programador_Junior"), - new Employee(idcount++,"Maria", "Administrativa") + new Employee(idcount++,"Joan Gordi", "Director_Projectes"), + new Employee(idcount++,"Gerard Puig", "Programador_Mid"), + new Employee(idcount++,"Maria Camps", "Administratiu"), + new Employee(idcount++,"Anaïs Iglesias", "Programador_Mid"), + new Employee(idcount++,"Pere Masnou", "Administratiu"), + new Employee(idcount++,"Laura Klaus", "Programador_Senior"), + new Employee(idcount++,"Jhon Smith", "Administratiu"), + new Employee(idcount++,"Ramón Dalmau", "Programador_Mid"), + new Employee(idcount++,"Joana Gracia", "Programador_Junior"), + new Employee(idcount++,"Quique Mota", "Administratiu"), + new Employee(idcount++,"Kevin Lohan", "Director_Projectes") ) ); diff --git a/src/main/java/com/itacademy/CrudEmpleats/persistence/IEmployeeRepository.java b/src/main/java/com/itacademy/CrudEmpleats/persistence/IEmployeeRepository.java index 838f7ae..85e28d9 100644 --- a/src/main/java/com/itacademy/CrudEmpleats/persistence/IEmployeeRepository.java +++ b/src/main/java/com/itacademy/CrudEmpleats/persistence/IEmployeeRepository.java @@ -4,6 +4,7 @@ import com.itacademy.CrudEmpleats.domain.Employee; + public interface IEmployeeRepository { public List getAllEmployees(); diff --git a/src/main/java/com/itacademy/CrudEmpleats/service/EmployeeServices.java b/src/main/java/com/itacademy/CrudEmpleats/service/EmployeeServices.java new file mode 100644 index 0000000..1f6633f --- /dev/null +++ b/src/main/java/com/itacademy/CrudEmpleats/service/EmployeeServices.java @@ -0,0 +1,37 @@ +package com.itacademy.CrudEmpleats.service; + +import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.itacademy.CrudEmpleats.domain.Employee; +import com.itacademy.CrudEmpleats.persistence.EmployeeRepository; + +@Service +public class EmployeeServices { + + @Autowired + private EmployeeRepository repositori; + + public List getAllEmployees() { + return repositori.getAllEmployees(); + } + + public Employee getEmployeeById(int id){ + return repositori.getEmployeeById(id); + } + + public void addEmployee(Employee employee) { + repositori.addEmployee(employee); + } + + public void updateEmployee(Employee employee, int id) { + repositori.updateEmployee(employee, id); + } + + public void deleteEmployee(int id) { + repositori.deleteEmployee(id); + } + +}