GET /series/{id}/temporadas/top
package com.tuempresa.series.controller;
import com.tuempresa.series.dto.DatosEpisodio;
import com.tuempresa.series.service.SerieService;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/series")
public class SerieController {
private final SerieService servicio;
public SerieController(SerieService servicio) {
this.servicio = servicio;
}
@GetMapping("/{id}/temporadas/top")
public List<DatosEpisodio> obtenerTopEpisodios(@PathVariable Long id) {
return servicio.obtenerTopEpisodios(id);
}
}
package com.tuempresa.series.service;
import com.tuempresa.series.dto.DatosEpisodio;
import com.tuempresa.series.repository.EpisodioRepository;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class SerieService {
private final EpisodioRepository episodioRepository;
public SerieService(EpisodioRepository episodioRepository) {
this.episodioRepository = episodioRepository;
}
public List<DatosEpisodio> obtenerTopEpisodios(Long idSerie) {
return episodioRepository
.findTop5BySerieIdOrderByEvaluacionDesc(idSerie)
.stream()
.map(e -> new DatosEpisodio(
e.getTemporada(),
e.getTitulo(),
e.getNumeroEpisodio(),
e.getEvaluacion()
))
.toList();
}
}
package com.tuempresa.series.service;
import com.tuempresa.series.dto.DatosEpisodio;
import com.tuempresa.series.repository.EpisodioRepository;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class SerieService {
private final EpisodioRepository episodioRepository;
public SerieService(EpisodioRepository episodioRepository) {
this.episodioRepository = episodioRepository;
}
public List<DatosEpisodio> obtenerTopEpisodios(Long idSerie) {
return episodioRepository
.findTop5BySerieIdOrderByEvaluacionDesc(idSerie)
.stream()
.map(e -> new DatosEpisodio(
e.getTemporada(),
e.getTitulo(),
e.getNumeroEpisodio(),
e.getEvaluacion()
))
.toList();
}
}
package com.tuempresa.series.repository;
import com.tuempresa.series.model.Episodio;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface EpisodioRepository extends JpaRepository<Episodio, Long> {
List<Episodio> findTop5BySerieIdOrderByEvaluacionDesc(Long idSerie);
}
package com.tuempresa.series.dto;
public record DatosEpisodio(
Integer temporada,
String titulo,
Integer numeroEpisodio,
Double evaluacion
) {
}