added ImageMetadataAll
This commit is contained in:
parent
0d9579534d
commit
c4e33598e9
@ -39,6 +39,7 @@ type ImageMetadataProvider interface {
|
|||||||
ImageMetadata(fullImagePath string) (ImageMetaData, error)
|
ImageMetadata(fullImagePath string) (ImageMetaData, error)
|
||||||
ImageMetadataToUpload() ([]ImageMetaData, error)
|
ImageMetadataToUpload() ([]ImageMetaData, error)
|
||||||
ImageMetadataToDelete() ([]ImageMetaData, error)
|
ImageMetadataToDelete() ([]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
|
||||||
}
|
}
|
||||||
@ -99,6 +100,35 @@ func (d *localDataStore) ImageMetadata(fullImagePath string) (ImageMetaData, err
|
|||||||
return img, err
|
return img, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *localDataStore) ImageMetadataAll() ([]ImageMetaData, error) {
|
||||||
|
logrus.Tracef("Query all image metadata that represent files on the disk")
|
||||||
|
|
||||||
|
db, err := d.openDatabase()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
rows, err := db.Query("SELECT imageId, piwigoId, fullImagePath, fileName, md5sum, lastChanged, categoryPath, categoryId, uploadRequired, deleteRequired FROM image")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
images := []ImageMetaData{}
|
||||||
|
for rows.Next() {
|
||||||
|
img := &ImageMetaData{}
|
||||||
|
err = ReadImageMetadataFromRow(rows, img)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
images = append(images, *img)
|
||||||
|
}
|
||||||
|
err = rows.Err()
|
||||||
|
|
||||||
|
return images, err
|
||||||
|
}
|
||||||
|
|
||||||
func (d *localDataStore) ImageMetadataToDelete() ([]ImageMetaData, error) {
|
func (d *localDataStore) ImageMetadataToDelete() ([]ImageMetaData, error) {
|
||||||
logrus.Tracef("Query all image metadata that represent files queued to delete")
|
logrus.Tracef("Query all image metadata that represent files queued to delete")
|
||||||
|
|
||||||
|
@ -47,6 +47,21 @@ func (mr *MockImageMetadataProviderMockRecorder) ImageMetadata(arg0 interface{})
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImageMetadata", reflect.TypeOf((*MockImageMetadataProvider)(nil).ImageMetadata), arg0)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImageMetadata", reflect.TypeOf((*MockImageMetadataProvider)(nil).ImageMetadata), arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ImageMetadataAll mocks base method
|
||||||
|
func (m *MockImageMetadataProvider) ImageMetadataAll() ([]ImageMetaData, error) {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "ImageMetadataAll")
|
||||||
|
ret0, _ := ret[0].([]ImageMetaData)
|
||||||
|
ret1, _ := ret[1].(error)
|
||||||
|
return ret0, ret1
|
||||||
|
}
|
||||||
|
|
||||||
|
// ImageMetadataAll indicates an expected call of ImageMetadataAll
|
||||||
|
func (mr *MockImageMetadataProviderMockRecorder) ImageMetadataAll() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImageMetadataAll", reflect.TypeOf((*MockImageMetadataProvider)(nil).ImageMetadataAll))
|
||||||
|
}
|
||||||
|
|
||||||
// ImageMetadataToDelete mocks base method
|
// ImageMetadataToDelete mocks base method
|
||||||
func (m *MockImageMetadataProvider) ImageMetadataToDelete() ([]ImageMetaData, error) {
|
func (m *MockImageMetadataProvider) ImageMetadataToDelete() ([]ImageMetaData, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
|
@ -44,6 +44,37 @@ func Test_save_and_load_metadata(t *testing.T) {
|
|||||||
EnsureMetadataAreEqual("update", img, imgLoad, t)
|
EnsureMetadataAreEqual("update", img, imgLoad, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test_save_and_query_for_all_entries(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
|
||||||
|
|
||||||
|
images, err := dataStore.ImageMetadataAll()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Could not query images to upload! %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(images) != 2 {
|
||||||
|
t.Fatalf("Got incorrect number of images (%d). Expected two.", len(images))
|
||||||
|
}
|
||||||
|
|
||||||
|
imgLoad := images[0]
|
||||||
|
EnsureMetadataAreEqual("allimages", img1, imgLoad, t)
|
||||||
|
}
|
||||||
|
|
||||||
func Test_save_and_query_for_upload_records(t *testing.T) {
|
func Test_save_and_query_for_upload_records(t *testing.T) {
|
||||||
if !dbinitOk {
|
if !dbinitOk {
|
||||||
t.Skip("Skipping test as TestDataStoreInitialize failed!")
|
t.Skip("Skipping test as TestDataStoreInitialize failed!")
|
||||||
|
@ -429,6 +429,10 @@ func (s *testStore) ImageMetadata(fullImagePath string) (ImageMetaData, error) {
|
|||||||
return metadata, nil
|
return metadata, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *testStore) ImageMetadataAll() ([]ImageMetaData, error) {
|
||||||
|
return []ImageMetaData{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *testStore) SaveImageMetadata(m ImageMetaData) error {
|
func (s *testStore) SaveImageMetadata(m ImageMetaData) error {
|
||||||
s.savedMetadata[m.FullImagePath] = m
|
s.savedMetadata[m.FullImagePath] = m
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user