PiwigoDirectoryUploader/internal/pkg/images/delete.go

49 lines
1.3 KiB
Go
Raw Normal View History

/*
* Copyright (C) 2019 Philipp Haefelfinger (http://www.haefelfinger.ch/). All Rights Reserved.
* This application is licensed under GPLv2. See the LICENSE file in the root directory of the project.
*/
package images
import (
"git.haefelfinger.net/piwigo/PiwigoDirectoryUploader/internal/pkg/datastore"
"git.haefelfinger.net/piwigo/PiwigoDirectoryUploader/internal/pkg/piwigo"
"github.com/sirupsen/logrus"
)
func DeleteImages(piwigoCtx piwigo.PiwigoImageApi, metadataProvider datastore.ImageMetadataProvider) error {
logrus.Debug("Starting deleteImages")
defer logrus.Debug("Finished deleteImages successfully")
images, err := metadataProvider.ImageMetadataToDelete()
if err != nil {
return err
}
if len(images) == 0 {
logrus.Info("There are not images scheduled for deletion.")
return nil
}
logrus.Infof("Deleting %d images from piwigo", len(images))
var piwigoIds []int = nil
for _, img := range images {
if img.PiwigoId > 0 {
logrus.Tracef("Adding %d to deletable list", img.PiwigoId)
piwigoIds = append(piwigoIds, img.PiwigoId)
}
}
if len(piwigoIds) > 0 {
err = piwigoCtx.DeleteImages(piwigoIds)
if err != nil {
return err
}
} else {
logrus.Info("Only local images found to delete. No call to piwigo is made.")
}
return metadataProvider.DeleteMarkedImages()
}