refactor klarna stuff
Some checks failed
Build and Publish / BuildAndDeploy (push) Successful in 3m42s
Build and Publish / BuildAndDeployAmd64 (push) Has been cancelled

This commit is contained in:
matst80
2025-04-18 20:41:25 +02:00
parent b51fc78dd5
commit 6c2328495b
8 changed files with 302 additions and 145 deletions

36
main.go
View File

@@ -148,7 +148,9 @@ func main() {
Url: amqpUrl,
}
syncedServer := NewPoolServer(syncedPool, fmt.Sprintf("%s, %s", name, podIp))
klarnaClient := NewKlarnaClient(KlarnaPlaygroundUrl, os.Getenv("KLARNA_API_USERNAME"), os.Getenv("KLARNA_API_PASSWORD"))
syncedServer := NewPoolServer(syncedPool, fmt.Sprintf("%s, %s", name, podIp), klarnaClient)
mux := http.NewServeMux()
mux.Handle("/cart/", http.StripPrefix("/cart", syncedServer.Serve()))
// only for local
@@ -194,7 +196,9 @@ func main() {
}
orderId := r.URL.Query().Get("order_id")
log.Printf("Order confirmation push: %s", orderId)
req, err := http.NewRequest("GET", fmt.Sprintf("https://api.playground.klarna.com/checkout/v3/orders/%s", orderId), nil)
order, err := klarnaClient.GetOrder(orderId)
if err != nil {
log.Printf("Error creating request: %v\n", err)
w.WriteHeader(http.StatusInternalServerError)
@@ -202,27 +206,7 @@ func main() {
return
}
req.Header.Add("Content-Type", "application/json")
req.SetBasicAuth(APIUsername, APIPassword)
res, err := http.DefaultClient.Do(req)
if nil != err {
log.Printf("Error making request: %v\n", err)
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(err.Error()))
return
}
defer res.Body.Close()
var klarnaOrderResponse KlarnaOrderResponse
err = json.NewDecoder(res.Body).Decode(&klarnaOrderResponse)
if err != nil {
log.Printf("Error decoding response: %v\n", err)
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(err.Error()))
return
}
orderToSend, err := json.Marshal(klarnaOrderResponse)
orderToSend, err := json.Marshal(order)
if err != nil {
log.Printf("Error marshaling order: %v\n", err)
} else {
@@ -242,11 +226,11 @@ func main() {
return
}
}
_, err = syncedServer.pool.Process(ToCartId(klarnaOrderResponse.MerchantReference1), Message{
_, err = syncedServer.pool.Process(ToCartId(order.MerchantReference1), Message{
Type: OrderCompletedType,
Content: &messages.OrderCreated{
OrderId: klarnaOrderResponse.OrderID,
Status: klarnaOrderResponse.Status,
OrderId: order.ID,
Status: order.Status,
},
})
if err != nil {