From 1296c9e399e50ee4a72167baa61b82777c7b4056 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 12 Dec 2024 16:52:06 +0100 Subject: [PATCH] refactor(pdf): Share templater --- handlers/card.go | 6 +++--- handlers/certificate.go | 6 +++--- handlers/contract.go | 6 +++--- handlers/handlers.go | 1 + main.go | 3 +++ services/templater.go | 4 ++-- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/handlers/card.go b/handlers/card.go index 69679d1..6ea2d80 100644 --- a/handlers/card.go +++ b/handlers/card.go @@ -10,6 +10,7 @@ import ( ) // GenerateCard godoc +// // @Summary Generate runner cards // @Description Generate cards based on the provided data // @Tags pdfs @@ -31,7 +32,6 @@ func (h *DefaultHandler) GenerateCard(c *fiber.Ctx) error { }) } - generator := services.DefaultTemplater{} templateString, err := services.GetTemplate(cardRequest.Locale, "card") if err != nil { log.Println(err) @@ -39,7 +39,7 @@ func (h *DefaultHandler) GenerateCard(c *fiber.Ctx) error { "error": "Template not found", }) } - template, err := generator.StringToTemplate(templateString) + template, err := h.Templater.StringToTemplate(templateString) if err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "error": err.Error(), @@ -54,7 +54,7 @@ func (h *DefaultHandler) GenerateCard(c *fiber.Ctx) error { BarcodePrefix: h.Config.CardBarcodePrefix, } - result, err := generator.Execute(template, genConfig) + result, err := h.Templater.Execute(template, genConfig) if err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "error": err.Error(), diff --git a/handlers/certificate.go b/handlers/certificate.go index 0b451b8..0715e51 100644 --- a/handlers/certificate.go +++ b/handlers/certificate.go @@ -10,6 +10,7 @@ import ( ) // GenerateCertificate godoc +// // @Summary Generate runner certificates // @Description Generate certificates based on the provided data // @Tags pdfs @@ -31,7 +32,6 @@ func (h *DefaultHandler) GenerateCertificate(c *fiber.Ctx) error { }) } - generator := services.DefaultTemplater{} templateString, err := services.GetTemplate(certificateRequest.Locale, "certificate") if err != nil { log.Println(err) @@ -39,7 +39,7 @@ func (h *DefaultHandler) GenerateCertificate(c *fiber.Ctx) error { "error": "Template not found", }) } - template, err := generator.StringToTemplate(templateString) + template, err := h.Templater.StringToTemplate(templateString) if err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "error": err.Error(), @@ -54,7 +54,7 @@ func (h *DefaultHandler) GenerateCertificate(c *fiber.Ctx) error { Locale: certificateRequest.Locale, } - result, err := generator.Execute(template, genConfig) + result, err := h.Templater.Execute(template, genConfig) if err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "error": err.Error(), diff --git a/handlers/contract.go b/handlers/contract.go index 30f5937..da4b625 100644 --- a/handlers/contract.go +++ b/handlers/contract.go @@ -10,6 +10,7 @@ import ( ) // GenerateContract godoc +// // @Summary Generate a contract // @Description Generate a contract based on the provided data // @Tags pdfs @@ -33,7 +34,6 @@ func (h *DefaultHandler) GenerateContract(c *fiber.Ctx) error { contract.Runners = repeatRunnerArrayItems(contract.Runners, 2) - generator := services.DefaultTemplater{} templateString, err := services.GetTemplate(contract.Locale, "contract") if err != nil { log.Println(err) @@ -41,7 +41,7 @@ func (h *DefaultHandler) GenerateContract(c *fiber.Ctx) error { "error": "Template not found", }) } - template, err := generator.StringToTemplate(templateString) + template, err := h.Templater.StringToTemplate(templateString) if err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "error": err.Error(), @@ -58,7 +58,7 @@ func (h *DefaultHandler) GenerateContract(c *fiber.Ctx) error { BarcodePrefix: h.Config.SponsoringBarcodePrefix, } - result, err := generator.Execute(template, genConfig) + result, err := h.Templater.Execute(template, genConfig) if err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "error": err.Error(), diff --git a/handlers/handlers.go b/handlers/handlers.go index c36dc9b..96607af 100644 --- a/handlers/handlers.go +++ b/handlers/handlers.go @@ -16,4 +16,5 @@ type Handler interface { type DefaultHandler struct { Config *models.Config BarcodeService services.BarcodeService + Templater services.Templater } diff --git a/main.go b/main.go index 635cf07..428a5d1 100644 --- a/main.go +++ b/main.go @@ -77,6 +77,9 @@ func main() { handler := handlers.DefaultHandler{ Config: config, BarcodeService: barcodeGenerator, + Templater: &services.DefaultTemplater{ + BarcodeService: barcodeGenerator, + }, } // Create a new Fiber instance diff --git a/services/templater.go b/services/templater.go index 293eb40..141b1ab 100644 --- a/services/templater.go +++ b/services/templater.go @@ -15,6 +15,7 @@ type Templater interface { } type DefaultTemplater struct { + BarcodeService BarcodeService } func idToEan13(id string, prefix string) (string, error) { @@ -31,7 +32,6 @@ func idToEan13(id string, prefix string) (string, error) { } func (t *DefaultTemplater) GenerateBarcode(code string, format string, prefix string) (string, error) { - gen := &DefaultBarcodeService{} var err error if format == "ean13" { @@ -41,7 +41,7 @@ func (t *DefaultTemplater) GenerateBarcode(code string, format string, prefix st } } - buf, err := gen.GenerateBarcode(format, code, 1000, 500) + buf, err := t.BarcodeService.GenerateBarcode(format, code, 1000, 500) return base64.StdEncoding.EncodeToString(buf.Bytes()), err }