32 lines
701 B
Go
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
|
|
}
|