Renice error handling
This commit is contained in:
parent
2ec3ad32ea
commit
5f071939d3
|
@ -8,6 +8,8 @@ import org.springframework.stereotype.Controller;
|
|||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -59,7 +61,9 @@ public class ShopArticleController {
|
|||
}
|
||||
|
||||
@PostMapping("/{id}")
|
||||
public String shopArticlesByIdBuy(HttpSession session,
|
||||
public String shopArticlesByIdBuy(HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
HttpSession session,
|
||||
@RequestAttribute(value = "shoppingCart") ShoppingCart shoppingCart,
|
||||
@PathVariable("id") Long id,
|
||||
@RequestParam("quantity") Integer quantity,
|
||||
|
@ -69,7 +73,9 @@ public class ShopArticleController {
|
|||
|
||||
Optional<Article> article = articleRepository.findById(id);
|
||||
if (!article.isPresent()) {
|
||||
throw new RuntimeException("Article not found!");
|
||||
request.setAttribute("error", "Der Artikel wurde nicht gefunden.");
|
||||
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
return "error/404";
|
||||
}
|
||||
|
||||
if (setAmount != null && setAmount) {
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.springframework.stereotype.Controller;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.util.ArrayList;
|
||||
import java.util.TreeMap;
|
||||
|
@ -97,6 +98,8 @@ public class ShopCheckoutController {
|
|||
|
||||
@PostMapping("/checkoutFinish")
|
||||
public String shopCheckoutFinish(
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
@RequestAttribute(value = "user") User user,
|
||||
@RequestAttribute(value = "shoppingCart") ShoppingCart shoppingCart,
|
||||
@RequestParam("address") String address,
|
||||
|
@ -105,6 +108,12 @@ public class ShopCheckoutController {
|
|||
@RequestParam("expected_total") Integer expectedPrice
|
||||
) {
|
||||
|
||||
if (shoppingCart.getRevision() != cartRevision) {
|
||||
request.setAttribute("error", "Der Warenkorb wurde zwischenzeitlich bearbeitet. Daher die Kaufvorgang nicht abgeschlossen werden. Bitte versuchen Sie es erneut.");
|
||||
response.setStatus(HttpServletResponse.SC_CONFLICT);
|
||||
return "shop/checkout";
|
||||
}
|
||||
|
||||
// Must be refetched for persitence.
|
||||
user = userRepository.findById(user.id).get();
|
||||
|
||||
|
|
Reference in New Issue