Hola, ¿qué tal? Comparto mi implementación del endpoint para obtener el top 5 de episodios de una serie.
Clase SerieController
@GetMapping("/{id}/temporadas/top")
public List<EpisodioDTO> obtenerTop5EpisodiosPorSerie(@PathVariable Long id){
return servicio.obtenerTop5EpisodiosPorSerie(id);
}
Clase SerieService
public List<EpisodioDTO> obtenerTop5EpisodiosPorSerie(Long id) {
Optional<Serie> serieOptional = repository.findById(id);
if (serieOptional.isPresent()) {
Serie serie = serieOptional.get();
return repository.top5Episodios(serie).stream().map(e -> new EpisodioDTO(e.getTemporada(), e.getTitulo(),
e.getNumeroEpisodio())).collect(Collectors.toList());
}
return List.of();
}
La idea es usar Optional para manejar el caso en el que la serie no exista y, en ese escenario, devolver una lista vacía en lugar de null