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
Some checks failed
Deploy Spring Boot App / build-and-deploy (push) Has been cancelled
This commit is contained in:
@@ -68,10 +68,10 @@ public class UserController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ✅ Actualizar usuario (por id)
|
// ✅ Actualizar usuario (por id)
|
||||||
@PutMapping("/{id}")
|
//@PutMapping("/{id}")
|
||||||
public Usuario actualizarUsuario(@PathVariable Long id, @RequestBody Usuario usuario) {
|
//public Usuario actualizarUsuario(@PathVariable Long id, @RequestBody Usuario usuario) {
|
||||||
return service.actualizarUsuario(id, usuario);
|
// return service.actualizarUsuario(id, usuario);
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
// ✅ Eliminar usuario
|
// ✅ Eliminar usuario
|
||||||
@@ -97,6 +97,13 @@ public class UserController {
|
|||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PutMapping("/{id}")
|
||||||
|
public Usuario actualizarUsuario(@PathVariable Long id, @RequestBody UsuarioRequest request) {
|
||||||
|
return service.actualizarParcial(id, request);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ✅ DTO interno para registro
|
// ✅ DTO interno para registro
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
package com.example.fercoganbackend.service;
|
package com.example.fercoganbackend.service;
|
||||||
|
import com.example.fercoganbackend.controller.UserController;
|
||||||
import com.example.fercoganbackend.entity.Rol;
|
import com.example.fercoganbackend.entity.Rol;
|
||||||
import com.example.fercoganbackend.entity.Roles;
|
import com.example.fercoganbackend.entity.Roles;
|
||||||
import com.example.fercoganbackend.entity.Usuario;
|
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
|
.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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
spring.application.name=fercoganbackend
|
spring.application.name=fercoganbackend
|
||||||
spring.profiles.active=prod
|
spring.profiles.active=dev
|
||||||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||||
|
|
||||||
spring.jpa.hibernate.ddl-auto=update
|
spring.jpa.hibernate.ddl-auto=update
|
||||||
|
|||||||
Reference in New Issue
Block a user