diff --git a/src/main/java/com/example/fercoganbackend/controller/UserController.java b/src/main/java/com/example/fercoganbackend/controller/UserController.java index fe8c8bb..6e03992 100644 --- a/src/main/java/com/example/fercoganbackend/controller/UserController.java +++ b/src/main/java/com/example/fercoganbackend/controller/UserController.java @@ -66,18 +66,10 @@ public class UserController { // ✅ Actualizar usuario (por id) @PutMapping("/{id}") public Usuario actualizarUsuario(@PathVariable Long id, @RequestBody Usuario usuario) { - Usuario existente = service.getAll().stream() - .filter(u -> u.getId().equals(id)) - .findFirst() - .orElseThrow(() -> new RuntimeException("Usuario no encontrado")); - - existente.setUsername(usuario.getUsername()); - existente.setPassword(usuario.getPassword()); - existente.setRoles(usuario.getRoles()); - existente.setAprobado(usuario.isAprobado()); - return service.registrarUsuario(existente.getUsername(), existente.getPassword(), existente.getRoles()); + return service.actualizarUsuario(id, usuario); } + // ✅ Eliminar usuario @DeleteMapping("/{id}") public void eliminarUsuario(@PathVariable Long id) { diff --git a/src/main/java/com/example/fercoganbackend/service/UsuarioService.java b/src/main/java/com/example/fercoganbackend/service/UsuarioService.java index 31556f8..e8092c4 100644 --- a/src/main/java/com/example/fercoganbackend/service/UsuarioService.java +++ b/src/main/java/com/example/fercoganbackend/service/UsuarioService.java @@ -30,6 +30,19 @@ public class UsuarioService { return repo.save(u); } + public Usuario actualizarUsuario(Long id, Usuario usuario) { + Usuario existente = repo.findById(id) + .orElseThrow(() -> new RuntimeException("Usuario no encontrado")); + + existente.setUsername(usuario.getUsername()); + existente.setPassword(encoder.encode(usuario.getPassword())); + existente.setRoles(usuario.getRoles()); + existente.setAprobado(usuario.isAprobado()); + existente.setVisible(usuario.getVisible()); + + return repo.save(existente); // <-- Aquí sí se actualiza el existente + } + public List listarPendientes() { return repo.findAll().stream().filter(u -> !u.isAprobado()).toList(); }