diff --git a/documentation/microservice_stock/chapter/monolith.patch b/documentation/microservice_stock/chapter/monolith.patch index e8e2194..c5cbb07 100644 --- a/documentation/microservice_stock/chapter/monolith.patch +++ b/documentation/microservice_stock/chapter/monolith.patch @@ -1,6 +1,7 @@ From 0754b05118df8af98963428fe32baf7a81920cb7 Mon Sep 17 00:00:00 2001 +From: Martin Geno Date: Thu, 22 Jun 2017 20:15:07 +0200 -Subject: [PATCH] [TASK] patch for microservice stock +Subject: [PATCH 1/2] [TASK] patch for microservice stock --- .../monolith/domain/DataTransferObjectFactory.java | 2 ++ @@ -31,16 +32,16 @@ index e811855..d72fb53 100644 +++ b/src/main/java/de/mstock/monolith/domain/ProductRepository.java @@ -1,5 +1,7 @@ package de.mstock.monolith.domain; - + +import java.util.List; + import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.Repository; - + @@ -9,4 +11,7 @@ + "where key(i) = ?1 and lower(i.name) = ?2") Product findByI18nName(String language, String name); - + + @Query("select p from Product p") + List findAll(); + @@ -51,7 +52,7 @@ index c230e45..c96f266 100644 +++ b/src/main/java/de/mstock/monolith/service/ShopService.java @@ -59,6 +59,19 @@ } - + /** + * Gets all products in the current language. + * @@ -67,22 +68,22 @@ index c230e45..c96f266 100644 + + /** * Gets a product in the current language. - * + * * @return A simplified Data Transfer Object. diff --git a/src/main/java/de/mstock/monolith/web/HomepageController.java b/src/main/java/de/mstock/monolith/web/HomepageController.java index 90a0acc..4395a42 100644 --- a/src/main/java/de/mstock/monolith/web/HomepageController.java +++ b/src/main/java/de/mstock/monolith/web/HomepageController.java @@ -17,11 +17,24 @@ - + @Autowired private ShopService shopService; + // Addition: contant with the address of the stock microservice adminfrontend + private final String STOCKADMINFRONTENDTEMPLATE = "https://stock.pub.warehost.de/index.html"; - + /** - * Homepage -- * +- * + * Redirect to stock admin frontend + * * @param model Template model @@ -106,18 +107,18 @@ index 52f1ed3..5fbcacf 100644 +++ b/src/main/java/de/mstock/monolith/web/ProductController.java @@ -1,6 +1,7 @@ package de.mstock.monolith.web; - + import java.util.Locale; +import java.util.List; - + import javax.validation.Valid; - + @@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; - + import de.mstock.monolith.service.ReviewService; import de.mstock.monolith.service.ShopService; @@ -66,4 +68,17 @@ public String post(@Valid ReviewForm reviewForm, BindingResult bindingResult, @@ -143,9 +144,9 @@ index a5b76b6..a7d3245 100644 --- a/src/main/java/de/mstock/monolith/web/ProductDTO.java +++ b/src/main/java/de/mstock/monolith/web/ProductDTO.java @@ -6,6 +6,7 @@ - + public class ProductDTO { - + + private int id; private String itemNumber; private ProductWeightUnit unit; @@ -153,7 +154,7 @@ index a5b76b6..a7d3245 100644 @@ -14,6 +15,15 @@ private String description; private List reviews; - + + // Addition: int id, getId() and setID() + public int getId() { + return id; @@ -181,3 +182,131 @@ index 0d7bc31..9b2d0bf 100644

0,00 Euro

Description.

+ +From 0aa115e34ca231eefe2003919467fb017d60a7c2 Mon Sep 17 00:00:00 2001 +From: Martin Geno +Date: Fri, 23 Jun 2017 12:45:24 +0200 +Subject: [PATCH 2/2] [TASK] fix for presentation + +--- + .../de/mstock/monolith/domain/ProductRepository.java | 4 ++++ + .../java/de/mstock/monolith/service/ShopService.java | 19 ++++++++++++++++--- + .../de/mstock/monolith/web/ProductController.java | 10 +++++----- + src/main/resources/templates/product.html | 4 ++-- + 4 files changed, 27 insertions(+), 10 deletions(-) + +diff --git a/src/main/java/de/mstock/monolith/domain/ProductRepository.java b/src/main/java/de/mstock/monolith/domain/ProductRepository.java +index d72fb53..a807fae 100644 +--- a/src/main/java/de/mstock/monolith/domain/ProductRepository.java ++++ b/src/main/java/de/mstock/monolith/domain/ProductRepository.java +@@ -11,6 +11,10 @@ + + "where key(i) = ?1 and lower(i.name) = ?2") + Product findByI18nName(String language, String name); + ++ @Query("select p from Product p join fetch p.i18n i left join fetch i.reviews r " ++ + "where key(i) = ?1 and p.id = ?2") ++ Product findByID(String language, Integer id); ++ + @Query("select p from Product p") + List findAll(); + +diff --git a/src/main/java/de/mstock/monolith/service/ShopService.java b/src/main/java/de/mstock/monolith/service/ShopService.java +index c96f266..4b860d5 100644 +--- a/src/main/java/de/mstock/monolith/service/ShopService.java ++++ b/src/main/java/de/mstock/monolith/service/ShopService.java +@@ -30,7 +30,7 @@ + + /** + * Gets all categories of the current language. +- * ++ * + * @return A simplified Data Transfer Object. + */ + public List getCategories(Locale locale) { +@@ -44,7 +44,7 @@ + + /** + * Gets all products for a category in the current language. +- * ++ * + * @return A simplified Data Transfer Object. + */ + public List getProductsForCategory(Locale locale, String prettyUrlFragment) { +@@ -73,7 +73,20 @@ + + /** + * Gets a product in the current language. +- * ++ * ++ * @return A simplified Data Transfer Object. ++ */ ++ public ProductDTO getProduct(Locale locale, Integer id) { ++ Product product = productRepository.findByID(locale.getLanguage(), id); ++ if (product == null) { ++ throw new NotFoundException(); ++ } ++ return dtoFactory.createProductDTO(product, locale); ++ } ++ ++ /** ++ * Gets a product in the current language. ++ * + * @return A simplified Data Transfer Object. + */ + public ProductDTO getProduct(Locale locale, String prettyUrlFragment) { +diff --git a/src/main/java/de/mstock/monolith/web/ProductController.java b/src/main/java/de/mstock/monolith/web/ProductController.java +index 5fbcacf..22730c5 100644 +--- a/src/main/java/de/mstock/monolith/web/ProductController.java ++++ b/src/main/java/de/mstock/monolith/web/ProductController.java +@@ -31,7 +31,7 @@ + + /** + * Product page +- * ++ * + * @param prettyUrlFragment Pretty URL fragment + * @param model Template model + * @param locale Current locale +@@ -46,7 +46,7 @@ public String product(@PathVariable String prettyUrlFragment, Model model, Local + + /** + * Post a review +- * ++ * + * @param reviewForm Form data + * @param bindingResult Form binding result after validation + * @param prettyUrlFragment Product context +@@ -69,10 +69,10 @@ public String post(@Valid ReviewForm reviewForm, BindingResult bindingResult, + return TEMPLATE; + } + +- @RequestMapping(value = "/products/{prettyUrlFragment:[\\w-]+}.json", method = RequestMethod.GET) ++ @RequestMapping(value = "/products/{id}.json", method = RequestMethod.GET) + @ResponseBody +- public ProductDTO productJson(@PathVariable String prettyUrlFragment, Locale locale) { +- return shopService.getProduct(locale, prettyUrlFragment); ++ public ProductDTO productJson(@PathVariable Integer id, Locale locale) { ++ return shopService.getProduct(locale, id); + } + + @RequestMapping(value = "/products.json", method = RequestMethod.GET) +diff --git a/src/main/resources/templates/product.html b/src/main/resources/templates/product.html +index 9b2d0bf..235f690 100644 +--- a/src/main/resources/templates/product.html ++++ b/src/main/resources/templates/product.html +@@ -33,7 +33,7 @@ +

Product Name

+ + +- ++ + +

0,00 Euro

+

Description.

+@@ -53,4 +53,4 @@

Product Name

+ + +- +\ No newline at end of file ++ diff --git a/documentation/microservice_stock/documentation.pdf b/documentation/microservice_stock/documentation.pdf index ee6fa46..8590bd5 100644 Binary files a/documentation/microservice_stock/documentation.pdf and b/documentation/microservice_stock/documentation.pdf differ