21 lines
851 B
Go
21 lines
851 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"deadbeef.codes/steven/ynab-portfolio-monitor/bitcoin"
|
||
|
"deadbeef.codes/steven/ynab-portfolio-monitor/questrade"
|
||
|
)
|
||
|
|
||
|
// 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{},
|
||
|
}
|