From 718225164f94d49663c3f9a6220f3a93bfe32977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mats=20T=C3=B6rnberg?= Date: Thu, 13 Nov 2025 22:40:23 +0100 Subject: [PATCH] move --- cmd/cart/checkout_server.go | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/cmd/cart/checkout_server.go b/cmd/cart/checkout_server.go index 2793343..42a7c72 100644 --- a/cmd/cart/checkout_server.go +++ b/cmd/cart/checkout_server.go @@ -74,6 +74,23 @@ func (a *App) HandleCheckoutRequests(amqpUrl string, mux *http.ServeMux, invento return } + grain, err := a.getGrainFromOrder(r.Context(), order) + if err != nil { + logger.ErrorContext(r.Context(), "Unable to get grain from klarna order", "error", err.Error()) + w.WriteHeader(http.StatusInternalServerError) + return + } + + if inventoryService != nil { + inventoryRequests := getInventoryRequests(grain.Items) + err = inventoryService.ReserveInventory(r.Context(), inventoryRequests...) + if err != nil { + logger.WarnContext(r.Context(), "placeorder inventory reservation failed") + w.WriteHeader(http.StatusNotAcceptable) + return + } + } + err = confirmOrder(r.Context(), order, orderHandler) if err != nil { log.Printf("Error confirming order: %v\n", err) @@ -144,22 +161,7 @@ func (a *App) HandleCheckoutRequests(amqpUrl string, mux *http.ServeMux, invento } log.Printf("Klarna order notification: %s", order.ID) logger.InfoContext(r.Context(), "Klarna order notification received", "order_id", order.ID) - grain, err := a.getGrainFromOrder(r.Context(), order) - if err != nil { - logger.ErrorContext(r.Context(), "Unable to get grain from klarna order", "error", err.Error()) - w.WriteHeader(http.StatusInternalServerError) - return - } - if inventoryService != nil { - inventoryRequests := getInventoryRequests(grain.Items) - err = inventoryService.ReserveInventory(r.Context(), inventoryRequests...) - if err != nil { - logger.WarnContext(r.Context(), "placeorder inventory reservation failed") - w.WriteHeader(http.StatusNotAcceptable) - return - } - } w.WriteHeader(http.StatusOK) }) mux.HandleFunc("POST /validate", func(w http.ResponseWriter, r *http.Request) {