Added SavePiwigoIdAndUpdateUploadFlag
This commit is contained in:
parent
58b5b79b34
commit
7bf14e5ca3
@ -31,6 +31,7 @@ type ImageMetadataProvider interface {
|
|||||||
ImageMetadata(relativePath string) (ImageMetaData, error)
|
ImageMetadata(relativePath string) (ImageMetaData, error)
|
||||||
ImageMetadataToUpload() ([]*ImageMetaData, error)
|
ImageMetadataToUpload() ([]*ImageMetaData, error)
|
||||||
SaveImageMetadata(m ImageMetaData) error
|
SaveImageMetadata(m ImageMetaData) error
|
||||||
|
SavePiwigoIdAndUpdateUploadFlag(md5Sum string, piwigoId int) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type localDataStore struct {
|
type localDataStore struct {
|
||||||
@ -155,6 +156,42 @@ func (d *localDataStore) SaveImageMetadata(img ImageMetaData) error {
|
|||||||
return tx.Commit()
|
return tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *localDataStore) SavePiwigoIdAndUpdateUploadFlag(md5Sum string, piwigoId int) error {
|
||||||
|
logrus.Tracef("Saving piwigo id %d for file with md5sum %s", piwigoId, md5Sum)
|
||||||
|
db, err := d.openDatabase()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
tx, err := db.Begin()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
stmt, err := tx.Prepare("UPDATE image SET piwigoId = ? WHERE md5sum = ?")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = stmt.Exec(piwigoId, md5Sum)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
logrus.Errorf("Rolling back transaction for piwigo id update of file %s", md5Sum)
|
||||||
|
errTx := tx.Rollback()
|
||||||
|
if errTx != nil {
|
||||||
|
logrus.Errorf("Rollback of transaction for piwigo id update of file %s failed!", md5Sum)
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
logrus.Tracef("Commiting piwigo id %d for file with md5sum %s", piwigoId, md5Sum)
|
||||||
|
return tx.Commit()
|
||||||
|
}
|
||||||
|
|
||||||
func (d *localDataStore) insertImageMetaData(tx *sql.Tx, data ImageMetaData) error {
|
func (d *localDataStore) insertImageMetaData(tx *sql.Tx, data ImageMetaData) error {
|
||||||
stmt, err := tx.Prepare("INSERT INTO image (piwigoId, relativePath, fileName, md5sum, lastChanged, categoryPath, categoryId, uploadRequired) VALUES (?,?,?,?,?,?,?,?)")
|
stmt, err := tx.Prepare("INSERT INTO image (piwigoId, relativePath, fileName, md5sum, lastChanged, categoryPath, categoryId, uploadRequired) VALUES (?,?,?,?,?,?,?,?)")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -110,6 +110,30 @@ func TestUniqueIndexOnRelativeFilePath(t *testing.T) {
|
|||||||
cleanupDatabase(t)
|
cleanupDatabase(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdatePiwigoIdByChecksum(t *testing.T) {
|
||||||
|
if !dbinitOk {
|
||||||
|
t.Skip("Skipping test as TestDataStoreInitialize failed!")
|
||||||
|
}
|
||||||
|
dataStore := setupDatabase(t)
|
||||||
|
|
||||||
|
filePath := "blah/foo/bar.jpg"
|
||||||
|
img := getExampleImageMetadata(filePath)
|
||||||
|
|
||||||
|
saveImageShouldNotFail("insert", dataStore, img, t)
|
||||||
|
img.ImageId = 1
|
||||||
|
img.PiwigoId = 1234
|
||||||
|
|
||||||
|
err := dataStore.SavePiwigoIdAndUpdateUploadFlag(img.Md5Sum, img.PiwigoId)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("SavePiwigoId: Could not update piwigo id: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
imgLoad := loadMetadataShouldNotFail("update", dataStore, filePath, t)
|
||||||
|
EnsureMetadataAreEqual("update", img, imgLoad, t)
|
||||||
|
|
||||||
|
cleanupDatabase(t)
|
||||||
|
}
|
||||||
|
|
||||||
func saveImageShouldNotFail(action string, dataStore *localDataStore, img ImageMetaData, t *testing.T) {
|
func saveImageShouldNotFail(action string, dataStore *localDataStore, img ImageMetaData, t *testing.T) {
|
||||||
err := dataStore.SaveImageMetadata(img)
|
err := dataStore.SaveImageMetadata(img)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user