diff --git a/persistence/db_sql/checksum_repository.go b/persistence/db_sql/checksum_repository.go index 180685a2..c00027a4 100644 --- a/persistence/db_sql/checksum_repository.go +++ b/persistence/db_sql/checksum_repository.go @@ -12,9 +12,9 @@ type checkSumRepository struct { const checkSumId = "1" -type CheckSums struct { - ID string `orm:"pk;column(id)"` - Value string +type Checksum struct { + ID string `orm:"pk;column(id)"` + Sum string } func NewCheckSumRepository() scanner.CheckSumRepository { @@ -25,14 +25,14 @@ func NewCheckSumRepository() scanner.CheckSumRepository { func (r *checkSumRepository) loadData() error { loadedData := make(map[string]string) - var all []CheckSums - _, err := Db().QueryTable(&CheckSums{}).All(&all) + var all []Checksum + _, err := Db().QueryTable(&Checksum{}).All(&all) if err != nil { return err } for _, cks := range all { - loadedData[cks.ID] = cks.Value + loadedData[cks.ID] = cks.Sum } r.data = loadedData @@ -52,19 +52,21 @@ func (r *checkSumRepository) Get(id string) (string, error) { func (r *checkSumRepository) SetData(newSums map[string]string) error { err := WithTx(func(o orm.Ormer) error { - _, err := Db().Raw("delete from check_sums").Exec() + _, err := Db().Raw("delete from checksum").Exec() if err != nil { return err } + var checksums []Checksum for k, v := range newSums { - cks := CheckSums{ID: k, Value: v} - // TODO Use InsertMulti - _, err := Db().Insert(&cks) - if err != nil { - return err - } + cks := Checksum{ID: k, Sum: v} + checksums = append(checksums, cks) } + _, err = Db().InsertMulti(100, &checksums) + if err != nil { + return err + } + return nil }) if err != nil { diff --git a/persistence/db_sql/checksum_repository_test.go b/persistence/db_sql/checksum_repository_test.go index 8c97689d..aa9e3d2d 100644 --- a/persistence/db_sql/checksum_repository_test.go +++ b/persistence/db_sql/checksum_repository_test.go @@ -10,7 +10,7 @@ var _ = Describe("ChecksumRepository", func() { var repo scanner.CheckSumRepository BeforeEach(func() { - Db().Delete(&CheckSums{ID: checkSumId}) + Db().Delete(&Checksum{ID: checkSumId}) repo = NewCheckSumRepository() err := repo.SetData(map[string]string{ "a": "AAA", "b": "BBB", diff --git a/persistence/db_sql/sql.go b/persistence/db_sql/sql.go index 7ef6af27..b539e7ed 100644 --- a/persistence/db_sql/sql.go +++ b/persistence/db_sql/sql.go @@ -58,7 +58,7 @@ func initORM(dbPath string) error { orm.RegisterModel(new(Album)) orm.RegisterModel(new(MediaFile)) orm.RegisterModel(new(ArtistInfo)) - orm.RegisterModel(new(CheckSums)) + orm.RegisterModel(new(Checksum)) orm.RegisterModel(new(Property)) orm.RegisterModel(new(Playlist)) err := orm.RegisterDataBase("default", "sqlite3", dbPath)