document-server/templates/templates.go

69 lines
1.4 KiB
Go

package templates
import (
_ "embed"
"fmt"
"log"
"os"
)
//go:embed card/en.html
var CardTemplateEn string
//go:embed card/de.html
var CardTemplateDe string
//go:embed contract/en.html
var ContractTemplateEn string
//go:embed contract/de.html
var ContractTemplateDe string
//go:embed certificate/de.html
var CertificateTemplateDe string
//go:embed certificate/en.html
var CertificateTemplateEn string
//go:embed images/sponsoringheader.base64
var ImageSponsoringHeaderBase64 string
//go:embed images/error.base64
var ImageErrorBase64 string
func GetTemplate(locale, templateName string) (string, error) {
switch templateName {
case "card":
switch locale {
case "en":
return CardTemplateEn, nil
case "de":
return CardTemplateDe, nil
}
case "contract":
switch locale {
case "en":
return ContractTemplateEn, nil
case "de":
return ContractTemplateDe, nil
}
case "certificate":
switch locale {
case "en":
return CertificateTemplateEn, nil
case "de":
return CertificateTemplateDe, nil
}
}
return "", fmt.Errorf("template not found with name %s and locale %s", templateName, locale)
}
func GetImage(imageName string) string {
content, err := os.ReadFile("static/images/" + imageName + ".base64")
if content == nil || err != nil {
log.Printf("error reading image %s: %v", imageName, err)
return ImageErrorBase64
}
return string(content)
}