package com.entronomia.aplicaciones.ProyectoSeis.servicio;
import com.entronomia.aplicaciones.ProyectoSeis.Repositorio.SerieRepository;
import com.entronomia.aplicaciones.ProyectoSeis.dto.SerieDTO;
import com.entronomia.aplicaciones.ProyectoSeis.modelo.Serie;
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 serieRepository;
public List<SerieDTO> mostrarTodasLasSeries() {
return convertirDatosSerieADTOSerie(serieRepository.findAll());
}
public List<SerieDTO> mostrarSeriesTop5() {
return convertirDatosSerieADTOSerie(serieRepository.findTop5ByOrderByEvaluacionDesc());
}
public List<SerieDTO> obtenerLanzamientosMasRecientes() {
return convertirDatosSerieADTOSerie(serieRepository.obtenerLanzamientosMasRecientes());
}
public List<SerieDTO> convertirDatosSerieADTOSerie(List<Serie> listaSeries) {
return listaSeries.stream()
.map(s -> new SerieDTO(s.getId(), s.getTitulo(), s.getNumeroDeTemporadas(), s.getEvaluacion(), s.getGenero(), s.getPoster(), s.getSinopsis(), s.getActores()))
.collect(Collectors.toList());
}
public SerieDTO obtenerSeriePorId(Long id) {
Optional<Serie> sx = serieRepository.findById(id);
if (sx.isPresent()) {
Serie s = sx.get();
return new SerieDTO(s.getId(), s.getTitulo(), s.getNumeroDeTemporadas(), s.getEvaluacion(), s.getGenero(), s.getPoster(), s.getSinopsis(), s.getActores());
} else {
return null;
}
}
}
package com.entronomia.aplicaciones.ProyectoSeis.controller;
import com.entronomia.aplicaciones.ProyectoSeis.Repositorio.SerieRepository;
import com.entronomia.aplicaciones.ProyectoSeis.dto.SerieDTO;
import com.entronomia.aplicaciones.ProyectoSeis.modelo.Serie;
import com.entronomia.aplicaciones.ProyectoSeis.servicio.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;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/series")
public class SerieController {
@Autowired
private SerieService serieServicio;
@GetMapping()
public List<SerieDTO> mostrarTodasLasSeries() {
return serieServicio.mostrarTodasLasSeries();
}
@GetMapping("/inicio")
public String mostrarMensaje() {
return "Mensaje de Prueba";
}
@GetMapping("/top5")
public List<SerieDTO> mostrarSeriesTop5() {
return serieServicio.mostrarSeriesTop5();
}
@GetMapping("/lanzamientos")
public List<SerieDTO> obtenerLanzamientosMasRecientes() {
return serieServicio.obtenerLanzamientosMasRecientes();
}
@GetMapping("/{id}")
public SerieDTO obtenerSeriePorId(@PathVariable Long id) {
return serieServicio.obtenerSeriePorId(id);
}
}