Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haz como yo hice

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
) {
}