From 5b58913dcec618022e846e33703a312486754f0e Mon Sep 17 00:00:00 2001 From: mlabusch Date: Fri, 30 Jun 2017 14:22:59 +0200 Subject: [PATCH] [Task] Add Documentation --- .../microservice_stock/chapter/monolith.patch | 312 ------------------ 1 file changed, 312 deletions(-) delete mode 100644 documentation/microservice_stock/chapter/monolith.patch diff --git a/documentation/microservice_stock/chapter/monolith.patch b/documentation/microservice_stock/chapter/monolith.patch deleted file mode 100644 index c5cbb07..0000000 --- a/documentation/microservice_stock/chapter/monolith.patch +++ /dev/null @@ -1,312 +0,0 @@ -From 0754b05118df8af98963428fe32baf7a81920cb7 Mon Sep 17 00:00:00 2001 -From: Martin Geno -Date: Thu, 22 Jun 2017 20:15:07 +0200 -Subject: [PATCH 1/2] [TASK] patch for microservice stock - ---- - .../monolith/domain/DataTransferObjectFactory.java | 2 ++ - .../de/mstock/monolith/domain/ProductRepository.java | 5 +++++ - .../java/de/mstock/monolith/service/ShopService.java | 13 +++++++++++++ - .../java/de/mstock/monolith/web/HomepageController.java | 17 +++++++++++++++-- - .../java/de/mstock/monolith/web/ProductController.java | 15 +++++++++++++++ - src/main/java/de/mstock/monolith/web/ProductDTO.java | 10 ++++++++++ - src/main/resources/templates/product.html | 4 ++++ - 7 files changed, 64 insertions(+), 2 deletions(-) - -diff --git a/src/main/java/de/mstock/monolith/domain/DataTransferObjectFactory.java b/src/main/java/de/mstock/monolith/domain/DataTransferObjectFactory.java -index 914d1ae..b026020 100644 ---- a/src/main/java/de/mstock/monolith/domain/DataTransferObjectFactory.java -+++ b/src/main/java/de/mstock/monolith/domain/DataTransferObjectFactory.java -@@ -86,6 +86,8 @@ private ProductDTO createProductWithoutReviewsDTO(Product product, Locale locale - ProductI18n i18n = product.getI18n().get(locale.getLanguage()); - String price = numberFormat.format(i18n.getPrice()); - ProductDTO productDTO = new ProductDTO(); -+ // Addition: productDTO.setID() -+ productDTO.setId(product.getId()); - productDTO.setItemNumber(product.getItemNumber()); - productDTO.setUnit(product.getUnit()); - productDTO.setName(i18n.getName()); -diff --git a/src/main/java/de/mstock/monolith/domain/ProductRepository.java b/src/main/java/de/mstock/monolith/domain/ProductRepository.java -index e811855..d72fb53 100644 ---- a/src/main/java/de/mstock/monolith/domain/ProductRepository.java -+++ 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(); -+ - } -diff --git a/src/main/java/de/mstock/monolith/service/ShopService.java b/src/main/java/de/mstock/monolith/service/ShopService.java -index c230e45..c96f266 100644 ---- a/src/main/java/de/mstock/monolith/service/ShopService.java -+++ b/src/main/java/de/mstock/monolith/service/ShopService.java -@@ -59,6 +59,19 @@ - } - - /** -+ * Gets all products in the current language. -+ * -+ * @return A simplified Data Transfer Object. -+ */ -+ public List getAllProducts(Locale locale) { -+ String language = locale.getLanguage(); -+ List products = productRepository.findAll(); -+ List productsDTO = -+ dtoFactory.createProductWithoutReviewsDTOs(products, locale); -+ return Collections.unmodifiableList(productsDTO); -+ } -+ -+ /** - * 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 -+ * @return The constant template name for the stock admin frontend. -+ */ -+ @RequestMapping(value = "/stockadmin", method = RequestMethod.GET) -+ public String redirect(Model model) { -+ return "redirect:" + this.STOCKADMINFRONTENDTEMPLATE; -+ } -+ -+ /** -+ * Homepage -+ * -+ * @param model Template model - * @param locale Current locale - * @return The template's name. - */ -diff --git a/src/main/java/de/mstock/monolith/web/ProductController.java b/src/main/java/de/mstock/monolith/web/ProductController.java -index 52f1ed3..5fbcacf 100644 ---- a/src/main/java/de/mstock/monolith/web/ProductController.java -+++ 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, - model.addAttribute("product", shopService.getProduct(locale, prettyUrlFragment)); - return TEMPLATE; - } -+ -+ @RequestMapping(value = "/products/{prettyUrlFragment:[\\w-]+}.json", method = RequestMethod.GET) -+ @ResponseBody -+ public ProductDTO productJson(@PathVariable String prettyUrlFragment, Locale locale) { -+ return shopService.getProduct(locale, prettyUrlFragment); -+ } -+ -+ @RequestMapping(value = "/products.json", method = RequestMethod.GET) -+ @ResponseBody -+ public List allProductJson(Locale locale) { -+ return shopService.getAllProducts(locale); -+ } -+ - } -diff --git a/src/main/java/de/mstock/monolith/web/ProductDTO.java b/src/main/java/de/mstock/monolith/web/ProductDTO.java -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; - private String name; -@@ -14,6 +15,15 @@ - private String description; - private List reviews; - -+ // Addition: int id, getId() and setID() -+ public int getId() { -+ return id; -+ } -+ -+ public void setId(int id) { -+ this.id = id; -+ } -+ - public String getItemNumber() { - return itemNumber; - } -diff --git a/src/main/resources/templates/product.html b/src/main/resources/templates/product.html -index 0d7bc31..9b2d0bf 100644 ---- a/src/main/resources/templates/product.html -+++ b/src/main/resources/templates/product.html -@@ -31,6 +31,10 @@ - -
-

Product Name

-+ -+ -+ -+ -

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 -+