Files
ynab-portfolio-monitor/accountProviders.go
Steven Polley c6bbc91da9
All checks were successful
ynab-portfolio-monitor / build (push) Successful in 39s
add marketman arbitrage engine provider
2026-03-12 11:16:01 -06:00

29 lines
1.3 KiB
Go

package main
import (
"code.stevenpolley.net/steven/ynab-portfolio-monitor/providers/bitcoin"
"code.stevenpolley.net/steven/ynab-portfolio-monitor/providers/bitcoinElectrum"
"code.stevenpolley.net/steven/ynab-portfolio-monitor/providers/marketman"
"code.stevenpolley.net/steven/ynab-portfolio-monitor/providers/questrade"
"code.stevenpolley.net/steven/ynab-portfolio-monitor/providers/staticjsonFinnhub"
"code.stevenpolley.net/steven/ynab-portfolio-monitor/providers/staticjsonYahooFinance"
)
// AccountProvider is the base set of requirements to be implemented for any integration
type AccountProvider interface {
Name() string // Returns the name of the provider
Configure() error // Configures the provider for first use - if an error is returned the provider is not used
GetBalances() ([]int, []string, error) // A slice of balances, and an index mapped slice of ynab account IDs this provider handles is returned
}
// Instantiate all providers for configuration
// If configuration for a provider does not exist, it will be pruned during init()
var allProviders []AccountProvider = []AccountProvider{
&questrade.Provider{},
&bitcoin.Provider{},
&staticjsonFinnhub.Provider{},
&staticjsonYahooFinance.Provider{},
&bitcoinElectrum.Provider{},
&marketman.Provider{},
}