Renice error handling

This commit is contained in:
CodeSteak 2020-05-05 23:34:17 +02:00 committed by localhorst
parent 2ec3ad32ea
commit 5f071939d3
2 changed files with 17 additions and 2 deletions

View File

@ -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) {

View File

@ -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();