From 154b23203e37aae250a193f3d0aabd0106ca1844 Mon Sep 17 00:00:00 2001 From: asia Date: Sat, 21 Aug 2021 15:42:18 +0200 Subject: [PATCH] Refactoring --- .../hexagonal/ShoppingCartService.java | 8 +++++ .../adapter/in/ShoppingCartController.java | 22 +++++++------ .../adapter/in/ShoppingCartFacade.java | 21 ------------ .../hexagonal/domain/ShoppingCartService.java | 31 ------------------ .../domain/SimpleShoppingCartService.java | 32 +++++++++++++++++++ 5 files changed, 52 insertions(+), 62 deletions(-) create mode 100644 hexagonal/src/main/java/com/baeldung/hexagonal/ShoppingCartService.java delete mode 100644 hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartFacade.java delete mode 100644 hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCartService.java create mode 100644 hexagonal/src/main/java/com/baeldung/hexagonal/domain/SimpleShoppingCartService.java diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/ShoppingCartService.java b/hexagonal/src/main/java/com/baeldung/hexagonal/ShoppingCartService.java new file mode 100644 index 0000000000..25613ed556 --- /dev/null +++ b/hexagonal/src/main/java/com/baeldung/hexagonal/ShoppingCartService.java @@ -0,0 +1,8 @@ +package com.baeldung.hexagonal; + +public interface ShoppingCartService { + + Float getTotalCartValue(); + + void addItem(String name, Integer quantity); +} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartController.java b/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartController.java index b1c0fabe2e..d92f186c84 100644 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartController.java +++ b/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartController.java @@ -3,20 +3,22 @@ package com.baeldung.hexagonal.adapter.in; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import com.baeldung.hexagonal.ShoppingCartService; + @RestController @RequestMapping("/shopping-cart") public class ShoppingCartController { - @Autowired - ShoppingCartFacade apiAdapter; + @Autowired + ShoppingCartService shoppingCartService; - @GetMapping - public Float getTotalCartValue() { - return apiAdapter.getTotalCartValue(); - } + @GetMapping + public Float getTotalCartValue() { + return shoppingCartService.getTotalCartValue(); + } - @PostMapping() - public void addItem(@RequestBody ItemTransportObject item) { - apiAdapter.addItem(item); - } + @PostMapping() + public void addItem(@RequestBody ItemTransportObject item) { + shoppingCartService.addItem(item.getName(), item.getQuantity()); + } } diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartFacade.java b/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartFacade.java deleted file mode 100644 index a162368135..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartFacade.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.baeldung.hexagonal.adapter.in; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.baeldung.hexagonal.domain.ShoppingCartService; - -@Component -class ShoppingCartFacade { - - @Autowired - ShoppingCartService shoppingCartService; - - void addItem(ItemTransportObject item) { - shoppingCartService.addItem(item.getName(), item.getQuantity()); - } - - Float getTotalCartValue() { - return shoppingCartService.getTotalCartValue(); - } -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCartService.java b/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCartService.java deleted file mode 100644 index bc2cbab66a..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCartService.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.baeldung.hexagonal.domain; - -import java.util.HashMap; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.baeldung.hexagonal.adapter.out.Product; -import com.baeldung.hexagonal.domain.ports.ProductRepository; - -@Service -public class ShoppingCartService { - - private final ShoppingCart shoppingCart; - - @Autowired - ProductRepository productRepository; - - public ShoppingCartService() { - this.shoppingCart = new ShoppingCart(new HashMap<>()); - } - - public Float getTotalCartValue() { - return shoppingCart.getTotalCartValue(); - } - - public void addItem(String name, Integer quantity) { - Product product = productRepository.findByName(name); - shoppingCart.addItem(product.toItem(), quantity); - } -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/SimpleShoppingCartService.java b/hexagonal/src/main/java/com/baeldung/hexagonal/domain/SimpleShoppingCartService.java new file mode 100644 index 0000000000..471ab37941 --- /dev/null +++ b/hexagonal/src/main/java/com/baeldung/hexagonal/domain/SimpleShoppingCartService.java @@ -0,0 +1,32 @@ +package com.baeldung.hexagonal.domain; + +import java.util.HashMap; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.baeldung.hexagonal.ShoppingCartService; +import com.baeldung.hexagonal.adapter.out.Product; +import com.baeldung.hexagonal.domain.ports.ProductRepository; + +@Service +public class SimpleShoppingCartService implements ShoppingCartService { + + private final ShoppingCart shoppingCart; + + @Autowired + ProductRepository productRepository; + + public SimpleShoppingCartService() { + this.shoppingCart = new ShoppingCart(new HashMap<>()); + } + + public Float getTotalCartValue() { + return shoppingCart.getTotalCartValue(); + } + + public void addItem(String name, Integer quantity) { + Product product = productRepository.findByName(name); + shoppingCart.addItem(product.toItem(), quantity); + } +}