Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

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

1 respuesta

Hola David,

Gracias por compartir tu código con nosotros. Es muy bueno ver cómo vas poniendo en práctica lo que aprendes.

Te recomiendo que puedas interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tus soluciones y proyectos, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!