1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00

chore: send notification on successful import

This commit is contained in:
Ferdinand Mütsch
2021-04-10 10:48:06 +02:00
parent 56247b4e1e
commit 2a9fbfdfd7
11 changed files with 262 additions and 32 deletions

View File

@ -11,29 +11,37 @@ import (
)
const (
tplPath = "/views/mail"
tplNamePasswordReset = "reset_password"
subjectPasswordReset = "Wakapi Password Reset"
tplPath = "/views/mail"
tplNamePasswordReset = "reset_password"
tplNameImportNotification = "import_finished"
subjectPasswordReset = "Wakapi Password Reset"
subjectImportNotification = "Wakapi Data Import Finished"
)
type passwordResetLinkTplData struct {
type PasswordResetTplData struct {
ResetLink string
}
type ImportNotificationTplData struct {
PublicUrl string
Duration string
NumHeartbeats int
}
// Factory
func NewMailService() services.IMailService {
config := conf.Get()
if config.Mail.Enabled {
if config.Mail.Provider == conf.MailProviderMailWhale {
return NewMailWhaleService(config.Mail.MailWhale)
return NewMailWhaleService(config.Mail.MailWhale, config.Server.PublicUrl)
} else if config.Mail.Provider == conf.MailProviderSmtp {
return NewSMTPMailService(config.Mail.Smtp)
return NewSMTPMailService(config.Mail.Smtp, config.Server.PublicUrl)
}
}
return &NoopMailService{}
}
func getPasswordResetTemplate(data passwordResetLinkTplData) (*bytes.Buffer, error) {
func getPasswordResetTemplate(data PasswordResetTplData) (*bytes.Buffer, error) {
tpl, err := loadTemplate(tplNamePasswordReset)
if err != nil {
return nil, err
@ -45,6 +53,18 @@ func getPasswordResetTemplate(data passwordResetLinkTplData) (*bytes.Buffer, err
return &rendered, nil
}
func getImportNotificationTemplate(data ImportNotificationTplData) (*bytes.Buffer, error) {
tpl, err := loadTemplate(tplNameImportNotification)
if err != nil {
return nil, err
}
var rendered bytes.Buffer
if err := tpl.Execute(&rendered, data); err != nil {
return nil, err
}
return &rendered, nil
}
func loadTemplate(tplName string) (*template.Template, error) {
tplFile, err := pkger.Open(fmt.Sprintf("%s/%s.tpl.html", tplPath, tplName))
if err != nil {