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

33 lines
899 B
Go

package useCases
import (
"RenewCMS/internal/domain/image"
"errors"
)
type mediaRemover struct {
imageRepository image.Repository
storage image.Storage
generated variantCache
}
func newMediaRemover(imageRepository image.Repository, storage image.Storage, variantFiles image.VariantFileRepository) mediaRemover {
return mediaRemover{imageRepository, storage, variantCache{variantFiles, storage}}
}
func (r mediaRemover) remove(img image.Image) error {
storedName := image.StoredName(img.Path)
if err := r.generated.purgeSource(storedName); err != nil {
return err
}
if err := r.storage.Delete(storedName); err != nil {
return err
}
return r.imageRepository.Delete(img.ID)
}
func (r mediaRemover) discardFiles(img image.Image) error {
storedName := image.StoredName(img.Path)
return errors.Join(r.generated.purgeSource(storedName), r.storage.Delete(storedName))
}