forked from go-auth0/auth0
-
Notifications
You must be signed in to change notification settings - Fork 0
/
email.go
64 lines (52 loc) · 1.71 KB
/
email.go
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package management
type Email struct {
// The name of the email provider. Can be one of "mandrill", "sendgrid",
// "sparkpost", "ses" or "smtp".
Name string `json:"name,omitempty"`
// True if the email provider is enabled, false otherwise (defaults to true)
Enabled bool `json:"enabled,omitempty"`
// The default FROM address
DefaultFromAddress string `json:"default_from_address,omitempty"`
Credentials *EmailCredentials `json:"credentials,omitempty"`
Settings map[string]interface{} `json:"settings,omitempty"`
}
type EmailCredentials struct {
// API User
APIUser string `json:"api_user,omitempty"`
// API Key
APIKey string `json:"api_key,omitempty"`
// AWS Access Key ID
AccessKeyID string `json:"accessKeyId,omitempty"`
// AWS Secret Access Key
SecretAccessKey string `json:"secretAccessKey,omitempty"`
// AWS default region
Region string `json:"region,omitempty"`
// SMTP host
SMTPHost string `json:"smtp_host,omitempty"`
// SMTP port
SMTPPort int `json:"smtp_port,omitempty"`
// SMTP user
SMTPUser string `json:"smtp_user,omitempty"`
// SMTP password
SMTPPass string `json:"smtp_pass,omitempty"`
}
type EmailManager struct {
m *Management
}
func NewEmailManager(m *Management) *EmailManager {
return &EmailManager{m}
}
func (em *EmailManager) Create(e *Email) error {
return em.m.post(em.m.uri("emails", "provider"), e)
}
func (em *EmailManager) Read(opts ...reqOption) (*Email, error) {
e := new(Email)
err := em.m.get(em.m.uri("emails", "provider")+em.m.q(opts), e)
return e, err
}
func (em *EmailManager) Update(e *Email) (err error) {
return em.m.patch(em.m.uri("emails", "provider"), e)
}
func (em *EmailManager) Delete() (err error) {
return em.m.delete(em.m.uri("emails", "provider"))
}