diff --git a/src/main/java/io/github/matheusfy/screanmatch/application/Principal.java b/src/main/java/io/github/matheusfy/screanmatch/application/Principal.java index 4b73572..f1e0cfb 100644 --- a/src/main/java/io/github/matheusfy/screanmatch/application/Principal.java +++ b/src/main/java/io/github/matheusfy/screanmatch/application/Principal.java @@ -48,9 +48,8 @@ private void exibeMenuSerie(){ String opcao = "-1"; while(!opcao.equals("0")){ - System.out.println("1 - Buscar série \n2 - Buscar episódio \n3 - Lista Séries buscadas \n4 - pega a primeira seria do banco\n0 - Sair"); + System.out.println("1 - Buscar série \n2 - Buscar episódio \n3 - Lista séries buscadas \n4 - Buscar série por categoria \n99 - Limpar console\n0 - Sair"); opcao = leitor.nextLine(); - switch (opcao){ case "1" ->{ @@ -66,7 +65,7 @@ private void exibeMenuSerie(){ } case "3" -> listarSeriesBuscadas(); - + case "4" -> buscarSeriesCategoria(); case "0" -> System.out.println("Saindo do menu de série"); } } @@ -84,6 +83,26 @@ private void listarSeriesBuscadas(){ .forEach(System.out::println); } + private void buscarSeriesCategoria(){ + System.out.println("Categorias possíveis: " ); + Categoria.listarCategoria(); + + System.out.println("Digite uma categoria: "); + String categoria = leitor.nextLine(); + + try { + List seriesCategoria = serieRepository.findByCategoria(Categoria.fromString(categoria)); + if(!seriesCategoria.isEmpty()){ + seriesCategoria.forEach(System.out::println); + } else { + System.out.printf("Série não encontrada para categoria %s%n", categoria); + } + } catch (Exception error){ + System.out.println("Não foi possivel obter a lista. Erro: " + error.getMessage()); + } + + } + private boolean seriePresentOnList(String titulo){ Optional serie = serieRepository.findByTituloIgnoreCase(titulo.trim()); diff --git a/src/main/java/io/github/matheusfy/screanmatch/model/enums/Categoria.java b/src/main/java/io/github/matheusfy/screanmatch/model/enums/Categoria.java index 56699c1..7d3051a 100644 --- a/src/main/java/io/github/matheusfy/screanmatch/model/enums/Categoria.java +++ b/src/main/java/io/github/matheusfy/screanmatch/model/enums/Categoria.java @@ -16,11 +16,17 @@ public enum Categoria { public static Categoria fromString(String text) { for (Categoria categoria : Categoria.values()) { - if (categoria.categoriaOmdb.equalsIgnoreCase(text)) { + if (categoria.categoriaOmdb.equalsIgnoreCase(text) || categoria.toString().equalsIgnoreCase(text)) { return categoria; } } throw new IllegalArgumentException("Nenhuma categoria encontrada para a string fornecida: " + text); } + public static void listarCategoria(){ + for(Categoria categoria: Categoria.values()){ + System.out.println(categoria); + } + } + } diff --git a/src/main/java/io/github/matheusfy/screanmatch/model/repository/SerieRepository.java b/src/main/java/io/github/matheusfy/screanmatch/model/repository/SerieRepository.java index e304c40..ba347b2 100644 --- a/src/main/java/io/github/matheusfy/screanmatch/model/repository/SerieRepository.java +++ b/src/main/java/io/github/matheusfy/screanmatch/model/repository/SerieRepository.java @@ -1,18 +1,18 @@ package io.github.matheusfy.screanmatch.model.repository; import io.github.matheusfy.screanmatch.model.entity.Serie; +import io.github.matheusfy.screanmatch.model.enums.Categoria; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; -import javax.swing.text.html.Option; import java.util.List; import java.util.Optional; @Repository public interface SerieRepository extends JpaRepository { -// @Query(value = "SELECT * FROM series WHERE lower(titulo)=?",nativeQuery = true) Optional findByTituloIgnoreCase(String titulo); + List findByCategoria(Categoria categoria); + }