fleet/server/mail/users.go
Zachary Wasserman 45f6a74740
Allow import of github.com/kolide/fleet (#2213)
Previously a Go package attempting to import Fleet packages would run
into an error like "server/kolide/emails.go:93:23: undefined: Asset".

This commit refactors bindata asset handling to allow importing Fleet as
a library without changing the typical developer experience.
2020-03-29 19:22:04 -07:00

48 lines
918 B
Go

package mail
import (
"bytes"
"html/template"
)
type ChangeEmailMailer struct {
BaseURL template.URL
AssetURL template.URL
Token string
}
func (cem *ChangeEmailMailer) Message() ([]byte, error) {
t, err := getTemplate("server/mail/templates/change_email_confirmation.html")
if err != nil {
return nil, err
}
var msg bytes.Buffer
err = t.Execute(&msg, cem)
if err != nil {
return nil, err
}
return msg.Bytes(), nil
}
type PasswordResetMailer struct {
// Base URL to use for Fleet endpoints
BaseURL template.URL
// URL for loading image assets
AssetURL template.URL
// Token password reset token
Token string
}
func (r PasswordResetMailer) Message() ([]byte, error) {
t, err := getTemplate("server/mail/templates/password_reset.html")
if err != nil {
return nil, err
}
var msg bytes.Buffer
if err = t.Execute(&msg, r); err != nil {
return nil, err
}
return msg.Bytes(), nil
}