From 692f378eab3fe0fad802609e102da70872b85d7c Mon Sep 17 00:00:00 2001
From: Nicolai Ort
Date: Mon, 9 Dec 2024 16:59:39 +0100
Subject: [PATCH] feat(templater): Implement unit formats
---
services/templater.go | 13 +++++++++++++
templates/certificate/de.html | 10 +++++-----
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/services/templater.go b/services/templater.go
index a51dabe..8feefec 100644
--- a/services/templater.go
+++ b/services/templater.go
@@ -4,6 +4,7 @@ import (
"bytes"
"encoding/base64"
"errors"
+ "fmt"
"html/template"
"image/png"
@@ -89,10 +90,22 @@ func (t *DefaultTemplater) SelectSponsorImage(id int) (string, error) {
return templates.GetImage(sponsors[id%len(sponsors)]), nil
}
+func FormatUnit(unit string, amount int) (string, error) {
+ switch unit {
+ case "kilometer":
+ return fmt.Sprintf("%.3f", float64(amount)/1000), nil
+ case "euro":
+ return fmt.Sprintf("%.2f", float64(amount)/100), nil
+ default:
+ return "", errors.New("unknown unit")
+ }
+}
+
func (t *DefaultTemplater) StringToTemplate(templateString string) (*template.Template, error) {
return template.New("template").Funcs(template.FuncMap{
"barcode": t.GenerateBarcode,
"sponsorLogo": t.SelectSponsorImage,
+ "formatUnit": FormatUnit,
}).Parse(templateString)
}
diff --git a/templates/certificate/de.html b/templates/certificate/de.html
index 6a59f80..361b1a0 100644
--- a/templates/certificate/de.html
+++ b/templates/certificate/de.html
@@ -56,7 +56,7 @@
{{ .MiddleName }} {{ .LastName }}
hat beim {{ $.EventName }}
- {{unitFormat "kilometer" .Distance}}km
+ {{formatUnit "kilometer" .Distance}}km
für den guten Zweck zurückgelegt