Package com.dh.TaskManager.service.impl
Class TaskService
java.lang.Object
com.dh.TaskManager.service.impl.TaskService
- All Implemented Interfaces:
ITaskService
Implementación concreta del servicio de tareas que gestiona las operaciones relacionadas con las tareas.
-
Constructor Summary
ConstructorDescriptionTaskService
(ITaskRepository taskRepository, com.fasterxml.jackson.databind.ObjectMapper objectMapper) Constructor de la clase TaskService que realiza la inyección de dependencias del repositorio de tareas y del ObjectMapper. -
Method Summary
Modifier and TypeMethodDescriptioncreateTask
(TaskRequestDTO taskRequestDTO) Crea una nueva tarea utilizando los datos proporcionados en el objeto TaskRequestDTO.void
deleteTaskById
(Long id) Elimina una tarea por su identificador único.Obtiene todas las tareas disponibles utilizando un flujo (stream) de datos.getTaskById
(Long id) Obtiene una tarea específica por su identificador.updateTask
(TaskRequestToUpdateDTO taskRequestToUpdateDTO) Actualiza una tarea existente utilizando los datos proporcionados en el objeto TaskRequestToUpdateDTO.
-
Constructor Details
-
TaskService
public TaskService(ITaskRepository taskRepository, com.fasterxml.jackson.databind.ObjectMapper objectMapper) Constructor de la clase TaskService que realiza la inyección de dependencias del repositorio de tareas y del ObjectMapper.- Parameters:
taskRepository
- La implementación concreta del repositorio de tareas que se utilizará en el servicio. Se sigue el principio de inversión de dependencias al utilizar la interfaz ITaskRepository.objectMapper
- El objeto ObjectMapper que se utilizará para mapear objetos a JSON y viceversa.
-
-
Method Details
-
createTask
Crea una nueva tarea utilizando los datos proporcionados en el objeto TaskRequestDTO.- Specified by:
createTask
in interfaceITaskService
- Parameters:
taskRequestDTO
- El objeto TaskRequestDTO que contiene los datos de la tarea a crear.- Returns:
- TaskResponseDTO El objeto TaskResponseDTO correspondiente a la tarea creada.
-
getTaskById
Obtiene una tarea específica por su identificador.- Specified by:
getTaskById
in interfaceITaskService
- Parameters:
id
- El identificador único de la tarea.- Returns:
- TaskResponseDTO El objeto TaskResponseDTO correspondiente a la tarea solicitada.
- Throws:
NotFoundException
- Si no se encuentra ninguna tarea con el identificador proporcionado.
-
getAllTasks
Obtiene todas las tareas disponibles utilizando un flujo (stream) de datos. Se utiliza un flujo para procesar de manera eficiente la lista de tareas y mapearlas a objetos TaskResponseDTO.- Specified by:
getAllTasks
in interfaceITaskService
- Returns:
- List
Una lista de objetos TaskResponseDTO que representan todas las tareas disponibles.
-
updateTask
Actualiza una tarea existente utilizando los datos proporcionados en el objeto TaskRequestToUpdateDTO. * Este método inicia una transacción para garantizar la atomicidad de la operación, lo que significa que todas las operaciones de base de datos realizadas dentro de este método se ejecutarán de manera indivisible, es decir, todas o ninguna. Si alguna operación de base de datos falla, la transacción se revertirá y se desharán todos los cambios. * El método busca la tarea en la base de datos utilizando el identificador proporcionado en el objeto TaskRequestToUpdateDTO. Si la tarea existe, se actualizan sus datos con los valores proporcionados en el objeto TaskRequestToUpdateDTO, y luego se guarda la tarea actualizada en la base de datos. *- Specified by:
updateTask
in interfaceITaskService
- Parameters:
taskRequestToUpdateDTO
- El objeto TaskRequestToUpdateDTO que contiene los datos actualizados de la tarea.- Returns:
- TaskResponseDTO El objeto TaskResponseDTO correspondiente a la tarea actualizada.
- Throws:
NotFoundException
- Si no se encuentra ninguna tarea con el identificador proporcionado.
-
deleteTaskById
Elimina una tarea por su identificador único.- Specified by:
deleteTaskById
in interfaceITaskService
- Parameters:
id
- Identificador único de la tarea a eliminar.- Throws:
NotFoundException
- Si no se encuentra ninguna tarea con el identificador proporcionado. *
-