From ca0d349c040254142ba3f5c60d846ce1c438f67d Mon Sep 17 00:00:00 2001 From: Martin Geno Date: Fri, 23 Jun 2017 13:00:55 +0200 Subject: [PATCH] [DOC] update monolith patch --- .../microservice_stock/chapter/monolith.patch | 161 ++++++++++++++++-- .../microservice_stock/documentation.pdf | Bin 394686 -> 406038 bytes 2 files changed, 145 insertions(+), 16 deletions(-) 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 ee6fa466f5e74be7b9c09c7129513f76be106e5b..8590bd56e2910838ac98813d5f6b779cbabd5885 100644 GIT binary patch delta 29930 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 F`9GLppCbSO delta 18726 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