remove unnecessary allocations from workerDeleteNonExistentVillages.delete

This commit is contained in:
Dawid Wysokiński 2021-05-01 17:10:24 +02:00
parent 83c23f79ce
commit 45f6dd9a89
1 changed files with 11 additions and 9 deletions

View File

@ -47,21 +47,23 @@ type workerDeleteNonExistentVillages struct {
}
func (w *workerDeleteNonExistentVillages) delete() error {
var villagesFromDB []*models.Village
if err := w.db.Model(&villagesFromDB).Column("id").Select(); err != nil {
return errors.Wrap(err, "workerDeleteNonExistentVillages.delete")
}
villages, err := w.dataloader.LoadVillages()
if err != nil {
return errors.Wrap(err, "workerDeleteNonExistentVillages.delete")
}
var idsToDelete []int
searchableByVillageID := &villagesSearchableByID{villages}
for _, village := range villagesFromDB {
index := searchByID(searchableByVillageID, village.ID)
if index < 0 {
idsToDelete = append(idsToDelete, village.ID)
}
if err := w.db.
Model(&models.Village{}).
Column("id").
ForEach(func(village *models.Village) error {
index := searchByID(searchableByVillageID, village.ID)
if index < 0 {
idsToDelete = append(idsToDelete, village.ID)
}
return nil
}); err != nil {
return errors.Wrap(err, "workerDeleteNonExistentVillages.delete")
}
totalDeleted := 0