[TASK] patch for microservice stock
This commit is contained in:
parent
ee4696d737
commit
0754b05118
|
@ -86,6 +86,8 @@ public class DataTransferObjectFactory {
|
||||||
ProductI18n i18n = product.getI18n().get(locale.getLanguage());
|
ProductI18n i18n = product.getI18n().get(locale.getLanguage());
|
||||||
String price = numberFormat.format(i18n.getPrice());
|
String price = numberFormat.format(i18n.getPrice());
|
||||||
ProductDTO productDTO = new ProductDTO();
|
ProductDTO productDTO = new ProductDTO();
|
||||||
|
// Addition: productDTO.setID()
|
||||||
|
productDTO.setId(product.getId());
|
||||||
productDTO.setItemNumber(product.getItemNumber());
|
productDTO.setItemNumber(product.getItemNumber());
|
||||||
productDTO.setUnit(product.getUnit());
|
productDTO.setUnit(product.getUnit());
|
||||||
productDTO.setName(i18n.getName());
|
productDTO.setName(i18n.getName());
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package de.mstock.monolith.domain;
|
package de.mstock.monolith.domain;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.data.repository.Repository;
|
import org.springframework.data.repository.Repository;
|
||||||
|
|
||||||
|
@ -9,4 +11,7 @@ public interface ProductRepository extends Repository<Product, Integer> {
|
||||||
+ "where key(i) = ?1 and lower(i.name) = ?2")
|
+ "where key(i) = ?1 and lower(i.name) = ?2")
|
||||||
Product findByI18nName(String language, String name);
|
Product findByI18nName(String language, String name);
|
||||||
|
|
||||||
|
@Query("select p from Product p")
|
||||||
|
List<Product> findAll();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,6 +58,19 @@ public class ShopService {
|
||||||
return Collections.unmodifiableList(products);
|
return Collections.unmodifiableList(products);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets all products in the current language.
|
||||||
|
*
|
||||||
|
* @return A simplified Data Transfer Object.
|
||||||
|
*/
|
||||||
|
public List<ProductDTO> getAllProducts(Locale locale) {
|
||||||
|
String language = locale.getLanguage();
|
||||||
|
List<Product> products = productRepository.findAll();
|
||||||
|
List<ProductDTO> productsDTO =
|
||||||
|
dtoFactory.createProductWithoutReviewsDTOs(products, locale);
|
||||||
|
return Collections.unmodifiableList(productsDTO);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a product in the current language.
|
* Gets a product in the current language.
|
||||||
*
|
*
|
||||||
|
|
|
@ -17,6 +17,19 @@ public class HomepageController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ShopService shopService;
|
private ShopService shopService;
|
||||||
|
// Addition: contant with the address of the stock microservice adminfrontend
|
||||||
|
private final String STOCKADMINFRONTENDTEMPLATE = "https://stock.pub.warehost.de/index.html";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
* Homepage
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package de.mstock.monolith.web;
|
package de.mstock.monolith.web;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
@ -11,6 +12,7 @@ import org.springframework.validation.BindingResult;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
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.ReviewService;
|
||||||
import de.mstock.monolith.service.ShopService;
|
import de.mstock.monolith.service.ShopService;
|
||||||
|
@ -66,4 +68,17 @@ public class ProductController {
|
||||||
model.addAttribute("product", shopService.getProduct(locale, prettyUrlFragment));
|
model.addAttribute("product", shopService.getProduct(locale, prettyUrlFragment));
|
||||||
return TEMPLATE;
|
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<ProductDTO> allProductJson(Locale locale) {
|
||||||
|
return shopService.getAllProducts(locale);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import de.mstock.monolith.domain.ProductWeightUnit;
|
||||||
|
|
||||||
public class ProductDTO {
|
public class ProductDTO {
|
||||||
|
|
||||||
|
private int id;
|
||||||
private String itemNumber;
|
private String itemNumber;
|
||||||
private ProductWeightUnit unit;
|
private ProductWeightUnit unit;
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -14,6 +15,15 @@ public class ProductDTO {
|
||||||
private String description;
|
private String description;
|
||||||
private List<ReviewDTO> reviews;
|
private List<ReviewDTO> reviews;
|
||||||
|
|
||||||
|
// Addition: int id, getId() and setID()
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
public String getItemNumber() {
|
public String getItemNumber() {
|
||||||
return itemNumber;
|
return itemNumber;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,10 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<h2 th:text="${product.name}">Product Name</h2>
|
<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}"/>
|
||||||
|
|
||||||
<p class="text-info text-uppercase" th:text="${product.price}">0,00 Euro</p>
|
<p class="text-info text-uppercase" th:text="${product.price}">0,00 Euro</p>
|
||||||
<p class="lead" th:text="${product.description}">Description.</p>
|
<p class="lead" th:text="${product.description}">Description.</p>
|
||||||
<div th:replace="fragments/reviews :: reviews"></div>
|
<div th:replace="fragments/reviews :: reviews"></div>
|
||||||
|
|
Reference in New Issue