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

Haga lo que hicimos

SerieService.java

package com.aluracursos.screenmatch.service;

import com.aluracursos.screenmatch.dto.SerieDTO;
import com.aluracursos.screenmatch.model.Serie;
import com.aluracursos.screenmatch.repository.SerieRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

@Service
public class SerieService {
@Autowired
private SerieRepository repository;

public List<SerieDTO> obtenerTodasLasSeries() {
    return convierteDatos(repository.findAll());
}

public List<SerieDTO> obtenerTop5() {
    return convierteDatos(repository.findTop5ByOrderByEvaluacionDesc());
}
public List<SerieDTO> obtenerLanzamientosMasRecientes(){
    return convierteDatos(repository.lanzamientosMasRecientes());
}
public List<SerieDTO> convierteDatos(List<Serie> serie){
    return serie.stream()
            .map(s -> new SerieDTO(s.getId(), s.getTitulo(), s.getTotalTemporadas(), s.getEvaluacion(), s.getPoster(),
                    s.getGenero(), s.getActores(), s.getSinopsis()))
            .collect(Collectors.toList());
}

public SerieDTO obtenerPorId(Long id) {
    Optional<Serie> serie = repository.findById(id);
    if (serie.isPresent()){
        Serie s = serie.get();
        return new SerieDTO(s.getId(), s.getTitulo(), s.getTotalTemporadas(), s.getEvaluacion(), s.getPoster(),
                s.getGenero(), s.getActores(), s.getSinopsis());
    }
    return null;
}

}
Copia el código
SerieController.java

package com.aluracursos.screenmatch.controller;

import com.aluracursos.screenmatch.dto.SerieDTO;
import com.aluracursos.screenmatch.service.SerieService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@RestController
@RequestMapping("/series")
public class SerieController {
@Autowired
private SerieService servicio;

@GetMapping()
public List<SerieDTO> obtenerTodasLasSeries(){
    return servicio.obtenerTodasLasSeries();
}

@GetMapping("/top5")
public List<SerieDTO> obtenerTop5(){
    return servicio.obtenerTop5();
}
@GetMapping("/lanzamientos")
public List<SerieDTO> obtenerLanzamientosMasRecientes(){
    return servicio.obtenerLanzamientosMasRecientes();
}

@GetMapping("/{id}")
public SerieDTO obtenerPorId(@PathVariable Long id){
    return servicio.obtenerPorId(id);
}

}
Copia el código
En el Servicio, se creó el método convierteDatos() para convertir una lista de series en seriesDto, ya que ese código estaba siendo repetido algunas veces