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

Haga lo que hicimos: conectando con PostgreSQL

spring.datasource.url=jdbc:postgresql://${DB_HOST}/${DB_NAME}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
hibernate.dialect=org.hibernate.dialect.HSQLDialect

spring.jpa.hibernate.ddl-auto=update

SerieRepository.java

package com.aluracursos.screenmatch.repository;

import com.aluracursos.screenmatch.model.Serie;
import org.springframework.data.jpa.repository.JpaRepository;

public interface SerieRepository extends JpaRepository<Serie, Long> {
}

“ScreenmatchApplication.java”

package com.aluracursos.screenmatch;

import com.aluracursos.screenmatch.principal.Principal;
import com.aluracursos.screenmatch.repository.SerieRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ScreenmatchApplication implements CommandLineRunner {
@Autowired
private SerieRepository repository;

public static void main(String[] args) {
    SpringApplication.run(ScreenmatchApplication.class, args);
}

@Override
public void run(String... args) throws Exception {
    Principal principal = new Principal(repository);
    principal.muestraElMenu();
}

}

Principal.java”

package com.aluracursos.screenmatch.principal;

import com.aluracursos.screenmatch.model.DatosSerie;
import com.aluracursos.screenmatch.model.DatosTemporada;
import com.aluracursos.screenmatch.model.Serie;
import com.aluracursos.screenmatch.repository.SerieRepository;
import com.aluracursos.screenmatch.service.ConsumoAPI;
import com.aluracursos.screenmatch.service.ConvierteDatos;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

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=4fc7c187";
private ConvierteDatos conversor = new ConvierteDatos();
private List datosSeries = new ArrayList<>();

private SerieRepository repository;
public Principal(SerieRepository repository) {
    this.repository = repository;
}

public void muestraElMenu(){
    var opcion = -1;
    while (opcion != 0){
        var menu = """
          1 - Buscar series 
          2 - Buscar episodios
          3 - Listar 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:
            listarSeriesBuscadas();
            break;
        case 0:
            System.out.println("Cerrando la aplicación...");
            break;
        default:
            System.out.println("Opción inválida");
    }
    }
}

private void buscarSerieWeb() {
    DatosSerie datos = getDatosSerie();
    Serie serie = new Serie(datos);
    repository.save(serie);
    //datosSeries.add(datos);
    System.out.println(datos);

}

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);
    DatosSerie datos = conversor.obtenerDatos(json, DatosSerie.class);
    System.out.println(datos.sinopsis());
    return datos;
}

private void buscarEpisodioPorSerie(){
    DatosSerie datosSerie = getDatosSerie();
    List<DatosTemporada> temporadas = new ArrayList<>();

    for (int i = 1; i <= datosSerie.totalTemporadas(); i++) {
        var json = consumoApi.obtenerDatos(URL_BASE + datosSerie.titulo().replace(" ", "+") + "&season=" + i + API_KEY);
        DatosTemporada datosTemporada = conversor.obtenerDatos(json, DatosTemporada.class);
        temporadas.add(datosTemporada);
    }
    temporadas.forEach(System.out::println);
}
private void listarSeriesBuscadas() {
    List<Serie> series = repository.findAll();
    series.stream()
            .sorted(Comparator.comparing(Serie::getGenero))
            .forEach(System.out::println);

}

}

1 respuesta

Hola,

Gracias por compartir tu código con nosotros. Recuerda que estamos aquí para ayudarte. Si necesitas ayuda, no dudes en buscarnos en el foro.

Queremos recordarte que estamos priorizando el uso del foro para resolver dudas, ya que así podemos optimizar los tiempos de respuesta y asegurarnos de que todos puedan beneficiarse de las respuestas.

Además, para que no dejes de compartir tus códigos, actividades y ejercicios, en Discord. Allí puedes mostrar lo que estás haciendo, recibir sugerencias y colaborar con tus compañeros.

¡Te esperamos por allá!

Un saludo.

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