feat(services): Logging
All checks were successful
ci/woodpecker/tag/release Pipeline was successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
2024-12-17 16:23:52 +01:00
parent 4d57cf827d
commit 11ea0858bb
5 changed files with 72 additions and 13 deletions

View File

@@ -3,8 +3,9 @@ package services
import (
_ "embed"
"fmt"
"log"
"os"
"go.uber.org/zap"
)
type StaticService interface {
@@ -14,47 +15,55 @@ type StaticService interface {
}
type DefaultStaticService struct {
Cache map[string]string
Cache map[string]string
Logger *zap.SugaredLogger
}
func (s *DefaultStaticService) GetTemplate(locale, templateName string) (string, error) {
logger := s.Logger.Named("GetTemplate").With("locale", locale, "template_name", templateName)
if s.Cache[locale+templateName] != "" {
log.Printf("returning cached template %s with locale %s", templateName, locale)
logger.Debugw("Template found in cache", "key", locale+templateName)
return s.Cache[locale+templateName], nil
}
content, err := os.ReadFile(fmt.Sprintf("static/templates/%s/%s.html", templateName, locale))
if content == nil || err != nil {
log.Printf("error reading template %s with locale %s: %v", templateName, locale, err)
logger.Errorw("Failed to read template", "error", err)
return "", err
}
s.Cache[locale+templateName] = string(content)
logger.Debugw("Saved template to cache", "key", locale+templateName)
return string(content), nil
}
func (s *DefaultStaticService) ListFilesInStaticSubFolder(folderName string) ([]string, error) {
logger := s.Logger.Named("ListFilesInStaticSubFolder").With("folder_name", folderName)
files, err := os.ReadDir(fmt.Sprintf("static/%s", folderName))
if err != nil {
log.Printf("error reading files from folder %s: %v", folderName, err)
logger.Errorw("Failed to list files", "error", err)
return nil, err
}
var images []string
for _, file := range files {
if file.IsDir() {
continue
logger.Debugw("Skipping directory", "file", file.Name())
}
images = append(images, file.Name())
}
logger.Debugw("Listed files", "files", images)
return images, nil
}
func (s *DefaultStaticService) GetImage(imageName string) string {
logger := s.Logger.Named("GetImage").With("image_name", imageName)
content, err := os.ReadFile("static/images/" + imageName + ".base64")
if content == nil || err != nil {
log.Printf("error reading image %s: %v", imageName, err)
logger.Errorw("Failed to read image", "error", err)
return ImageErrorBase64
}
return string(content)