From d8fb9ea2fd8162ee3e720373ca1b77895e65d8af Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 3 Dec 2024 18:55:27 +0100 Subject: [PATCH] refactor(services): Barcodes always accept strings --- services/templater.go | 21 +++++++++------------ templates/contract/de.html | 2 +- templates/contract/en.html | 2 +- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/services/templater.go b/services/templater.go index 7036615..b17ed00 100644 --- a/services/templater.go +++ b/services/templater.go @@ -6,7 +6,6 @@ import ( "errors" "html/template" "image/png" - "strconv" "github.com/boombuler/barcode" "github.com/boombuler/barcode/code128" @@ -22,22 +21,20 @@ type Templater interface { type DefaultTemplater struct { } -func idToEan13(id int, prefix string) (string, error) { - idStr := strconv.Itoa(id) - - if len(idStr) > 12 { +func idToEan13(id string, prefix string) (string, error) { + if len(id) > 12 { return "", errors.New("id too long") } - for len(idStr) < 11 { - idStr = "0" + idStr + for len(id) < 11 { + id = "0" + id } - idStr = prefix + idStr + id = prefix + id - return idStr, nil + return id, nil } -func (t *DefaultTemplater) GenerateBarcode(code int, format string, prefix string) (string, error) { +func (t *DefaultTemplater) GenerateBarcode(code string, format string, prefix string) (string, error) { var generatedCode barcode.Barcode var err error @@ -53,13 +50,13 @@ func (t *DefaultTemplater) GenerateBarcode(code int, format string, prefix strin } break case "code128": - generatedCode, err = code128.Encode(prefix + strconv.Itoa(code)) + generatedCode, err = code128.Encode(prefix + code) if err != nil { return "", err } break case "qr": - generatedCode, err = qr.Encode(prefix+strconv.Itoa(code), qr.M, qr.Numeric) + generatedCode, err = qr.Encode(prefix+code, qr.M, qr.AlphaNumeric) if err != nil { return "", err } diff --git a/templates/contract/de.html b/templates/contract/de.html index f8dc751..07d3878 100644 --- a/templates/contract/de.html +++ b/templates/contract/de.html @@ -56,7 +56,7 @@
+ src="data:image/png;base64,{{ barcode (printf "%d" .ID) $.BarcodeFormat $.BarcodePrefix }}" />
diff --git a/templates/contract/en.html b/templates/contract/en.html index 4de8397..0c4c59f 100644 --- a/templates/contract/en.html +++ b/templates/contract/en.html @@ -55,7 +55,7 @@
+ src="data:image/png;base64,{{ barcode (printf "%d" .ID) $.BarcodeFormat $.BarcodePrefix }}"/>