mirror of
https://github.com/directorz/mailfull-go.git
synced 2025-12-17 17:47:04 +00:00
Implement some parts for loading data from a directory
This commit is contained in:
48
aliasuser.go
Normal file
48
aliasuser.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package mailfull
|
||||
|
||||
import "errors"
|
||||
|
||||
// Errors for parameter.
|
||||
var (
|
||||
ErrNotEnoughAliasUserTargets = errors.New("AliasUser: targets not enough")
|
||||
)
|
||||
|
||||
// AliasUser represents a AliasUser.
|
||||
type AliasUser struct {
|
||||
name string
|
||||
targets []string
|
||||
}
|
||||
|
||||
// NewAliasUser creates a new AliasUser instance.
|
||||
func NewAliasUser(name string, targets []string) (*AliasUser, error) {
|
||||
if !validAliasUserName(name) {
|
||||
return nil, ErrInvalidAliasUserName
|
||||
}
|
||||
|
||||
if len(targets) < 1 {
|
||||
return nil, ErrNotEnoughAliasUserTargets
|
||||
}
|
||||
|
||||
for _, target := range targets {
|
||||
if !validAliasUserTarget(target) {
|
||||
return nil, ErrInvalidAliasUserTarget
|
||||
}
|
||||
}
|
||||
|
||||
au := &AliasUser{
|
||||
name: name,
|
||||
targets: targets,
|
||||
}
|
||||
|
||||
return au, nil
|
||||
}
|
||||
|
||||
// Name returns name.
|
||||
func (au *AliasUser) Name() string {
|
||||
return au.name
|
||||
}
|
||||
|
||||
// Targets returns targets.
|
||||
func (au *AliasUser) Targets() []string {
|
||||
return au.targets
|
||||
}
|
||||
Reference in New Issue
Block a user