| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | | import java.util.function.Predicate; |
| | | |
| | | @ConditionalOnProperty(name = "cocktailService.mock", havingValue = "false", matchIfMissing = true) |
| | | @Component |
| | | public class CocktailServiceImpl implements CocktailService { |
| | | |
| | | private final CocktailRepository cocktailRepository; |
| | | private final List<Predicate<Cocktail>> filters; |
| | | |
| | | public CocktailServiceImpl(CocktailRepository cocktailRepository) { |
| | | public CocktailServiceImpl(CocktailRepository cocktailRepository, List<Predicate<Cocktail>> filters) { |
| | | this.cocktailRepository = cocktailRepository; |
| | | this.filters = filters; |
| | | } |
| | | |
| | | @Override |
| | | public List<Cocktail> findAll() { |
| | | return cocktailRepository.findAll(); |
| | | return cocktailRepository.findAll().stream() |
| | | .filter(filters.stream().reduce(Predicate::and).orElse(x -> true)) |
| | | .toList(); |
| | | } |
| | | } |