mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Have the modules set their own titles If no title is specified, use this title, rather than default to name
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 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
|
|
}
|