51 lines
748 B
Go
51 lines
748 B
Go
package domain
|
|
|
|
import "net/url"
|
|
|
|
type BaseServer struct {
|
|
key string
|
|
url *url.URL
|
|
open bool
|
|
}
|
|
|
|
func NewBaseServer(key, rawURL string, open bool) (BaseServer, error) {
|
|
if err := validateServerKey(key); err != nil {
|
|
return BaseServer{}, ValidationError{
|
|
Err: err,
|
|
Field: "key",
|
|
}
|
|
}
|
|
|
|
u, err := parseURL(rawURL)
|
|
if err != nil {
|
|
return BaseServer{}, ValidationError{
|
|
Err: err,
|
|
Field: "url",
|
|
}
|
|
}
|
|
|
|
return BaseServer{
|
|
key: key,
|
|
url: u,
|
|
open: open,
|
|
}, nil
|
|
}
|
|
|
|
func (b BaseServer) Key() string {
|
|
return b.key
|
|
}
|
|
|
|
func (b BaseServer) URL() *url.URL {
|
|
return b.url
|
|
}
|
|
|
|
func (b BaseServer) Open() bool {
|
|
return b.open
|
|
}
|
|
|
|
func (b BaseServer) IsZero() bool {
|
|
return b == BaseServer{}
|
|
}
|
|
|
|
type BaseServers []BaseServer
|