| src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailOrderService.java | ●●●●● Patch | Ansicht | Raw | Blame | Historie | |
| src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailSelectChecker.java | ●●●●● Patch | Ansicht | Raw | Blame | Historie |
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailOrderService.java
@@ -5,6 +5,7 @@ import de.gedoplan.seminar.sbt.di.exercise.repository.CocktailOrderRepository; import de.gedoplan.seminar.sbt.di.exercise.repository.CocktailRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -16,6 +17,9 @@ @Autowired CocktailRepository cocktailRepository; @Autowired private ApplicationEventPublisher eventPublisher; public Integer createNewOrder() { CocktailOrder cocktailOrder = new CocktailOrder(); @@ -31,6 +35,8 @@ Cocktail cocktail = cocktailRepository.findById(cocktailId) .orElseThrow(() -> new IllegalArgumentException()); eventPublisher.publishEvent(cocktail); cocktailOrder.addCocktail(cocktailId); } src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailSelectChecker.java
Neue Datei @@ -0,0 +1,25 @@ package de.gedoplan.seminar.sbt.di.exercise.service; import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail; import de.gedoplan.seminar.sbt.di.exercise.exception.OutOfStockException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; import static java.util.function.Predicate.not; @Component public class CocktailSelectChecker { @Autowired IngredientService ingredientService; @EventListener public void select(Cocktail cocktail) { ingredientService.beveragesNotAvailable(cocktail) .stream().findFirst().ifPresent(beverage -> { throw new OutOfStockException(beverage); }); } }