fix(email notifications): added error handling to email template parsing, fixes #2690
This commit is contained in:
@@ -64,16 +64,28 @@ func sendEmailCommandHandler(cmd *m.SendEmailCommand) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var buffer bytes.Buffer
|
var buffer bytes.Buffer
|
||||||
|
var err error
|
||||||
|
var subjectText interface{}
|
||||||
|
|
||||||
data := cmd.Data
|
data := cmd.Data
|
||||||
if data == nil {
|
if data == nil {
|
||||||
data = make(map[string]interface{}, 10)
|
data = make(map[string]interface{}, 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
setDefaultTemplateData(data, nil)
|
setDefaultTemplateData(data, nil)
|
||||||
mailTemplates.ExecuteTemplate(&buffer, cmd.Template, data)
|
err = mailTemplates.ExecuteTemplate(&buffer, cmd.Template, data)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
subjectTmplText := data["Subject"].(map[string]interface{})["value"].(string)
|
subjectData := data["Subject"].(map[string]interface{})
|
||||||
subjectTmpl, err := template.New("subject").Parse(subjectTmplText)
|
subjectText, hasSubject := subjectData["value"]
|
||||||
|
|
||||||
|
if !hasSubject {
|
||||||
|
return errors.New(fmt.Sprintf("Missing subject in Template %s", cmd.Template))
|
||||||
|
}
|
||||||
|
|
||||||
|
subjectTmpl, err := template.New("subject").Parse(subjectText.(string))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user