From 1398052077932db024b6c75b4c28b3ea1e0a23d9 Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Mo, 14 Nov 2022 11:41:34 +0100
Subject: [PATCH] exercise06

---
 src/main/java/de/gedoplan/seminar/sbt/di/exercise/rest/BarResource.java          |   13 +++++++++++--
 src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/rest/BarResource.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/rest/BarResource.java
index b1bee5f..d707a4a 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/rest/BarResource.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/rest/BarResource.java
@@ -4,6 +4,7 @@
 import de.gedoplan.seminar.sbt.di.exercise.service.BarInfo;
 import de.gedoplan.seminar.sbt.di.exercise.service.CocktailService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -24,6 +25,14 @@
     @Autowired
     private List<Cocktail> cocktails;
 
+    @Qualifier("alcoholic")
+    @Autowired
+    private List<Cocktail> cocktailsAlcoholic;
+
+    @Qualifier("non-alcoholic")
+    @Autowired
+    private List<Cocktail> cocktailsNonAlcoholic;
+
     @GetMapping(path = "name", produces = MediaType.TEXT_PLAIN_VALUE)
     public String getName() {
         return barInfo.getBarName();
@@ -37,11 +46,11 @@
 
     @GetMapping(path = "alc", produces = MediaType.APPLICATION_JSON_VALUE)
     public List<Cocktail> getAlcoholicCocktails() {
-        return List.of();
+        return cocktailsAlcoholic;
     }
 
     @GetMapping(path = "nonalc", produces = MediaType.APPLICATION_JSON_VALUE)
     public List<Cocktail> getNonAlcoholicCocktails() {
-        return List.of();
+        return cocktailsNonAlcoholic;
     }
 }
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java
index 3ceba94..a374b40 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java
@@ -2,21 +2,53 @@
 
 import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
 import org.springframework.web.context.annotation.RequestScope;
 
+import javax.annotation.PostConstruct;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
+@RequestScope
 @Configuration
 public class CocktailsProducer {
 
     @Autowired
     private CocktailService cocktailService;
 
+    private List<Cocktail> cocktailsAlcoholic;
+    private List<Cocktail> cocktailsNonAlcoholic;
+
+    @PostConstruct
+    private void init() {
+        Map<Boolean,List<Cocktail>> cocktails = cocktailService.findAll().stream()
+                .collect(Collectors.groupingBy(Cocktail::isAlcoholic));
+        cocktailsAlcoholic = cocktails.getOrDefault(true,List.of());
+        cocktailsNonAlcoholic = cocktails.getOrDefault(false,List.of());
+    }
+
+    @Primary
     @RequestScope
     @Bean
     protected List<Cocktail> getCocktails() {
         return cocktailService.findAll();
     }
+
+    @Qualifier("alcoholic")
+    @RequestScope
+    @Bean
+    protected List<Cocktail> getCocktailsAlcoholic() {
+        return cocktailsAlcoholic;
+    }
+
+    @Qualifier("non-alcoholic")
+    @RequestScope
+    @Bean
+    protected List<Cocktail> getCocktailsNonAlcoholic() {
+        return cocktailsNonAlcoholic;
+    }
 }

--
Gitblit v1.7.1