Skip to content

Commit

Permalink
feat(fctl): fix with new payments version (#922)
Browse files Browse the repository at this point in the history
  • Loading branch information
paul-nicolas authored Nov 28, 2023
1 parent bf2d738 commit 7fb7c1d
Show file tree
Hide file tree
Showing 8 changed files with 171 additions and 47 deletions.
29 changes: 25 additions & 4 deletions components/fctl/cmd/payments/connectors/install/bankingcircle.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
type PaymentsConnectorsBankingCircleStore struct {
Success bool `json:"success"`
ConnectorName string `json:"connectorName"`
ConnectorID string `json:"connectorId"`
}
type PaymentsConnectorsBankingCircleController struct {
store *PaymentsConnectorsBankingCircleStore
Expand All @@ -24,6 +25,8 @@ type PaymentsConnectorsBankingCircleController struct {
defaultAuthorizationEndpoint string
pollingPeriodFlag string
defaultpollingPeriod string
nameFlag string
defaultName string
}

var _ fctl.Controller[*PaymentsConnectorsBankingCircleStore] = (*PaymentsConnectorsBankingCircleController)(nil)
Expand All @@ -43,17 +46,20 @@ func NewPaymentsConnectorsBankingCircleController() *PaymentsConnectorsBankingCi
defaultAuthorizationEndpoint: "https://authorizationsandbox.bankingcircleconnect.com",
pollingPeriodFlag: "polling-period",
defaultpollingPeriod: "2m",
nameFlag: "name",
defaultName: "bankingcircle",
}
}

