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 en el aula: consumiendo una API, creando clases e interfaces, e implementando métodos

package com.aluracursos.screenmatch.principal;

import com.aluracursos.screenmatch.model.DatosEpisodio;
import com.aluracursos.screenmatch.model.DatosSerie;
import com.aluracursos.screenmatch.model.DatosTemporadas;
import com.aluracursos.screenmatch.service.ConsumoAPI;
import com.aluracursos.screenmatch.service.ConvierteDatos;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Principal {

private Scanner teclado = new Scanner(System.in);
private ConsumoAPI consumoApi = new ConsumoAPI();
private ConvierteDatos conversor = new ConvierteDatos();
private final String API_KEY = "&apikey=4fc7c187";
private final String URL_BASE = "https://www.omdbapi.com/?t=";
/*
Constantes o valores fijos
 */

public void muestraElMenuPrincipal(){
    System.out.println("Por favor ingrese el nombre de la serie que deseas buscar: ");
    var nombreSerie  = teclado.nextLine();
    /*
    Reemplazamos los espacios por un +
     */
    var json = consumoApi.obtenerDatos(URL_BASE + nombreSerie.replace(" ", "+")+API_KEY);
    var datos = conversor.obtenerDatos(json, DatosSerie.class);
    System.out.println(datos);

    //Busca los datos de todas las temporadas

    List<DatosTemporadas> temporadas = new ArrayList<>();
    /*
    For para iterar las temporadas
     */
    for (int i = 1; i <= datos.totalTemporadas() ; i++) {
        json = consumoApi.obtenerDatos(	URL_BASE + nombreSerie.replace(" ", "+")+"&Season="+i+API_KEY);

        var datosTemporadas = conversor.obtenerDatos(json, DatosTemporadas.class);
        temporadas.add(datosTemporadas);

    }
  //  temporadas.forEach(System.out::println);

    //mostrar el titulo de los episodios

    //for (int i = 0; i < datos.totalTemporadas() ; i++) {
    //    List<DatosEpisodio> episodiosTemporadas = temporadas.get(i).episodios();
    //    for (int j = 0; j < episodiosTemporadas.size(); j++) {
    //        System.out.println(episodiosTemporadas.get(j).titulo() + " " + episodiosTemporadas.get(j).fechaDeLanzamiento());

//
// }
//
//}
//simplificar los bucles con expresines lambda
temporadas.forEach(t -> t.episodios().forEach(ep -> System.out.println(ep.titulo())));
}
}