homeserver.go 790 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. Asmux bool `yaml:"asmux"`
  13. StatusEndpoint string `yaml:"status_endpoint"`
  14. }
  15. func (h *homeserver) validate() error {
  16. if h.Address == "" {
  17. return ErrHomeserverNoAddress
  18. }
  19. if h.Domain == "" {
  20. return ErrHomeserverNoDomain
  21. }
  22. return nil
  23. }
  24. func (h *homeserver) UnmarshalYAML(unmarshal func(interface{}) error) error {
  25. type rawHomeserver homeserver
  26. raw := rawHomeserver{}
  27. if err := unmarshal(&raw); err != nil {
  28. return err
  29. }
  30. *h = homeserver(raw)
  31. return h.validate()
  32. }