add base of watcher

This commit is contained in:
DataHearth 2021-03-14 16:36:24 +01:00
parent cde6075f00
commit 0ed762638a
No known key found for this signature in database
GPG Key ID: E88FD356ACC5F3C4
2 changed files with 55 additions and 0 deletions

8
pkg/watcher/types.go Normal file
View File

@ -0,0 +1,8 @@
package watcher
import "errors"
var (
ErrNilProvider = errors.New("provider can't be nil")
ErrNilHTTP = errors.New("http can't be nil")
)

47
pkg/watcher/watcher.go Normal file
View File

@ -0,0 +1,47 @@
package watcher
import (
"github.com/datahearth/ddnsclient/pkg/http"
"github.com/datahearth/ddnsclient/pkg/providers"
"github.com/datahearth/ddnsclient/pkg/utils"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
)
type Watcher interface {
Run() error
}
type watcher struct {
logger logrus.FieldLogger
provider providers.Provider
http http.HTTP
subdomains []string
domain string
}
func NewWatcher(logger logrus.FieldLogger, provider providers.Provider, http http.HTTP) (Watcher, error) {
if logger == nil {
return nil, utils.ErrNilLogger
}
if provider == nil {
return nil, ErrNilProvider
}
if http == nil {
return nil, ErrNilHTTP
}
domain := viper.GetStringMap("watcher")["domain"].(string)
subdomains := utils.AggregateSubdomains(viper.GetStringMap("watcher")["subdomains"].([]string), domain)
return &watcher{
logger: logger,
provider: provider,
http: http,
domain: domain,
subdomains: subdomains,
}, nil
}
func (w *watcher) Run() error {
return nil
}