Commit 06a23eb2 by Rubén Ramírez

fix: [UsuariosController]: Añadidos un par de métodos para más claridad

parent 1a1fa895
...@@ -3,14 +3,12 @@ package com.ujaen.tfg.mangaffinity.rest; ...@@ -3,14 +3,12 @@ package com.ujaen.tfg.mangaffinity.rest;
import com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonal; import com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonal;
import com.ujaen.tfg.mangaffinity.entidades.Usuario; import com.ujaen.tfg.mangaffinity.entidades.Usuario;
import com.ujaen.tfg.mangaffinity.excepciones.NombreUsuarioYaCogido; import com.ujaen.tfg.mangaffinity.excepciones.NombreUsuarioYaCogido;
import com.ujaen.tfg.mangaffinity.excepciones.NombreUsuarioYaRegistrado;
import com.ujaen.tfg.mangaffinity.excepciones.UsuarioNoExiste; import com.ujaen.tfg.mangaffinity.excepciones.UsuarioNoExiste;
import com.ujaen.tfg.mangaffinity.excepciones.UsuarioYaRegistrado; import com.ujaen.tfg.mangaffinity.excepciones.UsuarioYaRegistrado;
import com.ujaen.tfg.mangaffinity.rest.DTO.DTOBibliotecaPersonal; import com.ujaen.tfg.mangaffinity.rest.DTO.DTOBibliotecaPersonal;
import com.ujaen.tfg.mangaffinity.rest.DTO.DTOLoginRespuesta; import com.ujaen.tfg.mangaffinity.rest.DTO.DTOLoginRespuesta;
import com.ujaen.tfg.mangaffinity.rest.DTO.DTOUsuario; import com.ujaen.tfg.mangaffinity.rest.DTO.DTOUsuario;
import com.ujaen.tfg.mangaffinity.rest.DTO.Mapper; import com.ujaen.tfg.mangaffinity.rest.DTO.Mapper;
import com.ujaen.tfg.mangaffinity.seguridad.JwtUtil;
import com.ujaen.tfg.mangaffinity.servicios.ServicioUsuarios; import com.ujaen.tfg.mangaffinity.servicios.ServicioUsuarios;
import jakarta.validation.ConstraintViolationException; import jakarta.validation.ConstraintViolationException;
import jakarta.validation.Valid; import jakarta.validation.Valid;
...@@ -18,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -18,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Map; import java.util.Map;
@RestController @RestController
...@@ -44,7 +41,7 @@ public class UsuariosController { ...@@ -44,7 +41,7 @@ public class UsuariosController {
* - 500 INTERNAL SERVER ERROR en caso de error inesperado. * - 500 INTERNAL SERVER ERROR en caso de error inesperado.
*/ */
@PostMapping("/") @PostMapping("/")
public ResponseEntity<?> registrarUsuario(@RequestBody DTOUsuario dtoUsuario) { public ResponseEntity<?> registrarUsuario(@RequestBody @Valid DTOUsuario dtoUsuario) {
try { try {
Usuario usuario = mapper.entity(dtoUsuario); Usuario usuario = mapper.entity(dtoUsuario);
DTOLoginRespuesta respuesta = servicioUsuarios.crearUsuario(usuario); DTOLoginRespuesta respuesta = servicioUsuarios.crearUsuario(usuario);
...@@ -88,11 +85,19 @@ public class UsuariosController { ...@@ -88,11 +85,19 @@ public class UsuariosController {
* Devuelve: * Devuelve:
* - 200 OK con DTOBibliotecaPersonal si la biblioteca existe. * - 200 OK con DTOBibliotecaPersonal si la biblioteca existe.
* - 404 NOT FOUND si el usuario no tiene una biblioteca. * - 404 NOT FOUND si el usuario no tiene una biblioteca.
* - 500 INTERNAL SERVER ERROR en caso de error inesperado.
*/ */
@GetMapping("/{usuarioId}/biblioteca") @GetMapping("/{usuarioId}/biblioteca")
public ResponseEntity<DTOBibliotecaPersonal> obtenerBiblioteca(@PathVariable Long usuarioId) { public ResponseEntity<?> obtenerBiblioteca(@PathVariable Long usuarioId) {
BibliotecaPersonal biblioteca = servicioUsuarios.obtenerBibliotecaDeUsuario(usuarioId); try {
return ResponseEntity.ok(new DTOBibliotecaPersonal(biblioteca)); BibliotecaPersonal biblioteca = servicioUsuarios.obtenerBibliotecaDeUsuario(usuarioId);
if (biblioteca == null) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("No se encontró la biblioteca");
}
return ResponseEntity.ok(new DTOBibliotecaPersonal(biblioteca));
} catch (RuntimeException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error inesperado");
}
} }
/** /**
...@@ -101,11 +106,18 @@ public class UsuariosController { ...@@ -101,11 +106,18 @@ public class UsuariosController {
* Devuelve: * Devuelve:
* - 200 OK con el ID del usuario si existe. * - 200 OK con el ID del usuario si existe.
* - 404 NOT FOUND si el usuario no está registrado. * - 404 NOT FOUND si el usuario no está registrado.
* - 500 INTERNAL SERVER ERROR en caso de error inesperado.
*/ */
@GetMapping("/email/{email}") @GetMapping("/email/{email}")
public ResponseEntity<Long> obtenerIdPorEmail(@PathVariable String email) { public ResponseEntity<?> obtenerIdPorEmail(@PathVariable String email) {
Usuario usuario = servicioUsuarios.buscaUsuario(email); try {
return ResponseEntity.ok(usuario.getId()); Usuario usuario = servicioUsuarios.buscaUsuario(email);
return ResponseEntity.ok(usuario.getId());
} catch (UsuarioNoExiste e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
} catch (RuntimeException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
} }
} }
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