Files
mautrix-discord/config/homeserver.go
Gary Kramlich 2b63ddc6b8 Rename the config structs setDefaults to validate
This allows us to check for some required values and give an easy to respond
to error at startup rather than a lot of validation during run time.
2021-11-19 16:53:43 -06:00

42 lines
752 B
Go

package config
import (
"errors"
)
var (
ErrHomeserverNoAddress = errors.New("no homeserver address specified")
ErrHomeserverNoDomain = errors.New("no homeserver domain specified")
)
type homeserver struct {
Address string `yaml:"address"`
Domain string `yaml:"domain"`
StatusEndpoint string `yaml:"status_endpoint"`
}
func (h *homeserver) validate() error {
if h.Address == "" {
return ErrHomeserverNoAddress
}
if h.Domain == "" {
return ErrHomeserverNoDomain
}
return nil
}
func (h *homeserver) UnmarshalYAML(unmarshal func(interface{}) error) error {
type rawHomeserver homeserver
raw := rawHomeserver{}
if err := unmarshal(&raw); err != nil {
return err
}
*h = homeserver(raw)
return h.validate()
}