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