Class UsuarioServiceImpl

java.lang.Object
com.stem.grupoSenda.service.impl.UsuarioServiceImpl
All Implemented Interfaces:
UsuarioService

@Service public class UsuarioServiceImpl extends Object implements UsuarioService
Implementación del servicio de usuarios. Esta clase se encarga de gestionar toda la lógica de negocio de los usuarios, como listar a los excursionistas, buscarlos, borrarlos, editarlos parcialmente o crearlos asegurando que no se repitan los correos electrónicos. * @author Alex Fernandez Orta
Version:
1.0
  • Constructor Details

    • UsuarioServiceImpl

      public UsuarioServiceImpl()
  • Method Details

    • listarUsuarios

      public List<Usuario> listarUsuarios()
      Busca y devuelve una lista con todos los usuarios registrados en el sistema. * @return Una lista que contiene a todos los usuarios.
      Specified by:
      listarUsuarios in interface UsuarioService
    • obtenerUsuarioPorId

      public Optional<Usuario> obtenerUsuarioPorId(Long id)
      Busca un usuario específico en el sistema utilizando su número de id. * @param id El número identificador del usuario que queremos encontrar.
      Specified by:
      obtenerUsuarioPorId in interface UsuarioService
      Returns:
      Un Optional que contiene al usuario si se encuentra, o vacío si no existe.
    • crearUsuario

      public Usuario crearUsuario(Usuario usuario)
      Registra un nuevo usuario en el sistema comprobando que su email sea único. El método recorre la lista de usuarios existentes y compara los correos. Si el email ya está registrado, no creará el usuario para evitar duplicados. * @param usuario Los datos del nuevo usuario que se quiere dar de alta.
      Specified by:
      crearUsuario in interface UsuarioService
      Returns:
      El usuario que se ha guardado en la base de datos, o null si el email ya existía.
    • actualizarUsuario

      public Optional<Usuario> actualizarUsuario(Long id, Usuario nuevoUsuario)
      Actualiza los datos de un usuario modificando solo los campos que traigan información. Permite modificar de forma independiente el nombre, los apellidos, el nivel de experiencia o el email, sin obligar a cambiar todo el perfil entero. * @param id El número identificador del usuario que se va a actualizar.
      Specified by:
      actualizarUsuario in interface UsuarioService
      Parameters:
      nuevoUsuario - Objeto que contiene las modificaciones que se van a aplicar.
      Returns:
      Un Optional que contiene al usuario ya actualizado con los nuevos cambios.
    • borrarUsuario

      public void borrarUsuario(Long id)
      Elimina a un usuario del sistema utilizando su número de id. * @param id El número de id del usuario que se quiere dar de baja.
      Specified by:
      borrarUsuario in interface UsuarioService