From f2ad779322738545defeb0989b9563a985d49f69 Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Di, 04 Okt 2022 14:38:31 +0200
Subject: [PATCH] exercise07

---
 src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java
index 9e49f94..ff9a7e1 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailServiceImpl.java
@@ -6,19 +6,24 @@
 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();
     }
 }

--
Gitblit v1.7.1