diff --git a/src/main/java/myapi/api/Controller/TaskController.java b/src/main/java/myapi/api/Controller/TaskController.java index d2ca261..e84e119 100644 --- a/src/main/java/myapi/api/Controller/TaskController.java +++ b/src/main/java/myapi/api/Controller/TaskController.java @@ -2,7 +2,8 @@ package myapi.api.Controller; import java.util.List; import myapi.api.Model.Task; -import myapi.api.Service.TaskService; +import myapi.api.Service.Interfaces.TaskService; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -11,11 +12,11 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * Classe servant de point d'entrée pour les objets Tâches - * TaskController */ @RestController @RequestMapping("/task") @@ -57,8 +58,8 @@ public class TaskController { * Supprime une tâche de la bdd * @param idTask L'id de la tâche */ - @DeleteMapping("/delete/{id}") - public void deleteTask(@PathVariable("id") int idTask) { + @DeleteMapping("/delete") + public void deleteTask(@RequestParam("id") int idTask) { taskService.deleteTask(idTask); } } diff --git a/src/main/java/myapi/api/Controller/TaskGroupController.java b/src/main/java/myapi/api/Controller/TaskGroupController.java new file mode 100644 index 0000000..ffc2235 --- /dev/null +++ b/src/main/java/myapi/api/Controller/TaskGroupController.java @@ -0,0 +1,63 @@ +package myapi.api.Controller; + +import java.util.List; +import myapi.api.Model.TaskGroup; +import myapi.api.Service.Interfaces.TaskGroupService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * Classe servant de point d'entrée pour les objets TaskGroup + */ +@RestController +@RequestMapping("/group") +public class TaskGroupController { + + @Autowired + private TaskGroupService taskGroupService; + + /** + * Récupère tous les groupes de la bdd + * @return Une liste de {@link TaskGroup} + */ + @GetMapping + public List getAllGroups() { + return taskGroupService.getAllGroups(); + } + + /** + * Ajoute un nouveau groupe à la bdd + * @param group L'objet que l'on veut ajouter + * @return Le groupe ajouté + */ + @PostMapping("/add") + public TaskGroup addGroup(@RequestBody TaskGroup group) { + return taskGroupService.addGroup(group); + } + + /** + * Modifie un groupe de la bdd + * @param group Le groupe que l'on veut modifier. Il faut que son id soit déjà présent + * @return Le groupe modifié + */ + @PutMapping("/update") + public TaskGroup updateGroup(@RequestBody TaskGroup group) { + return taskGroupService.updateGroup(group); + } + + /** + * Supprime un groupe de la bdd + * @param idGroup L'identifiant du groupe + */ + @DeleteMapping("/delete") + public void deleteGroup(@RequestParam("id") int idGroup) { + taskGroupService.deleteGroup(idGroup); + } +} diff --git a/src/main/java/myapi/api/Model/TaskGroup.java b/src/main/java/myapi/api/Model/TaskGroup.java new file mode 100644 index 0000000..5eca1e3 --- /dev/null +++ b/src/main/java/myapi/api/Model/TaskGroup.java @@ -0,0 +1,49 @@ +package myapi.api.Model; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +/** + * Classe mappée à la table task_group de la bdd + * TaskGroup + */ +@Entity +@Table(name = "task_group") +public class TaskGroup { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id_group; + + private String name_group; + private Integer id_project; + + /* --- GETTERS ET SETTERS --- */ + + public int getId_group() { + return id_group; + } + + public void setId_group(int id_group) { + this.id_group = id_group; + } + + public String getName_group() { + return name_group; + } + + public void setName_group(String name_group) { + this.name_group = name_group; + } + + public Integer getId_project() { + return id_project; + } + + public void setId_project(Integer id_project) { + this.id_project = id_project; + } +} diff --git a/src/main/java/myapi/api/Repository/TaskGroupRepository.java b/src/main/java/myapi/api/Repository/TaskGroupRepository.java new file mode 100644 index 0000000..71f994b --- /dev/null +++ b/src/main/java/myapi/api/Repository/TaskGroupRepository.java @@ -0,0 +1,11 @@ +package myapi.api.Repository; + +import myapi.api.Model.TaskGroup; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +/** + * Repository Jpa permettant la persistance + */ +@Repository +public interface TaskGroupRepository extends JpaRepository {} diff --git a/src/main/java/myapi/api/Repository/TaskRepository.java b/src/main/java/myapi/api/Repository/TaskRepository.java index 7da7442..59fa4db 100644 --- a/src/main/java/myapi/api/Repository/TaskRepository.java +++ b/src/main/java/myapi/api/Repository/TaskRepository.java @@ -6,7 +6,6 @@ import org.springframework.stereotype.Repository; /** * Repository Jpa permettant la persistance - * TaskRepository */ @Repository public interface TaskRepository extends JpaRepository {} diff --git a/src/main/java/myapi/api/Service/Implementations/TaskGroupServiceImpl.java b/src/main/java/myapi/api/Service/Implementations/TaskGroupServiceImpl.java new file mode 100644 index 0000000..d900a12 --- /dev/null +++ b/src/main/java/myapi/api/Service/Implementations/TaskGroupServiceImpl.java @@ -0,0 +1,53 @@ +package myapi.api.Service.Implementations; + +import java.util.List; +import myapi.api.Model.TaskGroup; +import myapi.api.Repository.TaskGroupRepository; +import myapi.api.Service.Interfaces.TaskGroupService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class TaskGroupServiceImpl implements TaskGroupService { + + @Autowired + private TaskGroupRepository taskGroupRepository; + + /** (non-Javadoc) + * @see myapi.api.Service.Interfaces.TaskGroupService#getAllGroups() + */ + @Override + public List getAllGroups() { + return taskGroupRepository.findAll(); + } + + /** (non-Javadoc) + * @see myapi.api.Service.Interfaces.TaskGroupService#addGroup(myapi.api.Model.TaskGroup) + */ + @Override + public TaskGroup addGroup(TaskGroup group) { + return taskGroupRepository.save(group); + } + + /** (non-Javadoc) + * + * @see myapi.api.Service.Interfaces.TaskGroupService#updateGroup(myapi.api.Model.TaskGroup) + */ + @Override + public TaskGroup updateGroup(TaskGroup group) { + TaskGroup dbGroup = taskGroupRepository.findById(group.getId_group()).get(); + dbGroup.setName_group(group.getName_group()); + dbGroup.setId_group(group.getId_group()); + dbGroup.setId_project(group.getId_project()); + return taskGroupRepository.save(dbGroup); + } + + /** (non-Javadoc) + * + * @see myapi.api.Service.Interfaces.TaskGroupService#deleteGroup(java.lang.Integer) + */ + @Override + public void deleteGroup(Integer idGroup) { + taskGroupRepository.deleteById(idGroup); + } +} diff --git a/src/main/java/myapi/api/Service/TaskServiceImpl.java b/src/main/java/myapi/api/Service/Implementations/TaskServiceImpl.java similarity index 70% rename from src/main/java/myapi/api/Service/TaskServiceImpl.java rename to src/main/java/myapi/api/Service/Implementations/TaskServiceImpl.java index 3fb222a..8279040 100644 --- a/src/main/java/myapi/api/Service/TaskServiceImpl.java +++ b/src/main/java/myapi/api/Service/Implementations/TaskServiceImpl.java @@ -1,8 +1,9 @@ -package myapi.api.Service; +package myapi.api.Service.Implementations; import java.util.List; import myapi.api.Model.Task; import myapi.api.Repository.TaskRepository; +import myapi.api.Service.Interfaces.TaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,7 +14,7 @@ public class TaskServiceImpl implements TaskService { private TaskRepository taskRepository; /** (non-Javadoc) - * @see myapi.api.Service.TaskService#getAllTasks() + * @see myapi.api.Service.Interfaces.TaskService#getAllTasks() */ @Override public List getAllTasks() { @@ -21,7 +22,7 @@ public class TaskServiceImpl implements TaskService { } /** (non-Javadoc) - * @see myapi.api.Service.TaskService#addTask(myapi.api.Model.Task) + * @see myapi.api.Service.Interfaces.TaskService#addTask(myapi.api.Model.Task) */ @Override public Task addTask(Task task) { @@ -29,7 +30,7 @@ public class TaskServiceImpl implements TaskService { } /** (non-Javadoc) - * @see myapi.api.Service.TaskService#updateTask(myapi.api.Model.Task) + * @see myapi.api.Service.Interfaces.TaskService#updateTask(myapi.api.Model.Task) */ @Override public Task updateTask(Task task) { @@ -44,10 +45,10 @@ public class TaskServiceImpl implements TaskService { } /** (non-Javadoc) - * @see myapi.api.Service.TaskService#deleteTask(int) + * @see myapi.api.Service.Interfaces.TaskService#deleteTask(int) */ @Override - public void deleteTask(int taskId) { - taskRepository.deleteById(taskId); + public void deleteTask(int idTask) { + taskRepository.deleteById(idTask); } } diff --git a/src/main/java/myapi/api/Service/Interfaces/TaskGroupService.java b/src/main/java/myapi/api/Service/Interfaces/TaskGroupService.java new file mode 100644 index 0000000..b22585d --- /dev/null +++ b/src/main/java/myapi/api/Service/Interfaces/TaskGroupService.java @@ -0,0 +1,35 @@ +package myapi.api.Service.Interfaces; + +import java.util.List; +import myapi.api.Model.TaskGroup; + +/** + * Interface pour les services de groupe de task + */ +public interface TaskGroupService { + /** + * Récupère tous les groupes de tâches de la database + * @return Une liste de groupe de tâches + */ + List getAllGroups(); + + /** + * Ajoute un nouveau groupe de tâche + * @param group Le nouveau groupe + * @return Le groupe créé + */ + TaskGroup addGroup(TaskGroup group); + + /** + * Modifie un groupe déjà existant + * @param group Le groupe à modifier. Il faut que son id existe déjà dans la database + * @return Le groupe modifié + */ + TaskGroup updateGroup(TaskGroup group); + + /** + * Supprime un groupe de tâche déjà existant à partir de son identifiant + * @param idGroup L'identifiant du groupe + */ + void deleteGroup(Integer idGroup); +} diff --git a/src/main/java/myapi/api/Service/TaskService.java b/src/main/java/myapi/api/Service/Interfaces/TaskService.java similarity index 90% rename from src/main/java/myapi/api/Service/TaskService.java rename to src/main/java/myapi/api/Service/Interfaces/TaskService.java index ae26481..89edd79 100644 --- a/src/main/java/myapi/api/Service/TaskService.java +++ b/src/main/java/myapi/api/Service/Interfaces/TaskService.java @@ -1,10 +1,13 @@ -package myapi.api.Service; +package myapi.api.Service.Interfaces; import java.util.List; import myapi.api.Model.Task; +/** + * Interface pour les services de task + */ public interface TaskService { /** * Récupère toutes les tâches de la database