refactor(pdf): Share templater

This commit is contained in:
Nicolai Ort 2024-12-12 16:52:06 +01:00
parent 0f2452eca0
commit 1296c9e399
Signed by: niggl
GPG Key ID: 13AFA55AF62F269F
6 changed files with 15 additions and 11 deletions

View File

@ -10,6 +10,7 @@ import (
) )
// GenerateCard godoc // GenerateCard godoc
//
// @Summary Generate runner cards // @Summary Generate runner cards
// @Description Generate cards based on the provided data // @Description Generate cards based on the provided data
// @Tags pdfs // @Tags pdfs
@ -31,7 +32,6 @@ func (h *DefaultHandler) GenerateCard(c *fiber.Ctx) error {
}) })
} }
generator := services.DefaultTemplater{}
templateString, err := services.GetTemplate(cardRequest.Locale, "card") templateString, err := services.GetTemplate(cardRequest.Locale, "card")
if err != nil { if err != nil {
log.Println(err) log.Println(err)
@ -39,7 +39,7 @@ func (h *DefaultHandler) GenerateCard(c *fiber.Ctx) error {
"error": "Template not found", "error": "Template not found",
}) })
} }
template, err := generator.StringToTemplate(templateString) template, err := h.Templater.StringToTemplate(templateString)
if err != nil { if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": err.Error(), "error": err.Error(),
@ -54,7 +54,7 @@ func (h *DefaultHandler) GenerateCard(c *fiber.Ctx) error {
BarcodePrefix: h.Config.CardBarcodePrefix, BarcodePrefix: h.Config.CardBarcodePrefix,
} }
result, err := generator.Execute(template, genConfig) result, err := h.Templater.Execute(template, genConfig)
if err != nil { if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": err.Error(), "error": err.Error(),

View File

@ -10,6 +10,7 @@ import (
) )
// GenerateCertificate godoc // GenerateCertificate godoc
//
// @Summary Generate runner certificates // @Summary Generate runner certificates
// @Description Generate certificates based on the provided data // @Description Generate certificates based on the provided data
// @Tags pdfs // @Tags pdfs
@ -31,7 +32,6 @@ func (h *DefaultHandler) GenerateCertificate(c *fiber.Ctx) error {
}) })
} }
generator := services.DefaultTemplater{}
templateString, err := services.GetTemplate(certificateRequest.Locale, "certificate") templateString, err := services.GetTemplate(certificateRequest.Locale, "certificate")
if err != nil { if err != nil {
log.Println(err) log.Println(err)
@ -39,7 +39,7 @@ func (h *DefaultHandler) GenerateCertificate(c *fiber.Ctx) error {
"error": "Template not found", "error": "Template not found",
}) })
} }
template, err := generator.StringToTemplate(templateString) template, err := h.Templater.StringToTemplate(templateString)
if err != nil { if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": err.Error(), "error": err.Error(),
@ -54,7 +54,7 @@ func (h *DefaultHandler) GenerateCertificate(c *fiber.Ctx) error {
Locale: certificateRequest.Locale, Locale: certificateRequest.Locale,
} }
result, err := generator.Execute(template, genConfig) result, err := h.Templater.Execute(template, genConfig)
if err != nil { if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": err.Error(), "error": err.Error(),

View File

@ -10,6 +10,7 @@ import (
) )
// GenerateContract godoc // GenerateContract godoc
//
// @Summary Generate a contract // @Summary Generate a contract
// @Description Generate a contract based on the provided data // @Description Generate a contract based on the provided data
// @Tags pdfs // @Tags pdfs
@ -33,7 +34,6 @@ func (h *DefaultHandler) GenerateContract(c *fiber.Ctx) error {
contract.Runners = repeatRunnerArrayItems(contract.Runners, 2) contract.Runners = repeatRunnerArrayItems(contract.Runners, 2)
generator := services.DefaultTemplater{}
templateString, err := services.GetTemplate(contract.Locale, "contract") templateString, err := services.GetTemplate(contract.Locale, "contract")
if err != nil { if err != nil {
log.Println(err) log.Println(err)
@ -41,7 +41,7 @@ func (h *DefaultHandler) GenerateContract(c *fiber.Ctx) error {
"error": "Template not found", "error": "Template not found",
}) })
} }
template, err := generator.StringToTemplate(templateString) template, err := h.Templater.StringToTemplate(templateString)
if err != nil { if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": err.Error(), "error": err.Error(),
@ -58,7 +58,7 @@ func (h *DefaultHandler) GenerateContract(c *fiber.Ctx) error {
BarcodePrefix: h.Config.SponsoringBarcodePrefix, BarcodePrefix: h.Config.SponsoringBarcodePrefix,
} }
result, err := generator.Execute(template, genConfig) result, err := h.Templater.Execute(template, genConfig)
if err != nil { if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": err.Error(), "error": err.Error(),

View File

@ -16,4 +16,5 @@ type Handler interface {
type DefaultHandler struct { type DefaultHandler struct {
Config *models.Config Config *models.Config
BarcodeService services.BarcodeService BarcodeService services.BarcodeService
Templater services.Templater
} }

View File

@ -77,6 +77,9 @@ func main() {
handler := handlers.DefaultHandler{ handler := handlers.DefaultHandler{
Config: config, Config: config,
BarcodeService: barcodeGenerator, BarcodeService: barcodeGenerator,
Templater: &services.DefaultTemplater{
BarcodeService: barcodeGenerator,
},
} }
// Create a new Fiber instance // Create a new Fiber instance

View File

@ -15,6 +15,7 @@ type Templater interface {
} }
type DefaultTemplater struct { type DefaultTemplater struct {
BarcodeService BarcodeService
} }
func idToEan13(id string, prefix string) (string, error) { 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) { func (t *DefaultTemplater) GenerateBarcode(code string, format string, prefix string) (string, error) {
gen := &DefaultBarcodeService{}
var err error var err error
if format == "ean13" { 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 return base64.StdEncoding.EncodeToString(buf.Bytes()), err
} }