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 ci;
|
||||||
private Long celular;
|
private Long celular;
|
||||||
private String nombre;
|
private String nombre;
|
||||||
private boolean aprobado;
|
private Boolean aprobado;
|
||||||
private boolean visible;
|
private Boolean visible;
|
||||||
|
|
||||||
public boolean isAprobado() {
|
public Boolean isAprobado() {
|
||||||
return aprobado;
|
return aprobado;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAprobado(boolean aprobado) {
|
public void setAprobado(Boolean aprobado) {
|
||||||
this.aprobado = aprobado;
|
this.aprobado = aprobado;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isVisible() {
|
public Boolean isVisible() {
|
||||||
return visible;
|
return visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVisible(boolean visible) {
|
public void setVisible(Boolean visible) {
|
||||||
this.visible = visible;
|
this.visible = visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,11 @@ import com.example.fercoganbackend.entity.Usuario;
|
|||||||
import com.example.fercoganbackend.otros.ConfirmadoTF;
|
import com.example.fercoganbackend.otros.ConfirmadoTF;
|
||||||
import com.example.fercoganbackend.repository.RolesRepository;
|
import com.example.fercoganbackend.repository.RolesRepository;
|
||||||
import com.example.fercoganbackend.repository.UsuarioRepository;
|
import com.example.fercoganbackend.repository.UsuarioRepository;
|
||||||
|
import jakarta.persistence.EntityNotFoundException;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
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
|
.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) {
|
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)
|
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
|
// 2. Actualización de Strings y Objetos (Null-check)
|
||||||
if (request.getUsername() != null) {
|
if (request.getUsername() != null) usuarioExistente.setUsername(request.getUsername());
|
||||||
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){
|
// 3. Manejo correcto de Booleanos (Usa Wrapper Boolean en el Request)
|
||||||
usuarioExistente.setCi(request.getCi());
|
if (request.isVisible()!= null) {
|
||||||
}
|
|
||||||
|
|
||||||
if(request.getCelular()!= null){
|
|
||||||
usuarioExistente.setCelular(request.getCelular());
|
|
||||||
}
|
|
||||||
|
|
||||||
if(request.getNombre()!= null){
|
|
||||||
usuarioExistente.setNombre(request.getNombre());
|
|
||||||
}
|
|
||||||
if(request.isVisible()){
|
|
||||||
usuarioExistente.setVisible(request.isVisible());
|
usuarioExistente.setVisible(request.isVisible());
|
||||||
}
|
}
|
||||||
|
if (request.isAprobado() != null) {
|
||||||
if(request.isAprobado()){
|
|
||||||
usuarioExistente.setAprobado(request.isAprobado());
|
usuarioExistente.setAprobado(request.isAprobado());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request.getPassword() != null) {
|
// 4. Seguridad
|
||||||
// ¡No olvides encriptarla si cambias el password!
|
if (request.getPassword() != null && !request.getPassword().isBlank()) {
|
||||||
usuarioExistente.setPassword(encoder.encode(request.getPassword()));
|
usuarioExistente.setPassword(encoder.encode(request.getPassword()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 5. Relaciones
|
||||||
if (request.getRol() != null) {
|
if (request.getRol() != null) {
|
||||||
// Buscamos el objeto Rol por su ID (necesitas el RolesRepository)
|
|
||||||
Roles nuevoRol = rolesRepository.findById(request.getRol())
|
Roles nuevoRol = rolesRepository.findById(request.getRol())
|
||||||
.orElseThrow(() -> new RuntimeException("El Rol especificado no existe"));
|
.orElseThrow(() -> new EntityNotFoundException("El Rol " + request.getRol() + " no existe"));
|
||||||
|
usuarioExistente.setRol(nuevoRol);
|
||||||
usuarioExistente.setRol(nuevoRol); // Asignamos el objeto completo
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Guardamos los cambios
|
|
||||||
return repo.save(usuarioExistente);
|
return repo.save(usuarioExistente);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user