From 0b5089cd5ae587122968a43b7b050a0e45c4b188 Mon Sep 17 00:00:00 2001 From: Onur Polattimur Date: Fri, 3 May 2024 14:44:52 +0300 Subject: [PATCH] Add masterpass loyalty retrieve endpoint --- adapter/masterpass.go | 15 +++++++++++++++ adapter/model.go | 6 ++++++ tests/masterpass_test.go | 15 +++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/adapter/masterpass.go b/adapter/masterpass.go index 843edd0..8cffcc2 100644 --- a/adapter/masterpass.go +++ b/adapter/masterpass.go @@ -83,3 +83,18 @@ func (api *Masterpass) Complete3DSMasterpassPayment(ctx context.Context, request return response.Data, nil } + +func (api *Masterpass) RetrieveLoyalties(ctx context.Context, request MasterpassRetrieveLoyaltiesRequest) (*RetrieveLoyaltiesResponse, error) { + newRequest, err := api.Client.NewRequest(ctx, http.MethodPost, "/payment/v2/masterpass-payments/loyalties/retrieve", request) + if err != nil { + return nil, err + } + + response := &Response[RetrieveLoyaltiesResponse]{} + err = api.Client.Do(ctx, newRequest, response) + if err != nil { + return nil, err + } + + return response.Data, nil +} diff --git a/adapter/model.go b/adapter/model.go index 39c2aa3..513f1fc 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -761,6 +761,12 @@ type RetrieveLoyaltiesRequest struct { CardToken string `json:"cardToken,omitempty"` } +type MasterpassRetrieveLoyaltiesRequest struct { + Msisdn string `json:"msisdn,omitempty"` + BinNumber string `json:"binNumber,omitempty"` + CardName string `json:"cardName,omitempty"` +} + type InitGarantiPayPaymentRequest struct { Price float64 `json:"price,omitempty"` PaidPrice float64 `json:"paidPrice,omitempty"` diff --git a/tests/masterpass_test.go b/tests/masterpass_test.go index ac9db9e..2609c45 100644 --- a/tests/masterpass_test.go +++ b/tests/masterpass_test.go @@ -101,3 +101,18 @@ func TestMasterpass_Complete3DSMasterpassPayment(t *testing.T) { t.Errorf("Error %s", err) } } + +func TestMasterpass_RetrieveLoyalties(t *testing.T) { + request := adapter.MasterpassRetrieveLoyaltiesRequest{ + Msisdn: "905436636070", + BinNumber: "404809", + CardName: "YKB Test Kart", + } + + res, err := masterpassClient.Masterpass.RetrieveLoyalties(context.Background(), request) + + require.NotNil(t, res) + if err != nil { + t.Errorf("Error %s", err) + } +}