feat: CRUD des tâches, amélioration de la structure de l'API

This commit is contained in:
2026-09-01 16:25:04 +02:00
parent 0bb19180e1
commit 727fd7ec38
4 changed files with 107 additions and 12 deletions
@@ -1,26 +1,44 @@
package myapi.api.Controller; package myapi.api.Controller;
import java.util.List; import java.util.List;
import myapi.api.Model.Task;
import myapi.api.Repository.TaskRepository;
import myapi.api.Service.TaskService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import myapi.api.Data.Repository.TaskRepository;
import myapi.api.Model.Task;
@RestController @RestController
@RequestMapping("/task") @RequestMapping("/task")
public class TaskController { public class TaskController {
private final TaskRepository taskRepository;
public TaskController(TaskRepository repository){ @Autowired
this.taskRepository = repository; private TaskService taskService;
}
@GetMapping @GetMapping
public List<Task> getTasks(){ public List<Task> getAllTasks() {
return this.taskRepository.findAll(); return taskService.getAllTasks();
}
@PostMapping("/add")
public Task addTask(@RequestBody Task task) {
return taskService.addTask(task);
}
@PutMapping("/update")
public Task updateTask(@RequestBody Task task) {
return taskService.updateTask(task);
}
@DeleteMapping("/delete/{id}")
public void deleteTask(@PathVariable("id") int idTask) {
taskService.deleteTask(idTask);
} }
} }
@@ -1,4 +1,4 @@
package myapi.api.Data.Repository; package myapi.api.Repository;
import myapi.api.Model.Task; import myapi.api.Model.Task;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -0,0 +1,35 @@
package myapi.api.Service;
import java.util.List;
import org.springframework.stereotype.Service;
import myapi.api.Model.Task;
public interface TaskService {
/**
* Récupère toutes les tâches de la database
* @return Une liste de tâches
*/
List<Task> getAllTasks();
/**
* Ajoute une nouvelle tâche
* @param task La nouvelle tâche
* @return La tâche nouvellement créée
*/
Task addTask(Task task);
/**
* Modifie une tâche déjà existante
* @param task La tâche à modifier. Il faut que son id existe déjà dans la database
* @return La tâche modifiée
*/
Task updateTask(Task task);
/**
* Supprime une tâche existante à partir de son identifiant
* @param taskId L'id de la tâche à supprimer
*/
void deleteTask(int taskId);
}
@@ -0,0 +1,42 @@
package myapi.api.Service;
import java.util.List;
import java.util.Objects;
import myapi.api.Model.Task;
import myapi.api.Repository.TaskRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class TaskServiceImpl implements TaskService {
@Autowired
private TaskRepository taskRepository;
@Override
public List<Task> getAllTasks() {
return taskRepository.findAll();
}
@Override
public Task addTask(Task task) {
return taskRepository.save(task);
}
@Override
public Task updateTask(Task task) {
Task dbTask = taskRepository.findById(task.getId_task()).get();
dbTask.setName_task(task.getName_task());
dbTask.setStatus_task(task.getStatus_task());
dbTask.setDate_task(task.getDate_task());
dbTask.setPriority_task(task.getPriority_task());
dbTask.setId_group(task.getId_group());
return taskRepository.save(dbTask);
}
@Override
public void deleteTask(int taskId) {
taskRepository.deleteById(taskId);
}
}