Coloquei apenas as duas pastas "principais" do projeto, pois não caberia tudo. Ficando de fora o DadosEpsodio, DadosSerie, DadosTemporada, ConsumoApi, ConverteDados, IConverteDados.
package br.com.alura.screenmatch.principal;
import br.com.alura.screenmatch.model.DadosEpisodio;
import br.com.alura.screenmatch.model.DadosSerie;
import br.com.alura.screenmatch.model.DadosTemporada;
import br.com.alura.screenmatch.service.ConsumoApi;
import br.com.alura.screenmatch.service.ConverteDados;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import static java.lang.System.out;
public class Principal {
private Scanner leitura = new Scanner(System.in);
private ConsumoApi consumo = new ConsumoApi();
private ConverteDados conversor = new ConverteDados();
private final String ENDERECO = "https://www.omdbapi.com/?t=";
private final String API_KEY = "&apikey=...";
public void exibeMenu(){
out.println("Digite o nome da série para a busca");
var nomeSerie = leitura.nextLine();
var json = consumo.obterDados(ENDERECO + nomeSerie.replace(" ", "+") + API_KEY);
DadosSerie dados = conversor.obterDados(json, DadosSerie.class);
out.println(dados);
List<DadosTemporada> temporadas = new ArrayList<>();
for (int i = 1; i<= dados.totalTemporadas(); i++) {
json = consumo.obterDados(ENDERECO + nomeSerie.replace(" ", "+") + "&season=" + i + API_KEY);
DadosTemporada dadosTemporada = conversor.obterDados(json, DadosTemporada.class);
temporadas.add(dadosTemporada);
}
temporadas.forEach(System.out::println);
// for(int i = 0; i < dados.totalTemporadas(); i++){
// List<DadosEpisodio> episodiosTemporada = temporadas.get(i).episodios();
// for (int j = 0; j< episodiosTemporada.size(); j++){
// out.println(episodiosTemporada.get(j).titulo());
// }
// }
temporadas.forEach(t -> t.episodios().forEach(e -> out.println(e.titulo())));
}
}
package br.com.alura.screenmatch;
import br.com.alura.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.exibeMenu();
}
}