Commit 0eaab471 by Rubén Ramírez

feat: [UsuariosController]: Actualizada la función para filtrar los usuarios

parent c595b986
......@@ -127,6 +127,7 @@ public class UsuariosController {
/**
* Modifica los datos de un usuario autenticado a partir del token JWT proporcionado.
*
* Devuelve:
* - 200 OK y DTOLoginRespuesta si la modificación se realiza correctamente.
* - 409 CONFLICT si el correo electrónico o el nombre de usuario ya están registrados.
* - 404 NOT FOUND si el usuario no existe.
......@@ -161,6 +162,7 @@ public class UsuariosController {
/**
* Devuelve una lista de recursos recomendados para un usuario específico.
*
* Devuelve:
* - 200 OK y la lista de recursos recomendados en formato DTORecurso si la operación es exitosa.
* - 500 INTERNAL SERVER ERROR en caso de error inesperado durante el proceso de recomendación.
*/
......@@ -193,6 +195,7 @@ public class UsuariosController {
/**
* Actualiza la descripción y/o la foto de perfil de un usuario concreto.
*
* Devuelve:
* - 204 NO CONTENT si la actualización se realiza correctamente.
* - 400 BAD REQUEST si los datos proporcionados no son válidos.
* - 404 NOT FOUND si el usuario no existe.
......@@ -217,8 +220,7 @@ public class UsuariosController {
/**
* Recupera la información de un usuario a partir de su ID.
*
* @param usuarioId ID del usuario que se desea consultar.
* @return ResponseEntity con:
* Devuelve:
* - 200 OK y los datos del usuario en formato DTOUsuario si se encuentra correctamente.
* - 404 NOT FOUND si no existe ningún usuario con el ID proporcionado.
* - 500 INTERNAL SERVER ERROR en caso de error inesperado.
......@@ -236,21 +238,23 @@ public class UsuariosController {
}
/**
* Filtra y devuelve una lista de usuarios cuyo nombre coincide (parcial o totalmente) con el valor indicado.
* Filtra y devuelve una lista de usuarios según un nombre parcial o devuelve un subconjunto general si no se especifica nombre.
*
* - 200 OK y la lista de usuarios coincidentes si se encuentran resultados.
* - 204 NO CONTENT si no se encuentran usuarios con ese nombre.
* - 400 BAD REQUEST si no se proporciona el parámetro o está vacío.
* Devuelve:
* - 200 OK y la lista de usuarios coincidentes o genéricos si se encuentran resultados.
* - 204 NO CONTENT si no se encuentran usuarios.
* - 500 INTERNAL SERVER ERROR en caso de error inesperado.
*/
@GetMapping
public ResponseEntity<List<DTOUsuario>> filtrarUsuarios(@RequestParam(required = false) String nombre) {
try {
if (nombre == null || nombre.trim().isEmpty()) return ResponseEntity.badRequest().build();
List<Usuario> encontrados;
List<Usuario> encontrados = servicioUsuarios.buscarPorNombre(nombre);
List<DTOUsuario> dto = encontrados.stream().map(mapper::dto).toList();
if (nombre == null || nombre.trim().isEmpty()) encontrados = servicioUsuarios.obtenerAlgunosUsuarios();
else encontrados = servicioUsuarios.buscarPorNombre(nombre);
List<DTOUsuario> dto = encontrados.stream().map(mapper::dto).toList();
return dto.isEmpty() ? ResponseEntity.noContent().build() : ResponseEntity.ok(dto);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
......@@ -258,3 +262,5 @@ public class UsuariosController {
}
}
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