se arreglo el visible y el aprobado
Some checks failed
Deploy Spring Boot App / build-and-deploy (push) Has been cancelled
Some checks failed
Deploy Spring Boot App / build-and-deploy (push) Has been cancelled
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user