From 6729f22f99d59e2c3163043102f464ca1e3e3222 Mon Sep 17 00:00:00 2001 From: Soheil Parvizi Date: Sun, 27 Aug 2023 17:36:28 +0200 Subject: [PATCH] Implement updateBeerById in a better way --- .../services/BeerServiceJPA.java | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/src/main/java/guru/springframework/spring6restmvc/services/BeerServiceJPA.java b/src/main/java/guru/springframework/spring6restmvc/services/BeerServiceJPA.java index d19bcb086..e0f20612a 100644 --- a/src/main/java/guru/springframework/spring6restmvc/services/BeerServiceJPA.java +++ b/src/main/java/guru/springframework/spring6restmvc/services/BeerServiceJPA.java @@ -10,7 +10,6 @@ import java.util.List; import java.util.Optional; import java.util.UUID; -import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -44,20 +43,15 @@ public BeerDTO saveNewBeer(BeerDTO beer) { @Override public Optional updateBeerById(UUID beerId, BeerDTO beer) { - AtomicReference> atomicReference = new AtomicReference<>(); - - beerRepository.findById(beerId).ifPresentOrElse(foundBeer -> { - foundBeer.setBeerName(beer.getBeerName()); - foundBeer.setBeerStyle(beer.getBeerStyle()); - foundBeer.setUpc(beer.getUpc()); - foundBeer.setPrice(beer.getPrice()); - atomicReference.set(Optional.of(beerMapper - .beerToBeerDto(beerRepository.save(foundBeer)))); - }, () -> { - atomicReference.set(Optional.empty()); - }); - - return atomicReference.get(); + return beerRepository.findById(beerId) + .map(foundBeer -> { + foundBeer.setBeerName(beer.getBeerName()); + foundBeer.setBeerStyle(beer.getBeerStyle()); + foundBeer.setUpc(beer.getUpc()); + foundBeer.setPrice(beer.getPrice()); + beerRepository.save(foundBeer); + return beerMapper.beerToBeerDto(foundBeer); + }); } @Override