Commit 3a98e108 by Rubén Ramírez

fix: [RegistroUsuario]: Actaulizada la función para que también devuelva un…

fix: [RegistroUsuario]: Actaulizada la función para que también devuelva un token y no tener que pasar por el inicio de sesión
parent 95359e1d
......@@ -35,11 +35,11 @@ public class UsuariosController {
public void mapeadoExcepcionConstraintViolationException() {}
@PostMapping("/")
public ResponseEntity<String> registrarUsuario(@RequestBody DTOUsuario dtoUsuario) {
public ResponseEntity<?> registrarUsuario(@RequestBody DTOUsuario dtoUsuario) {
try {
Usuario usuario = mapper.entity(dtoUsuario);
servicioUsuarios.crearUsuario(usuario);
return ResponseEntity.status(HttpStatus.CREATED).build();
DTOLoginRespuesta respuesta = servicioUsuarios.crearUsuario(usuario);
return ResponseEntity.status(HttpStatus.CREATED).body(respuesta);
} catch (UsuarioYaRegistrado e) {
return ResponseEntity.status(HttpStatus.CONFLICT).body("correo");
} catch (NombreUsuarioYaRegistrado e) {
......@@ -50,6 +50,7 @@ public class UsuariosController {
}
@PostMapping("/{email}")
public ResponseEntity<?> iniciarSesion(@PathVariable String email, @RequestBody Map<String, String> clave) {
try {
......
......@@ -61,7 +61,7 @@ public class ServicioUsuarios {
*/
private static final Logger logger = LoggerFactory.getLogger(ServicioUsuarios.class);
public void crearUsuario(@Valid Usuario usuario) {
public DTOLoginRespuesta crearUsuario(@Valid Usuario usuario) {
usuario.setContrasenia(passwordEncoder.encode(usuario.getContrasenia()));
if (usuario.getEmail().equalsIgnoreCase(admin.getEmail())) {
......@@ -82,10 +82,21 @@ public class ServicioUsuarios {
usuario.setBibliotecaPersonal(new BibliotecaPersonal(usuario));
usuario.getBibliotecaPersonal().setUsuario(usuario);
repositorioUsuario.guardar(usuario);
// Generar el token
String token = jwtUtil.generateToken(
usuario.getId(),
usuario.getEmail(),
usuario.getNombreUsuario(),
usuario.getRol()
);
return new DTOLoginRespuesta(token, usuario.getEmail(), usuario.getNombreUsuario());
}
/**
* Autentica a un usuario y genera un token JWT si las credenciales son correctas.
* @param email Email del usuario
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment