refactor(services): Move staticservice to struct and interface

This commit is contained in:
Nicolai Ort 2024-12-12 17:11:59 +01:00
parent 2a4f126377
commit b9e550d6f5
Signed by: niggl
GPG Key ID: 13AFA55AF62F269F
7 changed files with 23 additions and 12 deletions

View File

@ -5,7 +5,6 @@ import (
"slices" "slices"
"git.odit.services/lfk/document-server/models" "git.odit.services/lfk/document-server/models"
"git.odit.services/lfk/document-server/services"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )
@ -32,7 +31,7 @@ func (h *DefaultHandler) GenerateCard(c *fiber.Ctx) error {
}) })
} }
templateString, err := services.GetTemplate(cardRequest.Locale, "card") templateString, err := h.StaticService.GetTemplate(cardRequest.Locale, "card")
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{

View File

@ -5,7 +5,6 @@ import (
"slices" "slices"
"git.odit.services/lfk/document-server/models" "git.odit.services/lfk/document-server/models"
"git.odit.services/lfk/document-server/services"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )
@ -32,7 +31,7 @@ func (h *DefaultHandler) GenerateCertificate(c *fiber.Ctx) error {
}) })
} }
templateString, err := services.GetTemplate(certificateRequest.Locale, "certificate") templateString, err := h.StaticService.GetTemplate(certificateRequest.Locale, "certificate")
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{

View File

@ -5,7 +5,6 @@ import (
"slices" "slices"
"git.odit.services/lfk/document-server/models" "git.odit.services/lfk/document-server/models"
"git.odit.services/lfk/document-server/services"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )
@ -34,7 +33,7 @@ func (h *DefaultHandler) GenerateContract(c *fiber.Ctx) error {
contract.Runners = repeatRunnerArrayItems(contract.Runners, 2) contract.Runners = repeatRunnerArrayItems(contract.Runners, 2)
templateString, err := services.GetTemplate(contract.Locale, "contract") templateString, err := h.StaticService.GetTemplate(contract.Locale, "contract")
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{

View File

@ -18,4 +18,5 @@ type DefaultHandler struct {
BarcodeService services.BarcodeService BarcodeService services.BarcodeService
Templater services.Templater Templater services.Templater
Converter services.Converter Converter services.Converter
StaticService services.StaticService
} }

View File

@ -74,11 +74,14 @@ func main() {
} }
barcodeGenerator := &services.DefaultBarcodeService{} barcodeGenerator := &services.DefaultBarcodeService{}
staticService := &services.DefaultStaticService{}
handler := handlers.DefaultHandler{ handler := handlers.DefaultHandler{
Config: config, Config: config,
BarcodeService: barcodeGenerator, BarcodeService: barcodeGenerator,
StaticService: staticService,
Templater: &services.DefaultTemplater{ Templater: &services.DefaultTemplater{
BarcodeService: barcodeGenerator, BarcodeService: barcodeGenerator,
StaticService: staticService,
}, },
Converter: &services.GotenbergConverter{ Converter: &services.GotenbergConverter{
BaseUrl: config.GotenbergBaseUrl, BaseUrl: config.GotenbergBaseUrl,

View File

@ -16,6 +16,7 @@ type Templater interface {
type DefaultTemplater struct { type DefaultTemplater struct {
BarcodeService BarcodeService BarcodeService BarcodeService
StaticService StaticService
} }
func idToEan13(id string, prefix string) (string, error) { func idToEan13(id string, prefix string) (string, error) {
@ -47,15 +48,15 @@ func (t *DefaultTemplater) GenerateBarcode(code string, format string, prefix st
} }
func (t *DefaultTemplater) SelectSponsorImage(id int) (string, error) { func (t *DefaultTemplater) SelectSponsorImage(id int) (string, error) {
sponsors, err := ListFilesInStaticSubFolder("images/sponsors") sponsors, err := t.StaticService.ListFilesInStaticSubFolder("images/sponsors")
if err != nil { if err != nil {
return "", err return "", err
} }
return GetImage("sponsors/" + strings.TrimSuffix(sponsors[id%len(sponsors)], ".base64")), nil return t.StaticService.GetImage("sponsors/" + strings.TrimSuffix(sponsors[id%len(sponsors)], ".base64")), nil
} }
func (t *DefaultTemplater) LoadImage(name string) (string, error) { func (t *DefaultTemplater) LoadImage(name string) (string, error) {
return GetImage(name), nil return t.StaticService.GetImage(name), nil
} }
func (t *DefaultTemplater) FormatUnit(unit string, locale string, amount int) (string, error) { func (t *DefaultTemplater) FormatUnit(unit string, locale string, amount int) (string, error) {

View File

@ -7,7 +7,16 @@ import (
"os" "os"
) )
func GetTemplate(locale, templateName string) (string, error) { type StaticService interface {
GetTemplate(locale, templateName string) (string, error)
ListFilesInStaticSubFolder(folderName string) ([]string, error)
GetImage(imageName string) string
}
type DefaultStaticService struct {
}
func (s *DefaultStaticService) GetTemplate(locale, templateName string) (string, error) {
content, err := os.ReadFile(fmt.Sprintf("static/templates/%s/%s.html", templateName, locale)) content, err := os.ReadFile(fmt.Sprintf("static/templates/%s/%s.html", templateName, locale))
if content == nil || err != nil { if content == nil || err != nil {
log.Printf("error reading template %s with locale %s: %v", templateName, locale, err) log.Printf("error reading template %s with locale %s: %v", templateName, locale, err)
@ -16,7 +25,7 @@ func GetTemplate(locale, templateName string) (string, error) {
return string(content), nil return string(content), nil
} }
func ListFilesInStaticSubFolder(folderName string) ([]string, error) { func (s *DefaultStaticService) ListFilesInStaticSubFolder(folderName string) ([]string, error) {
files, err := os.ReadDir(fmt.Sprintf("static/%s", folderName)) files, err := os.ReadDir(fmt.Sprintf("static/%s", folderName))
if err != nil { if err != nil {
log.Printf("error reading files from folder %s: %v", folderName, err) log.Printf("error reading files from folder %s: %v", folderName, err)
@ -32,7 +41,7 @@ func ListFilesInStaticSubFolder(folderName string) ([]string, error) {
return images, nil return images, nil
} }
func GetImage(imageName string) string { func (s *DefaultStaticService) GetImage(imageName string) string {
content, err := os.ReadFile("static/images/" + imageName + ".base64") content, err := os.ReadFile("static/images/" + imageName + ".base64")
if content == nil || err != nil { if content == nil || err != nil {
log.Printf("error reading image %s: %v", imageName, err) log.Printf("error reading image %s: %v", imageName, err)