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 { ...@@ -35,11 +35,11 @@ public class UsuariosController {
public void mapeadoExcepcionConstraintViolationException() {} public void mapeadoExcepcionConstraintViolationException() {}
@PostMapping("/") @PostMapping("/")
public ResponseEntity<String> registrarUsuario(@RequestBody DTOUsuario dtoUsuario) { public ResponseEntity<?> registrarUsuario(@RequestBody DTOUsuario dtoUsuario) {
try { try {
Usuario usuario = mapper.entity(dtoUsuario); Usuario usuario = mapper.entity(dtoUsuario);
servicioUsuarios.crearUsuario(usuario); DTOLoginRespuesta respuesta = servicioUsuarios.crearUsuario(usuario);
return ResponseEntity.status(HttpStatus.CREATED).build(); return ResponseEntity.status(HttpStatus.CREATED).body(respuesta);
} catch (UsuarioYaRegistrado e) { } catch (UsuarioYaRegistrado e) {
return ResponseEntity.status(HttpStatus.CONFLICT).body("correo"); return ResponseEntity.status(HttpStatus.CONFLICT).body("correo");
} catch (NombreUsuarioYaRegistrado e) { } catch (NombreUsuarioYaRegistrado e) {
...@@ -50,6 +50,7 @@ public class UsuariosController { ...@@ -50,6 +50,7 @@ public class UsuariosController {
} }
@PostMapping("/{email}") @PostMapping("/{email}")
public ResponseEntity<?> iniciarSesion(@PathVariable String email, @RequestBody Map<String, String> clave) { public ResponseEntity<?> iniciarSesion(@PathVariable String email, @RequestBody Map<String, String> clave) {
try { try {
......
...@@ -61,7 +61,7 @@ public class ServicioUsuarios { ...@@ -61,7 +61,7 @@ public class ServicioUsuarios {
*/ */
private static final Logger logger = LoggerFactory.getLogger(ServicioUsuarios.class); 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())); usuario.setContrasenia(passwordEncoder.encode(usuario.getContrasenia()));
if (usuario.getEmail().equalsIgnoreCase(admin.getEmail())) { if (usuario.getEmail().equalsIgnoreCase(admin.getEmail())) {
...@@ -82,10 +82,21 @@ public class ServicioUsuarios { ...@@ -82,10 +82,21 @@ public class ServicioUsuarios {
usuario.setBibliotecaPersonal(new BibliotecaPersonal(usuario)); usuario.setBibliotecaPersonal(new BibliotecaPersonal(usuario));
usuario.getBibliotecaPersonal().setUsuario(usuario); usuario.getBibliotecaPersonal().setUsuario(usuario);
repositorioUsuario.guardar(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. * Autentica a un usuario y genera un token JWT si las credenciales son correctas.
* @param email Email del usuario * @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