func NewBankingCircleCommand() *cobra.Command {
c := NewPaymentsConnectorsBankingCircleController()
return fctl.NewCommand(internal.BankingCircleConnector+" <username> <password>",
return fctl.NewCommand(internal.BankingCircleConnector+" <username> <password> <userCertificatePath> <userCertificateKeyPath>",
fctl.WithShortDescription("Install a Banking Circle connector"),
fctl.WithArgs(cobra.ExactArgs(2)),
fctl.WithArgs(cobra.ExactArgs(4)),
fctl.WithStringFlag(c.endpointFlag, c.defaultEndpoint, "API endpoint"),
fctl.WithStringFlag(c.authorizationEndpointFlag, c.defaultAuthorizationEndpoint, "Authorization endpoint"),
fctl.WithStringFlag(c.pollingPeriodFlag, c.defaultpollingPeriod, "Polling duration"),
fctl.WithStringFlag(c.nameFlag, c.defaultName, "Connector name"),
fctl.WithController[*PaymentsConnectorsBankingCircleStore](c),
)
}
Expand All @@ -73,12 +79,24 @@ func (c *PaymentsConnectorsBankingCircleController) Run(cmd *cobra.Command, args
return nil, err
}

cert, err := fctl.ReadFile(cmd, soc.Stack, args[2])
if err != nil {
return nil, err
}

certKey, err := fctl.ReadFile(cmd, soc.Stack, args[3])
if err != nil {
return nil, err
}

request := operations.InstallConnectorRequest{
Connector: shared.ConnectorBankingCircle,
ConnectorConfig: shared.ConnectorConfig{
BankingCircleConfig: &shared.BankingCircleConfig{
Username: args[0],
Password: args[1],
UserCertificate: cert,
UserCertificateKey: certKey,
Endpoint: fctl.GetString(cmd, c.endpointFlag),
AuthorizationEndpoint: fctl.GetString(cmd, c.authorizationEndpointFlag),
PollingPeriod: fctl.Ptr(fctl.GetString(cmd, c.pollingPeriodFlag)),
Expand All @@ -97,12 +115,15 @@ func (c *PaymentsConnectorsBankingCircleController) Run(cmd *cobra.Command, args
c.store.Success = true
c.store.ConnectorName = internal.BankingCircleConnector

if response.ConnectorResponse != nil {
c.store.ConnectorID = response.ConnectorResponse.Data.ConnectorID
}

return c, nil
}

func (c *PaymentsConnectorsBankingCircleController) Render(cmd *cobra.Command, args []string) error {

pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("Connector '%s' installed!", c.store.ConnectorName)
pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("%s: connector '%s' installed!", c.store.ConnectorName, c.store.ConnectorID)

return nil
}
15 changes: 12 additions & 3 deletions components/fctl/cmd/payments/connectors/install/currencycloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ import (
type PaymentsConnectorsCurrencyCloudStore struct {
Success bool `json:"success"`
ConnectorName string `json:"connectorName"`
ConnectorID string `json:"connectorId"`
}
type PaymentsConnectorsCurrencyCloudController struct {
store *PaymentsConnectorsCurrencyCloudStore
endpointFlag string
defaultEndpoint string
pollingPeriodFlag string
defaultpollingPeriod string
nameFlag string
defaultName string
}

var _ fctl.Controller[*PaymentsConnectorsCurrencyCloudStore] = (*PaymentsConnectorsCurrencyCloudController)(nil)
Expand All @@ -39,6 +42,8 @@ func NewPaymentsConnectorsCurrencyCloudController() *PaymentsConnectorsCurrencyC
defaultEndpoint: "https://devapi.currencycloud.com",
pollingPeriodFlag: "polling-period",
defaultpollingPeriod: "2m",
nameFlag: "name",
defaultName: "currencycloud",
}
}

Expand All @@ -49,6 +54,7 @@ func NewCurrencyCloudCommand() *cobra.Command {
fctl.WithArgs(cobra.ExactArgs(2)),
fctl.WithStringFlag(c.endpointFlag, c.defaultEndpoint, "API endpoint"),
fctl.WithStringFlag(c.pollingPeriodFlag, c.defaultpollingPeriod, "Polling duration"),
fctl.WithStringFlag(c.nameFlag, c.defaultName, "Connector name"),
fctl.WithController[*PaymentsConnectorsCurrencyCloudStore](c),
)
}
Expand All @@ -58,7 +64,6 @@ func (c *PaymentsConnectorsCurrencyCloudController) GetStore() *PaymentsConnecto
}

func (c *PaymentsConnectorsCurrencyCloudController) Run(cmd *cobra.Command, args []string) (fctl.Renderable, error) {

soc, err := fctl.GetStackOrganizationConfigApprobation(cmd, "You are about to install connector '%s'", internal.CurrencyCloudConnector)
if err != nil {
return nil, fctl.ErrMissingApproval
Expand All @@ -77,6 +82,7 @@ func (c *PaymentsConnectorsCurrencyCloudController) Run(cmd *cobra.Command, args
response, err := paymentsClient.Payments.InstallConnector(cmd.Context(), operations.InstallConnectorRequest{
ConnectorConfig: shared.ConnectorConfig{
CurrencyCloudConfig: &shared.CurrencyCloudConfig{
Name: fctl.GetString(cmd, c.nameFlag),
APIKey: args[1],
LoginID: args[0],
Endpoint: endpoint,
Expand All @@ -96,12 +102,15 @@ func (c *PaymentsConnectorsCurrencyCloudController) Run(cmd *cobra.Command, args
c.store.Success = true
c.store.ConnectorName = internal.CurrencyCloudConnector

if response.ConnectorResponse != nil {
c.store.ConnectorID = response.ConnectorResponse.Data.ConnectorID
}

return c, nil
}

func (c *PaymentsConnectorsCurrencyCloudController) Render(cmd *cobra.Command, args []string) error {

pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("Connector '%s' installed!", c.store.ConnectorName)
pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("%s: connector '%s' installed!", c.store.ConnectorName, c.store.ConnectorID)

return nil
}
15 changes: 13 additions & 2 deletions components/fctl/cmd/payments/connectors/install/mangopay.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ import (
type PaymentsConnectorsMangoPayStore struct {
Success bool `json:"success"`
ConnectorName string `json:"connectorName"`
ConnectorID string `json:"connectorId"`
}
type PaymentsConnectorsMangoPayController struct {
store *PaymentsConnectorsMangoPayStore
endpointFlag string
defaultEndpoint string
pollingPeriodFlag string
defaultpollingPeriod string
nameFlag string
defaultName string
}

func NewDefaultPaymentsConnectorsMangoPayStore() *PaymentsConnectorsMangoPayStore {
Expand All @@ -37,6 +40,8 @@ func NewPaymentsConnectorsMangoPayController() *PaymentsConnectorsMangoPayContro
defaultEndpoint: "https://api.sandbox.mangopay.com",
pollingPeriodFlag: "polling-period",
defaultpollingPeriod: "2m",
nameFlag: "name",
defaultName: "mangopay",
}
}

Expand All @@ -47,6 +52,7 @@ func NewMangoPayCommand() *cobra.Command {
fctl.WithArgs(cobra.ExactArgs(2)),
fctl.WithStringFlag(c.endpointFlag, c.defaultEndpoint, "API endpoint"),
fctl.WithStringFlag(c.pollingPeriodFlag, c.defaultpollingPeriod, "Polling duration"),
fctl.WithStringFlag(c.nameFlag, c.defaultName, "Connector name"),
fctl.WithController[*PaymentsConnectorsMangoPayStore](c),
)
}
Expand Down Expand Up @@ -88,6 +94,7 @@ func (c *PaymentsConnectorsMangoPayController) Run(cmd *cobra.Command, args []st
APIKey: args[1],
Endpoint: fctl.GetString(cmd, c.endpointFlag),
PollingPeriod: fctl.Ptr(fctl.GetString(cmd, c.pollingPeriodFlag)),
Name: fctl.GetString(cmd, c.nameFlag),
},
},
}
Expand All @@ -101,13 +108,17 @@ func (c *PaymentsConnectorsMangoPayController) Run(cmd *cobra.Command, args []st
}

c.store.Success = true
c.store.ConnectorName = internal.MangoPayConnector

if response.ConnectorResponse != nil {
c.store.ConnectorID = response.ConnectorResponse.Data.ConnectorID
}

return c, nil
}

func (c *PaymentsConnectorsMangoPayController) Render(cmd *cobra.Command, args []string) error {

pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("Connector %s installed!", c.store.ConnectorName)
pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("%s: connector %s installed!", c.store.ConnectorName, c.store.ConnectorID)

return nil
}
15 changes: 13 additions & 2 deletions components/fctl/cmd/payments/connectors/install/modulr.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,17 @@ import (
type PaymentsConnectorsModulrStore struct {
Success bool `json:"success"`
ConnectorName string `json:"connectorName"`
ConnectorID string `json:"connectorId"`
}

type PaymentsConnectorsModulrController struct {
store *PaymentsConnectorsModulrStore
endpointFlag string
defaultEndpoint string
pollingPeriodFlag string
defaultpollingPeriod string
nameFlag string
defaultName string
}

var _ fctl.Controller[*PaymentsConnectorsModulrStore] = (*PaymentsConnectorsModulrController)(nil)
Expand All @@ -39,6 +43,8 @@ func NewPaymentsConnectorsModulrController() *PaymentsConnectorsModulrController
defaultEndpoint: "https://api-sandbox.modulrfinance.com",
pollingPeriodFlag: "polling-period",
defaultpollingPeriod: "2m",
nameFlag: "name",
defaultName: "modulr",
}
}

Expand All @@ -49,6 +55,7 @@ func NewModulrCommand() *cobra.Command {
fctl.WithArgs(cobra.ExactArgs(2)),
fctl.WithStringFlag(c.endpointFlag, c.defaultEndpoint, "API endpoint"),
fctl.WithStringFlag(c.pollingPeriodFlag, c.defaultpollingPeriod, "Polling duration"),
fctl.WithStringFlag(c.nameFlag, c.defaultName, "Connector name"),
fctl.WithController[*PaymentsConnectorsModulrStore](c),
)
}
Expand Down Expand Up @@ -76,6 +83,7 @@ func (c *PaymentsConnectorsModulrController) Run(cmd *cobra.Command, args []stri
response, err := paymentsClient.Payments.InstallConnector(cmd.Context(), operations.InstallConnectorRequest{
ConnectorConfig: shared.ConnectorConfig{
ModulrConfig: &shared.ModulrConfig{
Name: fctl.GetString(cmd, c.nameFlag),
APIKey: args[0],
APISecret: args[1],
Endpoint: endpoint,
Expand All @@ -95,12 +103,15 @@ func (c *PaymentsConnectorsModulrController) Run(cmd *cobra.Command, args []stri
c.store.Success = true
c.store.ConnectorName = internal.ModulrConnector

if response.ConnectorResponse != nil {
c.store.ConnectorID = response.ConnectorResponse.Data.ConnectorID
}

return c, nil
}

func (c *PaymentsConnectorsModulrController) Render(cmd *cobra.Command, args []string) error {

pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("Connector '%s' installed!", c.store.ConnectorName)
pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("%s: connector '%s' installed!", c.store.ConnectorName, c.store.ConnectorID)

return nil
}
15 changes: 13 additions & 2 deletions components/fctl/cmd/payments/connectors/install/moneycorp.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ import (
type PaymentsConnectorsMoneycorpStore struct {
Success bool `json:"success"`
ConnectorName string `json:"connectorName"`
ConnectorID string `json:"connectorId"`
}
type PaymentsConnectorsMoneycorpController struct {
store *PaymentsConnectorsMoneycorpStore
endpointFlag string
defaultEndpoint string
pollingPeriodFlag string
defaultpollingPeriod string
nameFlag string
defaultName string
}

func NewDefaultPaymentsConnectorsMoneycorpStore() *PaymentsConnectorsMoneycorpStore {
Expand All @@ -37,6 +40,8 @@ func NewPaymentsConnectorsMoneycorpController() *PaymentsConnectorsMoneycorpCont
defaultEndpoint: "https://sandbox-corpapi.moneycorp.com",
pollingPeriodFlag: "polling-period",
defaultpollingPeriod: "2m",
nameFlag: "name",
defaultName: "moneycorp",
}
}
func NewMoneycorpCommand() *cobra.Command {
Expand All @@ -47,6 +52,7 @@ func NewMoneycorpCommand() *cobra.Command {
fctl.WithArgs(cobra.ExactArgs(2)),
fctl.WithStringFlag(c.endpointFlag, c.defaultEndpoint, "API endpoint"),
fctl.WithStringFlag(c.pollingPeriodFlag, c.defaultpollingPeriod, "Polling duration"),
fctl.WithStringFlag(c.nameFlag, c.defaultName, "Connector name"),
fctl.WithController[*PaymentsConnectorsMoneycorpStore](c),
)
}
Expand Down Expand Up @@ -84,6 +90,7 @@ func (c *PaymentsConnectorsMoneycorpController) Run(cmd *cobra.Command, args []s
Connector: shared.ConnectorMoneycorp,
ConnectorConfig: shared.ConnectorConfig{
MoneycorpConfig: &shared.MoneycorpConfig{
Name: fctl.GetString(cmd, c.nameFlag),
ClientID: args[0],
APIKey: args[1],
Endpoint: fctl.GetString(cmd, c.endpointFlag),
Expand All @@ -103,13 +110,17 @@ func (c *PaymentsConnectorsMoneycorpController) Run(cmd *cobra.Command, args []s
pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("Connector installed!")

c.store.Success = true
c.store.ConnectorName = internal.MoneycorpConnector

if response.ConnectorResponse != nil {
c.store.ConnectorID = response.ConnectorResponse.Data.ConnectorID
}

return c, nil
}

func (c *PaymentsConnectorsMoneycorpController) Render(cmd *cobra.Command, args []string) error {

pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("Connector %s installed!", c.store.ConnectorName)
pterm.Success.WithWriter(cmd.OutOrStdout()).Printfln("%s: connector %s installed!", c.store.ConnectorName, c.store.ConnectorID)

return nil
}
Loading

1 comment on commit 7fb7c1d

@vercel
Copy link

@vercel vercel bot commented on 7fb7c1d Nov 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.