From 13e663c71a06177aae1915933ca3e1a2b36a38c0 Mon Sep 17 00:00:00 2001 From: semihshn Date: Fri, 14 Jun 2024 09:52:17 +0300 Subject: [PATCH] Add support for retrieve migrated card --- adapter/model.go | 6 ++++++ adapter/payment.go | 14 ++++++++++++++ tests/payment_test.go | 17 ++++++++++++++++- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/adapter/model.go b/adapter/model.go index 8daecc5..fca0f0c 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -766,6 +766,12 @@ type RetrieveLoyaltiesRequest struct { CardToken string `json:"cardToken,omitempty"` } +type RetrieveProviderCardRequest struct { + ProviderCardToken string `json:"providerCardToken,omitempty"` + ExternalId string `json:"externalId,omitempty"` + ProviderCardUserId string `json:"providerCardUserId,omitempty"` +} + type InitGarantiPayPaymentRequest struct { Price float64 `json:"price,omitempty"` PaidPrice float64 `json:"paidPrice,omitempty"` diff --git a/adapter/payment.go b/adapter/payment.go index 1925616..f2912f5 100644 --- a/adapter/payment.go +++ b/adapter/payment.go @@ -613,6 +613,20 @@ func (api *Payment) RetrieveMultiPayment(ctx context.Context, token string) (*Mu return response.Data, nil } +func (api *Payment) RetrieveProviderCard(ctx context.Context, request RetrieveProviderCardRequest) (*StoredCardResponse, error) { + newRequest, err := api.Client.NewRequest(ctx, http.MethodGet, "/payment/v1/cards/provider-card-mappings", request) + if err != nil { + return nil, err + } + response := &Response[StoredCardResponse]{} + respErr := api.Client.Do(ctx, newRequest, response) + if err != nil { + return nil, respErr + } + + return response.Data, nil +} + func (c *Payment) Is3DSecureCallbackVerified(threeDSecureCallbackKey string, params map[string]string) bool { hash := params["hash"] hashString := strings.Join([]string{threeDSecureCallbackKey, diff --git a/tests/payment_test.go b/tests/payment_test.go index 7af850d..2d12c8b 100644 --- a/tests/payment_test.go +++ b/tests/payment_test.go @@ -2,11 +2,12 @@ package tests import ( "context" + "testing" + "github.com/craftgate/craftgate-go-client/adapter" craftgate "github.com/craftgate/craftgate-go-client/adapter" "github.com/davecgh/go-spew/spew" "github.com/stretchr/testify/require" - "testing" ) var paymentClient, _ = craftgate.New("api-key", "secret-key", "https://sandbox-api.craftgate.io") @@ -1008,3 +1009,17 @@ func TestPayment_RetrieveMultiPayment(t *testing.T) { t.Errorf("Error %s", err) } } + +func Test_RetrieveProviderCards(t *testing.T) { + request := adapter.RetrieveProviderCardRequest{ + ProviderCardToken: "45f12c74-3000-465c-96dc-876850e7dd7a", + ProviderCardUserId: "0309ac2d-c5a5-4b4f-a91f-5c444ba07b24", + ExternalId: "1001", + } + res, err := paymentClient.Payment.RetrieveProviderCard(context.Background(), request) + _, _ = spew.Printf("%#v\n", res) + + if err != nil { + t.Errorf("Error %s", err) + } +}