feat: e-mail templates (#1158)

* View definition added

* Get templates and texts from the database.

* Fill in texts in templates

* Fill in texts in templates

* Client API added

* Weekly backup

* Weekly backup

* Daily backup

* Weekly backup

* Tests added

* Corrections from merge branch

* Fixes from pull request review
This commit is contained in:
Michael Waeger
2021-01-18 14:17:22 +01:00
committed by GitHub
parent e7540e5e05
commit f2a32871a7
88 changed files with 5325 additions and 155 deletions

View File

@@ -12,23 +12,21 @@ const (
templateFileName = "template.html"
)
func GetParsedTemplate(dir http.FileSystem, contentData interface{}) (string, error) {
template, err := ParseTemplateFile(dir, "", contentData)
func GetParsedTemplate(mailhtml string, contentData interface{}) (string, error) {
template, err := ParseTemplateFile(mailhtml, contentData)
if err != nil {
return "", err
}
return ParseTemplateText(template, contentData)
}
func ParseTemplateFile(dir http.FileSystem, fileName string, data interface{}) (string, error) {
if fileName == "" {
fileName = templateFileName
}
template, err := readFile(dir, fileName)
func ParseTemplateFile(mailhtml string, data interface{}) (string, error) {
tmpl, err := template.New("tmpl").Parse(mailhtml)
if err != nil {
return "", err
}
return parseTemplate(template, data)
return parseTemplate(tmpl, data)
}
func ParseTemplateText(text string, data interface{}) (string, error) {
@@ -63,3 +61,20 @@ func readFile(dir http.FileSystem, fileName string) (*template.Template, error)
}
return tmpl, nil
}
func readFileFromDatabase(dir http.FileSystem, fileName string) (*template.Template, error) {
f, err := dir.Open(templatesPath + "/" + fileName)
if err != nil {
return nil, err
}
defer f.Close()
content, err := ioutil.ReadAll(f)
if err != nil {
return nil, err
}
tmpl, err := template.New(fileName).Parse(string(content))
if err != nil {
return nil, err
}
return tmpl, nil
}