From f7948d27bb55db1ece96bc2a26079965794724c9 Mon Sep 17 00:00:00 2001 From: Paul Nicolas Date: Thu, 21 Dec 2023 18:01:51 +0100 Subject: [PATCH] feat(fctl): add atlar config view and fix config marshalling (#1074) --- .../payments/connectors/configs/getconfig.go | 2 + .../cmd/payments/connectors/views/atlar.go | 50 +++++++++++++++++++ .../internal/connectors/atlar/config.go | 2 +- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 components/fctl/cmd/payments/connectors/views/atlar.go diff --git a/components/fctl/cmd/payments/connectors/configs/getconfig.go b/components/fctl/cmd/payments/connectors/configs/getconfig.go index b49923093e..9d20229df6 100644 --- a/components/fctl/cmd/payments/connectors/configs/getconfig.go +++ b/components/fctl/cmd/payments/connectors/configs/getconfig.go @@ -159,6 +159,8 @@ func (c *PaymentsGetConfigController) Render(cmd *cobra.Command, args []string) err = views.DisplayMangopayConfig(cmd, c.store.ConnectorConfig) case internal.MoneycorpConnector: err = views.DisplayMoneycorpConfig(cmd, c.store.ConnectorConfig) + case internal.AtlarConnector: + err = views.DisplayAtlarConfig(cmd, c.store.ConnectorConfig) default: pterm.Error.WithWriter(cmd.OutOrStderr()).Printfln("Connection unknown.") } diff --git a/components/fctl/cmd/payments/connectors/views/atlar.go b/components/fctl/cmd/payments/connectors/views/atlar.go new file mode 100644 index 0000000000..f65f449e54 --- /dev/null +++ b/components/fctl/cmd/payments/connectors/views/atlar.go @@ -0,0 +1,50 @@ +package views + +import ( + "fmt" + + "github.com/formancehq/formance-sdk-go/pkg/models/shared" + "github.com/pterm/pterm" + "github.com/spf13/cobra" +) + +func DisplayAtlarConfig(cmd *cobra.Command, connectorConfig *shared.ConnectorConfigResponse) error { + config := connectorConfig.Data.AtlarConfig + + tableData := pterm.TableData{} + tableData = append(tableData, []string{pterm.LightCyan("Name:"), config.Name}) + tableData = append(tableData, []string{pterm.LightCyan("AccessKey:"), config.AccessKey}) + tableData = append(tableData, []string{pterm.LightCyan("Secret:"), config.Secret}) + tableData = append(tableData, []string{pterm.LightCyan("BaseUrl:"), func() string { + if config.BaseURL == nil { + return "" + } + return *config.BaseURL + }()}) + tableData = append(tableData, []string{pterm.LightCyan("PageSize:"), func() string { + if config.PageSize == nil { + return "" + } + return fmt.Sprintf("%d", *config.PageSize) + }()}) + tableData = append(tableData, []string{pterm.LightCyan("Polling Period:"), func() string { + if config.PollingPeriod == nil { + return "" + } + return *config.PollingPeriod + }()}) + tableData = append(tableData, []string{pterm.LightCyan("Transfer Initiation Status Polling Period:"), func() string { + if config.TransferInitiationStatusPollingPeriod == nil { + return "" + } + return *config.TransferInitiationStatusPollingPeriod + }()}) + + if err := pterm.DefaultTable. + WithWriter(cmd.OutOrStdout()). + WithData(tableData). + Render(); err != nil { + return err + } + return nil +} diff --git a/components/payments/cmd/connectors/internal/connectors/atlar/config.go b/components/payments/cmd/connectors/internal/connectors/atlar/config.go index a9564b6c7b..aceb70b434 100644 --- a/components/payments/cmd/connectors/internal/connectors/atlar/config.go +++ b/components/payments/cmd/connectors/internal/connectors/atlar/config.go @@ -15,7 +15,7 @@ type Config struct { Name string `json:"name" yaml:"name" bson:"name"` PollingPeriod connectors.Duration `json:"pollingPeriod" yaml:"pollingPeriod" bson:"pollingPeriod"` TransferInitiationStatusPollingPeriod connectors.Duration `json:"transferInitiationStatusPollingPeriod" yaml:"transferInitiationStatusPollingPeriod" bson:"transferInitiationStatusPollingPeriod"` - BaseUrl url.URL `json:"baseUrl" yaml:"baseUrl" bson:"baseUrl"` + BaseUrl url.URL `json:"-" yaml:"-" bson:"-"` // Already marshalled as string in the MarshalJson function AccessKey string `json:"accessKey" yaml:"accessKey" bson:"accessKey"` Secret string `json:"secret" yaml:"secret" bson:"secret"` ApiConfig `bson:",inline"`