From d16c4394985c8be74adb723666dae5c61e0e84f9 Mon Sep 17 00:00:00 2001 From: Paul Nicolas Date: Wed, 18 Dec 2024 07:13:34 +0100 Subject: [PATCH] fix(*): fixes after releases on staging Multiple fixes: - Since gorelease is not using earthly, we need to have the list.go already filled before releasing. I added it in the lint/pre-commit method on earthly, so that the CI fails if not up to date. - Remove a useless temporal search attributes - Do the right translation of connectors for v2 --- Earthfile | 2 + internal/api/v2/handler_connectors_install.go | 5 +- internal/api/v2/handler_connectors_list.go | 2 +- internal/api/v2/utils.go | 72 +++++++++++++++++++ .../connectors/engine/search_attributes.go | 1 - .../connectors/engine/workflow/workflow.go | 1 - internal/connectors/plugins/public/list.go | 14 ++++ 7 files changed, 92 insertions(+), 5 deletions(-) diff --git a/Earthfile b/Earthfile index 8ce15a54..0c4c4bbd 100644 --- a/Earthfile +++ b/Earthfile @@ -97,10 +97,12 @@ lint: COPY --pass-args +tidy/go.* . WORKDIR /src DO --pass-args core+GO_LINT + COPY (+compile-plugins/list.go) . SAVE ARTIFACT cmd AS LOCAL cmd SAVE ARTIFACT internal AS LOCAL internal SAVE ARTIFACT pkg AS LOCAL pkg SAVE ARTIFACT main.go AS LOCAL main.go + SAVE ARTIFACT list.go AS LOCAL internal/connectors/plugins/public/list.go pre-commit: WAIT diff --git a/internal/api/v2/handler_connectors_install.go b/internal/api/v2/handler_connectors_install.go index 3287a3b3..209dce16 100644 --- a/internal/api/v2/handler_connectors_install.go +++ b/internal/api/v2/handler_connectors_install.go @@ -17,8 +17,9 @@ func connectorsInstall(backend backend.Backend) http.HandlerFunc { ctx, span := otel.Tracer().Start(r.Context(), "v2_connectorsInstall") defer span.End() - span.SetAttributes(attribute.String("provider", connectorProvider(r))) - provider := strings.ToLower(connectorProvider(r)) + provider := strings.ToLower(toV3Provider(connectorProvider(r))) + + span.SetAttributes(attribute.String("provider", provider)) if provider == "" { otel.RecordError(span, errors.New("provider is required")) api.BadRequest(w, ErrValidation, errors.New("provider is required")) diff --git a/internal/api/v2/handler_connectors_list.go b/internal/api/v2/handler_connectors_list.go index ec48d139..9894358f 100644 --- a/internal/api/v2/handler_connectors_list.go +++ b/internal/api/v2/handler_connectors_list.go @@ -44,7 +44,7 @@ func connectorsList(backend backend.Backend) http.HandlerFunc { data := make([]*connectorsListElement, len(connectors.Data)) for i := range connectors.Data { data[i] = &connectorsListElement{ - Provider: connectors.Data[i].Provider, + Provider: v3ProviderToV2(connectors.Data[i].Provider), ConnectorID: connectors.Data[i].ID.String(), Name: connectors.Data[i].Name, ScheduledForDeletion: connectors.Data[i].ScheduledForDeletion, diff --git a/internal/api/v2/utils.go b/internal/api/v2/utils.go index 0fc8d5c6..83073939 100644 --- a/internal/api/v2/utils.go +++ b/internal/api/v2/utils.go @@ -41,3 +41,75 @@ func getPagination[T any](span trace.Span, r *http.Request, options T) (*bunpagi return pointer.For(bunpaginate.NewPaginatedQueryOptions(options).WithQueryBuilder(qb).WithPageSize(pageSize)), nil } + +const ( + ConnectorStripe string = "STRIPE" + ConnectorDummyPay string = "DUMMY-PAY" + ConnectorWise string = "WISE" + ConnectorModulr string = "MODULR" + ConnectorCurrencyCloud string = "CURRENCY-CLOUD" + ConnectorBankingCircle string = "BANKING-CIRCLE" + ConnectorMangopay string = "MANGOPAY" + ConnectorMoneycorp string = "MONEYCORP" + ConnectorAtlar string = "ATLAR" + ConnectorAdyen string = "ADYEN" + ConnectorGeneric string = "GENERIC" +) + +func v3ProviderToV2(provider string) string { + switch provider { + case "adyen": + return ConnectorAdyen + case "atlar": + return ConnectorAdyen + case "bankingcircle": + return ConnectorBankingCircle + case "currencycloud": + return ConnectorCurrencyCloud + case "dummypay": + return ConnectorDummyPay + case "generic": + return ConnectorGeneric + case "mangopay": + return ConnectorMangopay + case "modulr": + return ConnectorModulr + case "moneycorp": + return ConnectorMoneycorp + case "stripe": + return ConnectorStripe + case "wise": + return ConnectorWise + default: + return provider + } +} + +func toV3Provider(provider string) string { + switch provider { + case ConnectorAdyen: + return "adyen" + case ConnectorAtlar: + return "atlar" + case ConnectorBankingCircle: + return "bankingcircle" + case ConnectorCurrencyCloud: + return "currencycloud" + case ConnectorDummyPay: + return "dummypay" + case ConnectorGeneric: + return "generic" + case ConnectorMangopay: + return "mangopay" + case ConnectorModulr: + return "modulr" + case ConnectorMoneycorp: + return "moneycorp" + case ConnectorStripe: + return "stripe" + case ConnectorWise: + return "wise" + default: + return provider + } +} diff --git a/internal/connectors/engine/search_attributes.go b/internal/connectors/engine/search_attributes.go index 977eba08..be8fae33 100644 --- a/internal/connectors/engine/search_attributes.go +++ b/internal/connectors/engine/search_attributes.go @@ -7,7 +7,6 @@ import ( var ( SearchAttributes = map[string]enums.IndexedValueType{ - workflow.SearchAttributeWorkflowID: enums.INDEXED_VALUE_TYPE_KEYWORD, workflow.SearchAttributeScheduleID: enums.INDEXED_VALUE_TYPE_KEYWORD, workflow.SearchAttributeStack: enums.INDEXED_VALUE_TYPE_KEYWORD, } diff --git a/internal/connectors/engine/workflow/workflow.go b/internal/connectors/engine/workflow/workflow.go index e795845b..b1327a3c 100644 --- a/internal/connectors/engine/workflow/workflow.go +++ b/internal/connectors/engine/workflow/workflow.go @@ -11,7 +11,6 @@ import ( ) const ( - SearchAttributeWorkflowID = "PaymentWorkflowID" SearchAttributeScheduleID = "PaymentScheduleID" SearchAttributeStack = "Stack" ) diff --git a/internal/connectors/plugins/public/list.go b/internal/connectors/plugins/public/list.go index 9fd24e5c..6934ab76 100644 --- a/internal/connectors/plugins/public/list.go +++ b/internal/connectors/plugins/public/list.go @@ -1 +1,15 @@ package public + +import ( + _ "github.com/formancehq/payments/internal/connectors/plugins/public/adyen" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/atlar" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/bankingcircle" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/currencycloud" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/dummypay" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/generic" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/mangopay" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/modulr" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/moneycorp" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/stripe" + _ "github.com/formancehq/payments/internal/connectors/plugins/public/wise" +)