added DeleteMarkedImages to the local datastore
This commit is contained in:
parent
2c65c5827e
commit
b52393feaa
@ -42,6 +42,7 @@ type ImageMetadataProvider interface {
|
|||||||
ImageMetadataAll() ([]ImageMetaData, error)
|
ImageMetadataAll() ([]ImageMetaData, error)
|
||||||
SaveImageMetadata(m ImageMetaData) error
|
SaveImageMetadata(m ImageMetaData) error
|
||||||
SavePiwigoIdAndUpdateUploadFlag(md5Sum string, piwigoId int) error
|
SavePiwigoIdAndUpdateUploadFlag(md5Sum string, piwigoId int) error
|
||||||
|
DeleteMarkedImages() error
|
||||||
}
|
}
|
||||||
|
|
||||||
type localDataStore struct {
|
type localDataStore struct {
|
||||||
@ -220,7 +221,7 @@ func (d *localDataStore) SaveImageMetadata(img ImageMetaData) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
logrus.Tracef("Commiting metadata for image %s", img.String())
|
logrus.Tracef("Committing metadata for image %s", img.String())
|
||||||
return tx.Commit()
|
return tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,7 +262,34 @@ func (d *localDataStore) SavePiwigoIdAndUpdateUploadFlag(md5Sum string, piwigoId
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
logrus.Tracef("Commiting piwigo id %d for file with md5sum %s", piwigoId, md5Sum)
|
logrus.Tracef("Committing piwigo id %d for file with md5sum %s", piwigoId, md5Sum)
|
||||||
|
return tx.Commit()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *localDataStore) DeleteMarkedImages() error {
|
||||||
|
logrus.Trace("Deleting marked records from database...")
|
||||||
|
db, err := d.openDatabase()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
tx, err := db.Begin()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.Exec("DELETE FROM image WHERE deleteRequired = 1")
|
||||||
|
if err != nil {
|
||||||
|
logrus.Errorf("Rolling back transaction of deleting marked images")
|
||||||
|
errTx := tx.Rollback()
|
||||||
|
if errTx != nil {
|
||||||
|
logrus.Errorf("Rollback of transaction for piwigo delete failed!")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
logrus.Tracef("Committing deleted images from database")
|
||||||
return tx.Commit()
|
return tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +32,20 @@ func (m *MockImageMetadataProvider) EXPECT() *MockImageMetadataProviderMockRecor
|
|||||||
return m.recorder
|
return m.recorder
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeleteMarkedImages mocks base method
|
||||||
|
func (m *MockImageMetadataProvider) DeleteMarkedImages() error {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "DeleteMarkedImages")
|
||||||
|
ret0, _ := ret[0].(error)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteMarkedImages indicates an expected call of DeleteMarkedImages
|
||||||
|
func (mr *MockImageMetadataProviderMockRecorder) DeleteMarkedImages() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteMarkedImages", reflect.TypeOf((*MockImageMetadataProvider)(nil).DeleteMarkedImages))
|
||||||
|
}
|
||||||
|
|
||||||
// ImageMetadata mocks base method
|
// ImageMetadata mocks base method
|
||||||
func (m *MockImageMetadataProvider) ImageMetadata(arg0 string) (ImageMetaData, error) {
|
func (m *MockImageMetadataProvider) ImageMetadata(arg0 string) (ImageMetaData, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
|
@ -253,7 +253,39 @@ func Test_update_piwigoId_by_checksum_found_no_image(t *testing.T) {
|
|||||||
|
|
||||||
imgLoad := loadMetadataShouldNotFail("update", dataStore, filePath, t)
|
imgLoad := loadMetadataShouldNotFail("update", dataStore, filePath, t)
|
||||||
EnsureMetadataAreEqual("SavePiwigoIdAndUpdateUploadFlag", img, imgLoad, t)
|
EnsureMetadataAreEqual("SavePiwigoIdAndUpdateUploadFlag", img, imgLoad, t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_deleteMarkedImages_should_remove_records(t *testing.T) {
|
||||||
|
if !dbinitOk {
|
||||||
|
t.Skip("Skipping test as TestDataStoreInitialize failed!")
|
||||||
|
}
|
||||||
|
dataStore := setupDatabase(t)
|
||||||
|
defer cleanupDatabase(t)
|
||||||
|
|
||||||
|
img1 := getExampleImageMetadata("blah/foo/bar.jpg")
|
||||||
|
|
||||||
|
img2 := getExampleImageMetadata("blah/foo/bar2.jpg")
|
||||||
|
img2.DeleteRequired = true
|
||||||
|
|
||||||
|
saveImageShouldNotFail("allimages", dataStore, img1, t)
|
||||||
|
img1.ImageId = 1
|
||||||
|
|
||||||
|
saveImageShouldNotFail("allimages", dataStore, img2, t)
|
||||||
|
img2.ImageId = 2
|
||||||
|
|
||||||
|
err := dataStore.DeleteMarkedImages()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Could not delete marked records! %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
images, err := dataStore.ImageMetadataAll()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Could not query images to upload! %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(images) != 1 {
|
||||||
|
t.Fatalf("Got incorrect number of images (%d). Expected one.", len(images))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func saveImageShouldNotFail(action string, dataStore *localDataStore, img ImageMetaData, t *testing.T) {
|
func saveImageShouldNotFail(action string, dataStore *localDataStore, img ImageMetaData, t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user