genofire/hs_monolith
genofire
/
hs_monolith
Archived
1
0
Fork 0

[DOC] update monolith patch

This commit is contained in:
Martin Geno 2017-06-23 13:00:55 +02:00
parent 0cfa486c95
commit ca0d349c04
No known key found for this signature in database
GPG Key ID: F0D39A37E925E941
2 changed files with 145 additions and 16 deletions

View File

@ -1,6 +1,7 @@
From 0754b05118df8af98963428fe32baf7a81920cb7 Mon Sep 17 00:00:00 2001
From: Martin Geno <geno+dev@fireorbit.de>
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<Product> 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<ReviewDTO> reviews;
+ // Addition: int id, getId() and setID()
+ public int getId() {
+ return id;
@ -181,3 +182,131 @@ index 0d7bc31..9b2d0bf 100644
<p class="text-info text-uppercase" th:text="${product.price}">0,00 Euro</p>
<p class="lead" th:text="${product.description}">Description.</p>
<div th:replace="fragments/reviews :: reviews"></div>
From 0aa115e34ca231eefe2003919467fb017d60a7c2 Mon Sep 17 00:00:00 2001
From: Martin Geno <geno+dev@fireorbit.de>
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<Product> 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<CategoryDTO> 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<ProductDTO> 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 @@
<h2 th:text="${product.name}">Product Name</h2>
<!-- Addition: traffic light food labeling system of the stock microservice -->
- <img width="10%" class="icon" th:src="${'https://stock.pub.warehost.de/api/good/availablity/'+product.id}"/>
+ <img width="10%" class="icon" th:src="${'http://localhost:8081/api/good/availablity/'+product.id}"/>
<p class="text-info text-uppercase" th:text="${product.price}">0,00 Euro</p>
<p class="lead" th:text="${product.description}">Description.</p>
@@ -53,4 +53,4 @@ <h2 th:text="${product.name}">Product Name</h2>
<script src="../static/js/bootstrap.min.js"
th:src="@{/js/bootstrap.min.js}"></script>
</body>
-</html>
\ No newline at end of file
+</html>