Class ComentarioServiceImpl

java.lang.Object
com.stem.grupoSenda.service.impl.ComentarioServiceImpl
All Implemented Interfaces:
ComentarioService

@Service public class ComentarioServiceImpl extends Object implements ComentarioService
Implementación del servicio de comentarios.

Aquí se gestiona la lógica de negocio para los comentarios, como las comprobaciones de seguridad para evitar que un usuario comente dos veces.

* @author Alex Fernandez Orta
Version:
1.0
  • Constructor Details

    • ComentarioServiceImpl

      public ComentarioServiceImpl()
  • Method Details

    • listarComentarios

      public List<Comentario> listarComentarios()
      Devuelve una lista con todos los comentarios que existen en la base de datos. * @return Una lista con todos los comentarios encontrados.
      Specified by:
      listarComentarios in interface ComentarioService
    • obtenerComentarioPorId

      public Optional<Comentario> obtenerComentarioPorId(Long id)
      Busca un comentario específico utilizando su número de id. * @param id El número identificador del comentario que queremos buscar.
      Specified by:
      obtenerComentarioPorId in interface ComentarioService
      Returns:
      Un Optional que contiene el comentario si existe, o vacío si no se encuentra.
    • crearComentario

      public Comentario crearComentario(Comentario comentario)
      Crea un nuevo comentario en una quedada si el usuario existe y no ha comentado antes. El método busca al usuario y la quedada; si los encuentra, revisa la lista de comentarios para asegurarse de que ese usuario no tenga ya un comentario allí. * @param comentario Los datos del comentario que se quiere añadir.
      Specified by:
      crearComentario in interface ComentarioService
      Returns:
      El comentario guardado con sus relaciones listas, o null si el usuario ya había comentado o no existía.
    • actualizarComentario

      public Optional<Comentario> actualizarComentario(Long id, Comentario nuevoComentario)
      Actualiza un comentario existente modificando solo los campos que no vengan vacíos. Permite cambiar el texto, la puntuación o la fecha sin necesidad de tener que volver a enviar todos los datos obligatoriamente. * @param id El número identificador del comentario que queremos cambiar.
      Specified by:
      actualizarComentario in interface ComentarioService
      Parameters:
      nuevoComentario - Objeto que contiene los nuevos datos a aplicar.
      Returns:
      Un Optional que contiene el comentario ya actualizado.
    • borrarComentario

      public void borrarComentario(Long id)
      Elimina un comentario de la base de datos usando su número de id. * @param id El número de id del comentario que se quiere borrar.
      Specified by:
      borrarComentario in interface ComentarioService