Package com.mapmyjourney.backend.service
Class UserService
java.lang.Object
com.mapmyjourney.backend.service.UserService
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionauthenticate(String email, String password) 6.voiddeleteUser(Long userId) 5.getUserByEmail(String email) 3.getUserById(Long userId) 2.getUserIdByEmail(String email) Obtiene el ID del usuario a partir del email.registerUser(UserCreateRequestDTO request) 1.Registra un nuevo usuario y lo autentica automáticamente.updateUser(Long userId, UserCreateRequestDTO request) 4.updateUserProfile(Long userId, UserUpdateRequestDTO request) Actualiza el perfil de un usuario existente.
-
Constructor Details
-
UserService
public UserService()
-
-
Method Details
-
registerUser
1. Registra un nuevo usuario. Verifica que el email no esté ya registrado.- Parameters:
request- DTO con los datos del usuario- Returns:
- DTO del usuario creado
- Throws:
DuplicateResourceException- si el email ya existe
-
registerUserAndAuthenticate
Registra un nuevo usuario y lo autentica automáticamente. Retorna un token JWT junto con los datos del usuario.- Parameters:
request- DTO con los datos del usuario- Returns:
- LoginResponseDTO con token JWT y datos del usuario
- Throws:
DuplicateResourceException- si el email ya existe
-
getUserById
2. Obtiene un usuario por ID.- Parameters:
userId- ID del usuario- Returns:
- DTO del usuario encontrado
- Throws:
ResourceNotFoundException- si el usuario no existe
-
getUserByEmail
3. Obtiene un usuario por email.- Parameters:
email- Email del usuario- Returns:
- DTO del usuario encontrado
- Throws:
ResourceNotFoundException- si el usuario no existe
-
getUserIdByEmail
Obtiene el ID del usuario a partir del email.- Parameters:
email- Email del usuario- Returns:
- ID del usuario
- Throws:
ResourceNotFoundException- si el usuario no existe
-
updateUser
4. Actualiza un usuario existente. Verifica que el nuevo email no esté en uso por otro usuario.- Parameters:
userId- ID del usuario a actualizarrequest- DTO con los nuevos datos- Returns:
- DTO del usuario actualizado
- Throws:
ResourceNotFoundException- si el usuario no existeDuplicateResourceException- si el nuevo email ya existe
-
updateUserProfile
Actualiza el perfil de un usuario existente. Versión más flexible que permite actualizar solo los campos necesarios. Valida cambios de contraseña.- Parameters:
userId- ID del usuario a actualizarrequest- DTO con los datos a actualizar (opcionales)- Returns:
- DTO del usuario actualizado
- Throws:
ResourceNotFoundException- si el usuario no existeDuplicateResourceException- si el nuevo email ya existeIllegalArgumentException- si la validación de contraseña falla
-
deleteUser
5. Elimina un usuario.- Parameters:
userId- ID del usuario a eliminar- Throws:
ResourceNotFoundException- si el usuario no existe
-
authenticate
6. Autentica un usuario con email y contraseña.- Parameters:
email- Email del usuariopassword- Contraseña en texto plano- Returns:
- LoginResponseDTO con token JWT y datos del usuario
- Throws:
ResourceNotFoundException- si el usuario no existeorg.springframework.security.authentication.BadCredentialsException- si la contraseña es incorrecta
-