homeserver.go 752 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package config
  2. import (
  3. "errors"
  4. )
  5. var (
  6. ErrHomeserverNoAddress = errors.New("no homeserver address specified")
  7. ErrHomeserverNoDomain = errors.New("no homeserver domain specified")
  8. )
  9. type homeserver struct {
  10. Address string `yaml:"address"`
  11. Domain string `yaml:"domain"`
  12. StatusEndpoint string `yaml:"status_endpoint"`
  13. }
  14. func (h *homeserver) validate() error {
  15. if h.Address == "" {
  16. return ErrHomeserverNoAddress
  17. }
  18. if h.Domain == "" {
  19. return ErrHomeserverNoDomain
  20. }
  21. return nil
  22. }
  23. func (h *homeserver) UnmarshalYAML(unmarshal func(interface{}) error) error {
  24. type rawHomeserver homeserver
  25. raw := rawHomeserver{}
  26. if err := unmarshal(&raw); err != nil {
  27. return err
  28. }
  29. *h = homeserver(raw)
  30. return h.validate()
  31. }