diff --git a/klarna-client.go b/klarna-client.go index 8c6830e..4f5a7ae 100644 --- a/klarna-client.go +++ b/klarna-client.go @@ -41,6 +41,11 @@ func (k *KlarnaClient) GetOrder(orderId string) (*CheckoutOrder, error) { return nil, err } defer res.Body.Close() + return k.getOrderResponse(res) +} + +func (k *KlarnaClient) getOrderResponse(res *http.Response) (*CheckoutOrder, error) { + var err error var klarnaOrderResponse CheckoutOrder if res.StatusCode >= 200 && res.StatusCode <= 299 { err = json.NewDecoder(res.Body).Decode(&klarnaOrderResponse) @@ -72,16 +77,7 @@ func (k *KlarnaClient) CreateOrder(reader io.Reader) (*CheckoutOrder, error) { return nil, err } defer res.Body.Close() - if res.StatusCode >= 200 && res.StatusCode <= 299 { - var klarnaOrderResponse CheckoutOrder - err = json.NewDecoder(res.Body).Decode(&klarnaOrderResponse) - return &klarnaOrderResponse, err - } - body, err := io.ReadAll(res.Body) - if err == nil { - log.Println(string(body)) - } - return nil, fmt.Errorf(res.Status) + return k.getOrderResponse(res) } func (k *KlarnaClient) UpdateOrder(orderId string, reader io.Reader) (*CheckoutOrder, error) { @@ -99,16 +95,7 @@ func (k *KlarnaClient) UpdateOrder(orderId string, reader io.Reader) (*CheckoutO return nil, err } defer res.Body.Close() - if res.StatusCode >= 200 && res.StatusCode <= 299 { - var klarnaOrderResponse CheckoutOrder - err = json.NewDecoder(res.Body).Decode(&klarnaOrderResponse) - return &klarnaOrderResponse, err - } - body, err := io.ReadAll(res.Body) - if err == nil { - log.Println(string(body)) - } - return nil, fmt.Errorf(res.Status) + return k.getOrderResponse(res) } func (k *KlarnaClient) AbortOrder(orderId string) error {