refactor(pdf): Share templater
This commit is contained in:
		@@ -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(),
 | 
			
		||||
 
 | 
			
		||||
@@ -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(),
 | 
			
		||||
 
 | 
			
		||||
@@ -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(),
 | 
			
		||||
 
 | 
			
		||||
@@ -16,4 +16,5 @@ type Handler interface {
 | 
			
		||||
type DefaultHandler struct {
 | 
			
		||||
	Config         *models.Config
 | 
			
		||||
	BarcodeService services.BarcodeService
 | 
			
		||||
	Templater      services.Templater
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user