diff --git a/api/gateway/mntx/go.sum b/api/gateway/mntx/go.sum index cdcb4af..2242948 100644 --- a/api/gateway/mntx/go.sum +++ b/api/gateway/mntx/go.sum @@ -125,6 +125,8 @@ github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/i github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= diff --git a/api/gateway/mntx/internal/service/gateway/connector.go b/api/gateway/mntx/internal/service/gateway/connector.go index b79c881..e17fb19 100644 --- a/api/gateway/mntx/internal/service/gateway/connector.go +++ b/api/gateway/mntx/internal/service/gateway/connector.go @@ -68,13 +68,13 @@ func (s *Service) SubmitOperation(ctx context.Context, req *connectorv1.SubmitOp } if strings.TrimSpace(reader.String("card_token")) != "" { - resp, err := s.CreateCardTokenPayout(ctx, buildCardTokenPayoutRequest(reader, payoutID, amountMinor, currency)) + resp, err := s.CreateCardTokenPayout(ctx, buildCardTokenPayoutRequestFromParams(reader, payoutID, amountMinor, currency)) if err != nil { return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(mapErrorCode(err), err.Error(), op, "")}}, nil } return &connectorv1.SubmitOperationResponse{Receipt: payoutReceipt(resp.GetPayout())}, nil } - resp, err := s.CreateCardPayout(ctx, buildCardPayoutRequest(reader, payoutID, amountMinor, currency)) + resp, err := s.CreateCardPayout(ctx, buildCardPayoutRequestFromParams(reader, payoutID, amountMinor, currency)) if err != nil { return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(mapErrorCode(err), err.Error(), op, "")}}, nil } @@ -160,7 +160,7 @@ func currencyFromOperation(op *connectorv1.Operation) string { return strings.ToUpper(currency) } -func buildCardTokenPayoutRequest(reader params.Reader, payoutID string, amountMinor int64, currency string) *mntxv1.CardTokenPayoutRequest { +func buildCardTokenPayoutRequestFromParams(reader params.Reader, payoutID string, amountMinor int64, currency string) *mntxv1.CardTokenPayoutRequest { req := &mntxv1.CardTokenPayoutRequest{ PayoutId: payoutID, ProjectId: readerInt64(reader, "project_id"), @@ -184,7 +184,7 @@ func buildCardTokenPayoutRequest(reader params.Reader, payoutID string, amountMi return req } -func buildCardPayoutRequest(reader params.Reader, payoutID string, amountMinor int64, currency string) *mntxv1.CardPayoutRequest { +func buildCardPayoutRequestFromParams(reader params.Reader, payoutID string, amountMinor int64, currency string) *mntxv1.CardPayoutRequest { return &mntxv1.CardPayoutRequest{ PayoutId: payoutID, ProjectId: readerInt64(reader, "project_id"), diff --git a/api/gateway/mntx/internal/service/gateway/instances.go b/api/gateway/mntx/internal/service/gateway/instances.go index 0c28e75..634afcb 100644 --- a/api/gateway/mntx/internal/service/gateway/instances.go +++ b/api/gateway/mntx/internal/service/gateway/instances.go @@ -6,6 +6,7 @@ import ( "github.com/tech/sendico/pkg/api/routers/gsresponse" gatewayv1 "github.com/tech/sendico/pkg/proto/common/gateway/v1" mntxv1 "github.com/tech/sendico/pkg/proto/gateway/mntx/v1" + "google.golang.org/protobuf/proto" ) // ListGatewayInstances exposes the Monetix gateway instance descriptors. @@ -25,16 +26,15 @@ func cloneGatewayDescriptor(src *gatewayv1.GatewayInstanceDescriptor) *gatewayv1 if src == nil { return nil } - cp := *src + cp := proto.Clone(src).(*gatewayv1.GatewayInstanceDescriptor) if src.Currencies != nil { cp.Currencies = append([]string(nil), src.Currencies...) } if src.Capabilities != nil { - cap := *src.Capabilities - cp.Capabilities = &cap + cp.Capabilities = proto.Clone(src.Capabilities).(*gatewayv1.RailCapabilities) } if src.Limits != nil { - limits := *src.Limits + limits := &gatewayv1.Limits{} if src.Limits.VolumeLimit != nil { limits.VolumeLimit = map[string]string{} for key, value := range src.Limits.VolumeLimit { @@ -53,11 +53,10 @@ func cloneGatewayDescriptor(src *gatewayv1.GatewayInstanceDescriptor) *gatewayv1 if value == nil { continue } - clone := *value - limits.CurrencyLimits[key] = &clone + limits.CurrencyLimits[key] = proto.Clone(value).(*gatewayv1.LimitsOverride) } } - cp.Limits = &limits + cp.Limits = limits } - return &cp + return cp }