zitadel/internal/notification/templates/template.go

46 lines
984 B
Go
Raw Normal View History

feat: notifications (#109) * implement notification providers * email provider * notification handler * notify users * implement code sent on user eventstore * send email implementation * send init code * handle codes * fix project member handler * add some logs for debug * send emails * text changes * send sms * notification process * send password code * format phone number * test format phone * remove fmts * remove unused code * rename files * add mocks * merge master * Update internal/notification/providers/email/message.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/notification/repository/eventsourcing/handler/notification.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/notification/repository/eventsourcing/handler/notification.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/notification/providers/email/provider.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * requested changes of mr * move locker to eventstore pkg * Update internal/notification/providers/chat/message.go Co-authored-by: Livio Amstutz <livio.a@gmail.com> * move locker to eventstore pkg * linebreak * Update internal/notification/providers/email/provider.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/notification/repository/eventsourcing/handler/notification.go Co-authored-by: Silvan <silvan.reusser@gmail.com> * Update internal/notification/repository/eventsourcing/handler/notification.go Co-authored-by: Silvan <silvan.reusser@gmail.com> Co-authored-by: Silvan <silvan.reusser@gmail.com> Co-authored-by: Livio Amstutz <livio.a@gmail.com>
2020-05-20 12:28:08 +00:00
package templates
import (
"bytes"
"html/template"
)
const (
templateFileName = "template.html"
)
func GetParsedTemplate(contentData interface{}) (string, error) {
template, err := ParseTemplateFile("", contentData)
if err != nil {
return "", err
}
return ParseTemplateText(template, contentData)
}
func ParseTemplateFile(fileName string, data interface{}) (string, error) {
if fileName == "" {
fileName = templateFileName
}
template, err := template.ParseFiles(fileName)
if err != nil {
return "", err
}
return parseTemplate(template, data)
}
func ParseTemplateText(text string, data interface{}) (string, error) {
template, err := template.New("template").Parse(text)
if err != nil {
return "", err
}
return parseTemplate(template, data)
}
func parseTemplate(template *template.Template, data interface{}) (string, error) {
buf := new(bytes.Buffer)
if err := template.Execute(buf, data); err != nil {
return "", err
}
return buf.String(), nil
}