package com.aluracursos.screenmatch.model;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public record DatosEpisodio(@JsonAlias("Title") String titutlo,
@JsonAlias("Episode") Integer numeroEpisodio,
@JsonAlias("imdbRating")String evaluacion,
@JsonAlias("Released")String fechaDeLanzamiento) {
}
package com.aluracursos.screenmatch.model;
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 numero,
@JsonAlias("Episodes")List episodios) {
}
package com.aluracursos.screenmatch.model;
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 numero,
@JsonAlias("Episodes")List episodios) {
}
package com.aluracursos.screenmatch.principal;
import com.aluracursos.screenmatch.model.DatosEpisodio;
import com.aluracursos.screenmatch.model.DatosSerie;
import com.aluracursos.screenmatch.model.DatosTemporada;
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 final String URL = "https://www.omdbapi.com/?t=";
private final String APIKEY = "&apikey=4fc7c187";
private ConsumoAPI consumoAPI = new ConsumoAPI();
private ConvierteDatos conversor = new ConvierteDatos();
public void muestraElMenu(){
System.out.println("Escribe el nombre de la série que deseas buscar");
var nombreSerie = teclado.nextLine();
var json = consumoAPI.obtenerDatos(URL + nombreSerie.replace(" ", "+") + APIKEY);
//https://www.omdbapi.com/?t=game+of+thrones&apikey=4fc7c187
DatosSerie datos = conversor.obtenerDatos(json, DatosSerie.class);
System.out.println(datos);
List<DatosTemporada> temporadas = new ArrayList<>();
for (int i = 1; i <= datos.totalTemporadas(); i++) {
json = consumoAPI.obtenerDatos(URL + nombreSerie.replace(" ", "+") + "&Season=" + i + APIKEY);
DatosTemporada datosTemporada = conversor.obtenerDatos(json, DatosTemporada.class);
temporadas.add(datosTemporada);
}
temporadas.forEach(System.out::println);
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).titutlo());
}
}
temporadas.forEach(t -> t.episodios().forEach(e -> System.out.println(e.titutlo())));
}
}
package com.aluracursos.screenmatch;
import com.aluracursos.screenmatch.principal.Principal;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ScreenmatchApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(ScreenmatchApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
Principal principal = new Principal();
principal.muestraElMenu();
}
}