mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Rather than referencing wtc.Config, instead pass the global config Also, look up config for the module early and pass that in sooner, to deal with fewer long paths and get rid of the ConfigKey variable
58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package trello
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/olebedev/config"
|
|
"github.com/wtfutil/wtf/cfg"
|
|
)
|
|
|
|
const configKey = "trello"
|
|
|
|
type Settings struct {
|
|
common *cfg.Common
|
|
|
|
accessToken string
|
|
apiKey string
|
|
board string
|
|
list map[string]string
|
|
username string
|
|
}
|
|
|
|
func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
|
|
|
|
settings := Settings{
|
|
common: cfg.NewCommonSettingsFromModule(name, ymlConfig, globalConfig),
|
|
|
|
accessToken: ymlConfig.UString("accessToken", os.Getenv("WTF_TRELLO_ACCESS_TOKEN")),
|
|
apiKey: ymlConfig.UString("apiKey", os.Getenv("WTF_TRELLO_APP_KEY")),
|
|
board: ymlConfig.UString("board"),
|
|
username: ymlConfig.UString("username"),
|
|
}
|
|
|
|
settings.list = mapifyList(ymlConfig, globalConfig)
|
|
|
|
return &settings
|
|
}
|
|
|
|
func mapifyList(ymlConfig *config.Config, globalConfig *config.Config) map[string]string {
|
|
lists := make(map[string]string)
|
|
|
|
// Single list
|
|
list, err := ymlConfig.String("list")
|
|
if err == nil {
|
|
lists[list] = ""
|
|
return lists
|
|
}
|
|
|
|
// Array of lists
|
|
listList := ymlConfig.UList("project")
|
|
for _, listName := range listList {
|
|
if list, ok := listName.(string); ok {
|
|
lists[list] = ""
|
|
}
|
|
}
|
|
|
|
return lists
|
|
}
|