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

creando el menu de screenmatch, agregando informaciones y modelando la serie

Realizamos modificaciones en el menú;

public class Principal { private Scanner teclado = new Scanner(System.in); private ConsumoAPI consumoApi = new ConsumoAPI(); private final String URL_BASE = "https://www.omdbapi.com/?t="; private final String API_KEY = "&apikey="; private ConvierteDatos conversor = new ConvierteDatos();

private List<DatosSerie> datosSeries = new ArrayList<>();

public void muestraElMenu() {
    var opcion = -1;
    while (opcion != 0) {
        var menu = """
                1 - Buscar series 
                2 - Buscar episodios
                3 - Mostrar series buscadas
                              
                0 - Salir
                """;
        System.out.println(menu);
        opcion = teclado.nextInt();
        teclado.nextLine();

        switch (opcion) {
            case 1:
                buscarSerieWeb();
                break;
            case 2:
                buscarEpisodioPorSerie();
                break;
            case 3:
                mostrarSeriesBuscadas();
                break;

            case 0:
                System.out.println("Cerrando la aplicación...");
                break;
            default:
                System.out.println("Opción inválida");
        }
    }

}



private DatosSerie getDatosSerie() {
    System.out.println("Escribe el nombre de la serie que deseas buscar");
    var nombreSerie = teclado.nextLine();
    var json = consumoApi.obtenerDatos(URL_BASE + nombreSerie.replace(" ", "+") + API_KEY);
    System.out.println(json);
    DatosSerie datos = conversor.obtenerDatos(json, DatosSerie.class);
    return datos;
}
private void buscarEpisodioPorSerie() {
    DatosSerie datosSerie = getDatosSerie();
    List<DatosTemporadas> temporadas = new ArrayList<>();

    for (int i = 1; i <= datosSerie.totalTemporadas(); i++) {
        var json = consumoApi.obtenerDatos(URL_BASE + datosSerie.titulo().replace(" ", "+") + "&season=" + i + API_KEY);
        DatosTemporadas datosTemporada = conversor.obtenerDatos(json, DatosTemporadas.class);
        temporadas.add(datosTemporada);
    }
    temporadas.forEach(System.out::println);
}
private void buscarSerieWeb() {
    DatosSerie datos = getDatosSerie();
    datosSeries.add(datos);
    System.out.println(datos);
}
private void mostrarSeriesBuscadas() {
    //se cambia-realizar transformación al tipo de datos serie
    //datosSeries.forEach(System.out::println);
    List<Serie> series = new ArrayList<>();
    series = datosSeries.stream()
            .map(datosSerie -> new Serie(datosSerie))
            .collect(Collectors.toList());

    series.stream()
            .sorted(Comparator.comparing(Serie::getGenero))
            .forEach(System.out::println);
}

}

1 respuesta

Hola Estudiante, espero que te encuentres bien,

Gracias por compartir tu código con nosotros. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

¡Gracias nuevamente! Saludos,

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