ynab-portfolio-monitor/accountProviders.go

25 lines
1.1 KiB
Go
Raw Normal View History

package main
import (
"code.stevenpolley.net/steven/ynab-portfolio-monitor/providers/bitcoin"
"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{},
2023-11-13 07:33:22 +00:00
&staticjsonFinnhub.Provider{},
2023-11-13 18:52:45 +00:00
&staticjsonYahooFinance.Provider{},
}