feat: CRUD des groupes de tâches

This commit is contained in:
2026-09-07 19:44:37 +02:00
parent 29a127e2f6
commit 1c81385baf
9 changed files with 228 additions and 13 deletions
@@ -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);
}
}
@@ -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<TaskGroup> 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);
}
}
@@ -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;
}
}
@@ -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<TaskGroup, Integer> {}
@@ -6,7 +6,6 @@ import org.springframework.stereotype.Repository;
/**
* Repository Jpa permettant la persistance
* TaskRepository
*/
@Repository
public interface TaskRepository extends JpaRepository<Task, Integer> {}
@@ -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<TaskGroup> 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);
}
}
@@ -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<Task> 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);
}
}
@@ -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<TaskGroup> 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);
}
@@ -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