25 lines
692 B
Go
25 lines
692 B
Go
package useCases
|
|
|
|
import "RenewCMS/internal/domain/image"
|
|
|
|
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)
|
|
}
|