package com.entronomia.aplicaciones.proyectoCinco.principal;
import com.entronomia.aplicaciones.proyectoCinco.modelo.DatosEpisodio;
import com.entronomia.aplicaciones.proyectoCinco.modelo.DatosSerie;
import com.entronomia.aplicaciones.proyectoCinco.modelo.DatosTemporada;
import com.entronomia.aplicaciones.proyectoCinco.servicio.ConsumoAPI;
import com.entronomia.aplicaciones.proyectoCinco.servicio.ConversorDatos;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Principal {
private Scanner entrada = new Scanner(System.in);
private ConsumoAPI consumoAPI = new ConsumoAPI();
private final String URL_START = "https://www.omdbapi.com/?t=";
private final String URL_END = "&apikey=xxxxxxxx";
private ConversorDatos conversorDatos = new ConversorDatos();
public void mostrarMenu() {
System.out.println("Escribe el nombre de la serie, cuyos datos deseas conocer");
String nombreSerie = entrada.nextLine();
var json = consumoAPI.obtenerDatos(URL_START + nombreSerie.replace(" ","+") + URL_END);
var datosSerie = conversorDatos.obtenerDatos(json, DatosSerie.class);
System.out.println(datosSerie);
List<DatosTemporada> listaTemporadas = new ArrayList<>();
for (int i = 1; i <= datosSerie.numeroDeTemporadas() ; i++) {
json = consumoAPI.obtenerDatos(URL_START + nombreSerie.replace(" ","+") + "&Season=" + i + URL_END);
var datosTemporada = conversorDatos.obtenerDatos(json, DatosTemporada.class);
listaTemporadas.add(datosTemporada);
}
/* for(DatosTemporada temporada : listaTemporadas){
System.out.println(temporada);
}
for (int i = 0; i < datosSerie.numeroDeTemporadas(); i++) {
List<DatosEpisodio> episodiosEnLaTemporada = listaTemporadas.get(i).listaEpisodios();
for (int j = 0; j < episodiosEnLaTemporada.size(); j++) {
System.out.println(episodiosEnLaTemporada.get(j).titulo());
}
}
*/
listaTemporadas.forEach(t -> t.listaEpisodios().forEach(e -> System.out.println(e.titulo())));
}
}
package com.entronomia.aplicaciones.proyectoCinco.modelo;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.List;
@JsonIgnoreProperties(ignoreUnknown = true)
public record DatosTemporada(
@JsonAlias("Season") Integer numeroTemporada,
@JsonAlias("Episodes") List<DatosEpisodio> listaEpisodios
) {
}
package com.entronomia.aplicaciones.proyectoCinco.modelo;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public record DatosEpisodio(
@JsonAlias("Title") String titulo,
@JsonAlias("Year") Integer anno,
@JsonAlias("Released") String fechaDeLanzamiento
)
{
}
package com.entronomia.aplicaciones.proyectoCinco.modelo;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public record DatosSerie(
@JsonAlias("Title") String titulo,
@JsonAlias("totalSeasons") Integer numeroDeTemporadas)
{
}
package com.entronomia.aplicaciones.proyectoCinco;
import com.entronomia.aplicaciones.proyectoCinco.principal.Principal; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication public class ProyectoCincoApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(ProyectoCincoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
Principal principal = new Principal();
principal.mostrarMenu();
}
}