se arreglo el visible y el aprobado
Some checks failed
Deploy Spring Boot App / build-and-deploy (push) Has been cancelled

This commit is contained in:
2026-03-11 16:14:40 -04:00
parent f8d022d007
commit e0a6e5cc8a
2 changed files with 25 additions and 33 deletions

View File

@@ -122,22 +122,22 @@ public class UserController {
private Long ci;
private Long celular;
private String nombre;
private boolean aprobado;
private boolean visible;
private Boolean aprobado;
private Boolean visible;
public boolean isAprobado() {
public Boolean isAprobado() {
return aprobado;
}
public void setAprobado(boolean aprobado) {
public void setAprobado(Boolean aprobado) {
this.aprobado = aprobado;
}
public boolean isVisible() {
public Boolean isVisible() {
return visible;
}
public void setVisible(boolean visible) {
public void setVisible(Boolean visible) {
this.visible = visible;
}

View File

@@ -6,8 +6,11 @@ import com.example.fercoganbackend.entity.Usuario;
import com.example.fercoganbackend.otros.ConfirmadoTF;
import com.example.fercoganbackend.repository.RolesRepository;
import com.example.fercoganbackend.repository.UsuarioRepository;
import jakarta.persistence.EntityNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Set;
@@ -99,49 +102,38 @@ public class UsuarioService {
.orElse(null); // O podrías lanzar una excepción si el usuario no existe
}
@Transactional // Asegura la integridad de los datos
public Usuario actualizarParcial(Long id, UserController.UsuarioRequest request) {
// 1. Buscamos el usuario actual o lanzamos error si no existe
// 1. Buscamos el usuario actual
Usuario usuarioExistente = repo.findById(id)
.orElseThrow(() -> new RuntimeException("Usuario no encontrado"));
.orElseThrow(() -> new EntityNotFoundException("Usuario con ID " + id + " no encontrado"));
// 2. Actualizamos solo si el campo no es nulo
if (request.getUsername() != null) {
usuarioExistente.setUsername(request.getUsername());
}
// 2. Actualización de Strings y Objetos (Null-check)
if (request.getUsername() != null) usuarioExistente.setUsername(request.getUsername());
if (request.getCi() != null) usuarioExistente.setCi(request.getCi());
if (request.getCelular() != null) usuarioExistente.setCelular(request.getCelular());
if (request.getNombre() != null) usuarioExistente.setNombre(request.getNombre());
if(request.getCi()!= null){
usuarioExistente.setCi(request.getCi());
}
if(request.getCelular()!= null){
usuarioExistente.setCelular(request.getCelular());
}
if(request.getNombre()!= null){
usuarioExistente.setNombre(request.getNombre());
}
if(request.isVisible()){
// 3. Manejo correcto de Booleanos (Usa Wrapper Boolean en el Request)
if (request.isVisible()!= null) {
usuarioExistente.setVisible(request.isVisible());
}
if(request.isAprobado()){
if (request.isAprobado() != null) {
usuarioExistente.setAprobado(request.isAprobado());
}
if (request.getPassword() != null) {
// ¡No olvides encriptarla si cambias el password!
// 4. Seguridad
if (request.getPassword() != null && !request.getPassword().isBlank()) {
usuarioExistente.setPassword(encoder.encode(request.getPassword()));
}
// 5. Relaciones
if (request.getRol() != null) {
// Buscamos el objeto Rol por su ID (necesitas el RolesRepository)
Roles nuevoRol = rolesRepository.findById(request.getRol())
.orElseThrow(() -> new RuntimeException("El Rol especificado no existe"));
usuarioExistente.setRol(nuevoRol); // Asignamos el objeto completo
.orElseThrow(() -> new EntityNotFoundException("El Rol " + request.getRol() + " no existe"));
usuarioExistente.setRol(nuevoRol);
}
// 3. Guardamos los cambios
return repo.save(usuarioExistente);
}