1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
wtf/modules/trello/settings.go
Sean Smith 14abd422b2 Add default titles, to mimic original behavior
Have the modules set their own titles
If no title is specified, use this title, rather than default to name
2019-04-30 23:38:37 -04:00

58 lines
1.2 KiB
Go

package trello
import (
"os"
"github.com/olebedev/config"
"github.com/wtfutil/wtf/cfg"
)
const defaultTitle = "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, defaultTitle, 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
}