Hendrik Jungnitsch
2022-09-29 800093309a3e8af6b89f4ea51e04cae40f568664
exercise10
1 Dateien hinzugefügt
1 Dateien geändert
31 ■■■■■ Geänderte Dateien
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailOrderService.java 6 ●●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailSelectChecker.java 25 ●●●●● 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);
                });
    }
}