Return counter from DeleteByPath

This commit is contained in:
Deluan 2020-07-12 11:48:57 -04:00
parent e55397fcdc
commit dc8368c89c
4 changed files with 7 additions and 7 deletions

View File

@ -59,7 +59,7 @@ type MediaFileRepository interface {
GetRandom(options ...QueryOptions) (MediaFiles, error) GetRandom(options ...QueryOptions) (MediaFiles, error)
Search(q string, offset int, size int) (MediaFiles, error) Search(q string, offset int, size int) (MediaFiles, error)
Delete(id string) error Delete(id string) error
DeleteByPath(path string) error DeleteByPath(path string) (int64, error)
AnnotatedRepository AnnotatedRepository
} }

View File

@ -124,14 +124,13 @@ func (r mediaFileRepository) Delete(id string) error {
} }
// DeleteByPath delete from the DB all mediafiles that are direct children of path // DeleteByPath delete from the DB all mediafiles that are direct children of path
func (r mediaFileRepository) DeleteByPath(path string) error { func (r mediaFileRepository) DeleteByPath(path string) (int64, error) {
path = filepath.Clean(path) path = filepath.Clean(path)
del := Delete(r.tableName). del := Delete(r.tableName).
Where(And{Like{"path": filepath.Join(path, "%")}, Where(And{Like{"path": filepath.Join(path, "%")},
Eq{fmt.Sprintf("substr(path, %d) glob '*%s*'", len(path)+2, string(os.PathSeparator)): 0}}) Eq{fmt.Sprintf("substr(path, %d) glob '*%s*'", len(path)+2, string(os.PathSeparator)): 0}})
log.Debug(r.ctx, "Deleting mediafiles by path", "path", path) log.Debug(r.ctx, "Deleting mediafiles by path", "path", path)
_, err := r.executeSQL(del) return r.executeSQL(del)
return err
} }
func (r mediaFileRepository) Search(q string, offset int, size int) (model.MediaFiles, error) { func (r mediaFileRepository) Search(q string, offset int, size int) (model.MediaFiles, error) {

View File

@ -82,7 +82,7 @@ var _ = Describe("MediaRepository", func() {
id3 := "3333" id3 := "3333"
Expect(mr.Put(&model.MediaFile{ID: id3, Path: P("/abc/" + id3 + ".mp3")})).To(BeNil()) Expect(mr.Put(&model.MediaFile{ID: id3, Path: P("/abc/" + id3 + ".mp3")})).To(BeNil())
Expect(mr.DeleteByPath(P("/abc"))).To(BeNil()) Expect(mr.DeleteByPath(P("/abc"))).To(Equal(int64(1)))
Expect(mr.Get(id1)).ToNot(BeNil()) Expect(mr.Get(id1)).ToNot(BeNil())
Expect(mr.Get(id2)).ToNot(BeNil()) Expect(mr.Get(id2)).ToNot(BeNil())

View File

@ -287,7 +287,8 @@ func (s *TagScanner) processDeletedDir(ctx context.Context, dir string, updatedA
} }
log.Info("Finished processing deleted folder", "dir", dir, "purged", len(ct), "elapsed", time.Since(start)) log.Info("Finished processing deleted folder", "dir", dir, "purged", len(ct), "elapsed", time.Since(start))
return s.ds.MediaFile(ctx).DeleteByPath(dir) _, err = s.ds.MediaFile(ctx).DeleteByPath(dir)
return err
} }
func (s *TagScanner) removeDeletedFolders(ctx context.Context, changed []string) { func (s *TagScanner) removeDeletedFolders(ctx context.Context, changed []string) {
@ -303,7 +304,7 @@ func (s *TagScanner) removeDeletedFolders(ctx context.Context, changed []string)
for _, path := range paths { for _, path := range paths {
if readable, err := utils.IsDirReadable(path); !readable { if readable, err := utils.IsDirReadable(path); !readable {
log.Info(ctx, "Path unavailable. Removing tracks from DB", "path", path, err) log.Info(ctx, "Path unavailable. Removing tracks from DB", "path", path, err)
err = s.ds.MediaFile(ctx).DeleteByPath(path) _, err = s.ds.MediaFile(ctx).DeleteByPath(path)
if err != nil { if err != nil {
log.Error(ctx, "Error removing MediaFiles from DB", "path", path, err) log.Error(ctx, "Error removing MediaFiles from DB", "path", path, err)
} }