Skip to content

Commit

Permalink
Add support for retrieve migrated card (#94)
Browse files Browse the repository at this point in the history
  • Loading branch information
semihshn committed Jul 9, 2024
1 parent 06c7f39 commit 56a31b5
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 1 deletion.
6 changes: 6 additions & 0 deletions adapter/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -779,6 +779,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"`
Expand Down
14 changes: 14 additions & 0 deletions adapter/payment.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
17 changes: 16 additions & 1 deletion tests/payment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down Expand Up @@ -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)
}
}

0 comments on commit 56a31b5

Please sign in to comment.