Files
RenewCMS/internal/infrastructure/useCases/GenerateVariantsOnUpload.go
T

38 lines
1.0 KiB
Go

package useCases
import (
"RenewCMS/internal/domain/image"
"context"
"log"
)
type GenerateVariantsOnUploadUseCase struct {
variants image.VariantRepository
generator *ServeVariantUseCase
logger *log.Logger
}
func NewGenerateVariantsOnUploadUseCase(variants image.VariantRepository, generator *ServeVariantUseCase, logger *log.Logger) *GenerateVariantsOnUploadUseCase {
return &GenerateVariantsOnUploadUseCase{variants, generator, logger}
}
func (u *GenerateVariantsOnUploadUseCase) Generate(ctx context.Context, img image.Image) {
if isVectorSource(img) {
return
}
enabled, err := enabledVariants(u.variants)
if err != nil {
u.logger.Printf("listing variants to generate on upload failed: image=%d: %v", img.ID, err)
return
}
storedName := image.StoredName(img.Path)
for _, variant := range enabled {
if !variant.GenerateOnUpload {
continue
}
if _, err := u.generator.Generate(ctx, variant, storedName); err != nil {
u.logger.Printf("generating variant on upload failed: variant=%s image=%d: %v", variant.Name, img.ID, err)
}
}
}