refactor(templates): Dynamic template loading
This commit is contained in:
parent
f9f30e96c7
commit
c5dc4f7e79
@ -6,7 +6,6 @@ import (
|
||||
|
||||
"git.odit.services/lfk/document-server/models"
|
||||
"git.odit.services/lfk/document-server/services"
|
||||
"git.odit.services/lfk/document-server/templates"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
@ -32,7 +31,7 @@ func GenerateCard(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
generator := services.DefaultTemplater{}
|
||||
templateString, err := templates.GetTemplate(cardRequest.Locale, "card")
|
||||
templateString, err := services.GetTemplate(cardRequest.Locale, "card")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
|
||||
"git.odit.services/lfk/document-server/models"
|
||||
"git.odit.services/lfk/document-server/services"
|
||||
"git.odit.services/lfk/document-server/templates"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
@ -32,7 +31,7 @@ func GenerateCertificate(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
generator := services.DefaultTemplater{}
|
||||
templateString, err := templates.GetTemplate(certificateRequest.Locale, "certificate")
|
||||
templateString, err := services.GetTemplate(certificateRequest.Locale, "certificate")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
|
||||
"git.odit.services/lfk/document-server/models"
|
||||
"git.odit.services/lfk/document-server/services"
|
||||
"git.odit.services/lfk/document-server/templates"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
@ -34,7 +33,7 @@ func GenerateContract(c *fiber.Ctx) error {
|
||||
contract.Runners = repeatRunnerArrayItems(contract.Runners, 2)
|
||||
|
||||
generator := services.DefaultTemplater{}
|
||||
templateString, err := templates.GetTemplate(contract.Locale, "contract")
|
||||
templateString, err := services.GetTemplate(contract.Locale, "contract")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
@ -48,13 +47,15 @@ func GenerateContract(c *fiber.Ctx) error {
|
||||
})
|
||||
}
|
||||
|
||||
sponsoringHeader := services.GetImage("sponsoringheader")
|
||||
|
||||
genConfig := &models.ContractTemplateOptions{
|
||||
Runners: contract.Runners,
|
||||
CurrencySymbol: "€",
|
||||
Disclaimer: "This is a disclaimer",
|
||||
ReceiptMinimumAmount: 10,
|
||||
EventName: "Event name",
|
||||
SponsoringHeader: templates.ImageSponsoringHeaderBase64,
|
||||
SponsoringHeader: sponsoringHeader,
|
||||
BarcodeFormat: "ean13",
|
||||
BarcodePrefix: "1",
|
||||
}
|
||||
|
@ -9,7 +9,6 @@ import (
|
||||
"image/png"
|
||||
"strings"
|
||||
|
||||
"git.odit.services/lfk/document-server/templates"
|
||||
"github.com/boombuler/barcode"
|
||||
"github.com/boombuler/barcode/code128"
|
||||
"github.com/boombuler/barcode/ean"
|
||||
@ -88,7 +87,7 @@ func (t *DefaultTemplater) SelectSponsorImage(id int) (string, error) {
|
||||
"odit",
|
||||
"sparkasse",
|
||||
}
|
||||
return templates.GetImage(sponsors[id%len(sponsors)]), nil
|
||||
return GetImage(sponsors[id%len(sponsors)]), nil
|
||||
}
|
||||
|
||||
func FormatUnit(unit string, locale string, amount int) (string, error) {
|
||||
|
28
services/templates.go
Normal file
28
services/templates.go
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 19 KiB |
Binary file not shown.
Before Width: | Height: | Size: 225 KiB |
@ -1,68 +0,0 @@
|
||||
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)
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user