Files
RenewCMS/internal/infrastructure/useCases/variantSettings.go
T
2026-10-08 02:33:32 +02:00

32 lines
701 B
Go

package useCases
import (
"RenewCMS/internal/domain/image"
"slices"
)
type VariantDefinitionCommand struct {
Width *int
Height *int
Fit string
Format string
Quality *int
}
func (c VariantDefinitionCommand) settings(encodable []image.VariantFormat) (image.VariantSettings, error) {
settings, err := image.VariantSettings{
Width: c.Width,
Height: c.Height,
Fit: image.VariantFit(c.Fit),
Format: image.VariantFormat(c.Format),
Quality: c.Quality,
}.Normalized()
if err != nil {
return image.VariantSettings{}, err
}
if !slices.Contains(encodable, settings.Format) {
return image.VariantSettings{}, image.ErrVariantFormatUnavailable
}
return settings, nil
}