mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
* Implement Balances Webhooks in Stripe to reduce polling workflows * Create webhooks on install * Remove webhook at uninstall time * Add verifyWebhook function to Stripe * Pin APIVersion in Stripe Webhook Create call * Default to root account when receiving balance.update webhook * Only make call do delete webhooks if webhooks were setup to begin with * Set up two webhook endpoints - one for connect and one for root account * Use event.Created to determine balance time in Stripe webhooks * Start recording root account ID instead of dummy 'root' value * Create unit test for Stripe create webhooks * Add tests for Stripe Translate webhook * Share logic between Stripe balance polling and webhook handle * Use supported webhooks map * Update existing stripe webhooks instead of creating new ones at app start time * Run install sequence for each connector at app start of payments api pods * Turn of balances periodically for Stripe * Add nil checks for balance.Available * Remove potentially sensitive information from error message * Add migration tool to remove FETCH BALANCES schedules from stripe
24 lines
601 B
Go
24 lines
601 B
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/formancehq/payments/internal/connectors/metrics"
|
|
"github.com/stripe/stripe-go/v80"
|
|
)
|
|
|
|
func (c *client) GetAccountBalances(ctx context.Context, accountID string) (*stripe.Balance, error) {
|
|
filters := stripe.Params{Context: metrics.OperationContext(ctx, "list_balances")}
|
|
if accountID != "" {
|
|
filters.StripeAccount = &accountID
|
|
}
|
|
|
|
balance, err := c.balanceClient.Get(&stripe.BalanceParams{Params: filters})
|
|
err = wrapSDKErr(err)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to get stripe balance: %w", err)
|
|
}
|
|
return balance, nil
|
|
}
|