-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathclient.go
More file actions
44 lines (35 loc) · 881 Bytes
/
client.go
File metadata and controls
44 lines (35 loc) · 881 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package mailcow
import (
"go.bnck.me/mailcow/apis/alias"
"go.bnck.me/mailcow/apis/domain"
"go.bnck.me/mailcow/apis/mailbox"
"go.bnck.me/mailcow/internal/transport"
)
// Client represents the main client
type Client struct {
transport *transport.Client
alias alias.Client
domain domain.Client
mailbox mailbox.Client
}
// Alias returns a client for domain specific operations
func (c *Client) Alias() alias.Client {
if c.alias == nil {
c.alias = alias.New(c.transport)
}
return c.alias
}
// Domain returns a client for domain specific operations
func (c *Client) Domain() domain.Client {
if c.domain == nil {
c.domain = domain.New(c.transport)
}
return c.domain
}
// Mailbox returns a client for mailbox specific operations
func (c *Client) Mailbox() mailbox.Client {
if c.mailbox == nil {
c.mailbox = mailbox.New(c.transport)
}
return c.mailbox
}