Files
zitadel/internal/notification/templates/template.go
Kenta Yamaguchi d57fa819cb chore: Replace deprecated io/ioutil functions with recommended alternatives (#9542)
# Which Problems Are Solved

- The `io/ioutil` package was deprecated in Go 1.16.  
  - Reference: https://go.dev/doc/go1.16#ioutil  

# How the Problems Are Solved

- Replaced deprecated functions with their recommended alternatives:  
  - `ioutil.ReadFile` → `os.ReadFile`  
  - `ioutil.ReadAll` → `io.ReadAll`  
  - `ioutil.NopCloser` → `io.NopCloser`
2025-03-17 13:17:14 +00:00

81 lines
1.7 KiB
Go

package templates
import (
"bytes"
"html/template"
"io"
"net/http"
)
const (
templatesPath = "/templates"
templateFileName = "template.html"
)
func GetParsedTemplate(mailhtml string, contentData interface{}) (string, error) {
template, err := ParseTemplateFile(mailhtml, contentData)
if err != nil {
return "", err
}
return ParseTemplateText(template, contentData)
}
func ParseTemplateFile(mailhtml string, data interface{}) (string, error) {
tmpl, err := template.New("tmpl").Parse(mailhtml)
if err != nil {
return "", err
}
return parseTemplate(tmpl, 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
}
func readFile(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 := io.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
}
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 := io.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
}