Files
payments/internal/connectors/engine/activities/plugin_translate_webhook.go
CrimsonandGitHub d8a440a5a2 fix(connectors): prevent injection of arbitrary json keys in connector config (#526)
* Rename engine/plugins package to avoid confusion with connector/plugins package

* Update instances of plugins to be renamed to connectors

* Use Load/Unload for Connectors Manager to avoid confusion with Plugin Registry actions

* Add some unit tests for connectors.Manager

* Add Config method to Plugin interface

* Use validated config instead of raw config for insertion into DB

* Update plugin template to include new Config command

* Ensure plugin is not nil in workflow unit tests

* Small adjustments to e2e test expectations to reflect change in json validation of config

* Update codecoverage to exclude new generated files

* Guard against nil map in combineConfigs

* Update Plugin interface in CONTRIBUTING.md
2025-09-02 13:06:12 +00:00

40 lines
1.1 KiB
Go

package activities
import (
"context"
"github.com/formancehq/payments/internal/models"
"go.temporal.io/sdk/workflow"
)
type TranslateWebhookRequest struct {
ConnectorID models.ConnectorID
Req models.TranslateWebhookRequest
}
func (a Activities) PluginTranslateWebhook(ctx context.Context, request TranslateWebhookRequest) (*models.TranslateWebhookResponse, error) {
plugin, err := a.connectors.Get(request.ConnectorID)
if err != nil {
return nil, a.temporalPluginError(ctx, err)
}
resp, err := plugin.TranslateWebhook(ctx, request.Req)
if err != nil {
return nil, a.temporalPluginError(ctx, err)
}
return &resp, nil
}
var PluginTranslateWebhookActivity = Activities{}.PluginTranslateWebhook
func PluginTranslateWebhook(ctx workflow.Context, connectorID models.ConnectorID, request models.TranslateWebhookRequest) (*models.TranslateWebhookResponse, error) {
ret := models.TranslateWebhookResponse{}
if err := executeActivity(ctx, PluginTranslateWebhookActivity, &ret, TranslateWebhookRequest{
ConnectorID: connectorID,
Req: request,
}); err != nil {
return nil, err
}
return &ret, nil
}