Class TaskService

java.lang.Object
com.dh.TaskManager.service.impl.TaskService
All Implemented Interfaces:
ITaskService

@Service public class TaskService extends Object implements ITaskService
Implementación concreta del servicio de tareas que gestiona las operaciones relacionadas con las tareas.
  • 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

      public TaskResponseDTO createTask(TaskRequestDTO taskRequestDTO)
      Crea una nueva tarea utilizando los datos proporcionados en el objeto TaskRequestDTO.
      Specified by:
      createTask in interface ITaskService
      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

      public TaskResponseDTO getTaskById(Long id)
      Obtiene una tarea específica por su identificador.
      Specified by:
      getTaskById in interface ITaskService
      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

      public List<TaskResponseDTO> 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 interface ITaskService
      Returns:
      List Una lista de objetos TaskResponseDTO que representan todas las tareas disponibles.
    • updateTask

      public TaskResponseDTO updateTask(TaskRequestToUpdateDTO taskRequestToUpdateDTO)
      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 interface ITaskService
      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

      public void deleteTaskById(Long id)
      Elimina una tarea por su identificador único.
      Specified by:
      deleteTaskById in interface ITaskService
      Parameters:
      id - Identificador único de la tarea a eliminar.
      Throws:
      NotFoundException - Si no se encuentra ninguna tarea con el identificador proporcionado. *