mirror of
https://github.com/directorz/mailfull-go.git
synced 2025-12-17 17:47:04 +00:00
Implement parts for generating databases
This commit is contained in:
47
maildata.go
Normal file
47
maildata.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package mailfull
|
||||
|
||||
// MailData represents a MailData.
|
||||
type MailData struct {
|
||||
Domains []*Domain
|
||||
AliasDomains []*AliasDomain
|
||||
}
|
||||
|
||||
// MailData returns a MailData.
|
||||
func (r *Repository) MailData() (*MailData, error) {
|
||||
domains, err := r.Domains()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
aliasDomains, err := r.AliasDomains()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for _, domain := range domains {
|
||||
users, err := r.Users(domain.Name())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
domain.Users = users
|
||||
|
||||
aliasUsers, err := r.AliasUsers(domain.Name())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
domain.AliasUsers = aliasUsers
|
||||
|
||||
catchAllUser, err := r.CatchAllUser(domain.Name())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
domain.CatchAllUser = catchAllUser
|
||||
}
|
||||
|
||||
mailData := &MailData{
|
||||
Domains: domains,
|
||||
AliasDomains: aliasDomains,
|
||||
}
|
||||
|
||||
return mailData, nil
|
||||
}
|
||||
Reference in New Issue
Block a user