add: se modifico el put para que guarde dependiendo de lo que se le pase, se modifico el crear uisuario para que aceptte el rol
Some checks failed
Deploy Spring Boot App / build-and-deploy (push) Has been cancelled

This commit is contained in:
2026-02-24 10:58:21 -04:00
parent 95c2e57ab1
commit 090d6c9a64
3 changed files with 40 additions and 5 deletions

View File

@@ -1,4 +1,5 @@
package com.example.fercoganbackend.service;
import com.example.fercoganbackend.controller.UserController;
import com.example.fercoganbackend.entity.Rol;
import com.example.fercoganbackend.entity.Roles;
import com.example.fercoganbackend.entity.Usuario;
@@ -95,6 +96,33 @@ public class UsuarioService {
.orElse(null); // O podrías lanzar una excepción si el usuario no existe
}
public Usuario actualizarParcial(Long id, UserController.UsuarioRequest request) {
// 1. Buscamos el usuario actual o lanzamos error si no existe
Usuario usuarioExistente = repo.findById(id)
.orElseThrow(() -> new RuntimeException("Usuario no encontrado"));
// 2. Actualizamos solo si el campo no es nulo
if (request.getUsername() != null) {
usuarioExistente.setUsername(request.getUsername());
}
if (request.getPassword() != null) {
// ¡No olvides encriptarla si cambias el password!
usuarioExistente.setPassword(request.getPassword());
}
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
}
// 3. Guardamos los cambios
return repo.save(usuarioExistente);
}
}