refactor: storage 中的 Delete 要求返回 error

This commit is contained in:
kercylan98 2023-07-20 10:19:58 +08:00
parent 3befe645b7
commit a43fb4faea
2 changed files with 10 additions and 7 deletions

View File

@ -16,7 +16,7 @@ type IndexDataStorage[I generic.Ordered, T IndexDataItem[I]] interface {
// SaveAll 保存所有数据 // SaveAll 保存所有数据
SaveAll(name string, data map[I]T) error SaveAll(name string, data map[I]T) error
// Delete 删除特定索引数据 // Delete 删除特定索引数据
Delete(name string, index I) Delete(name string, index I) error
// DeleteAll 删除所有数据 // DeleteAll 删除所有数据
DeleteAll(name string) DeleteAll(name string) error
} }

View File

@ -109,19 +109,22 @@ func (slf *IndexDataFileStorage[I, T]) SaveAll(name string, data map[I]T) error
return nil return nil
} }
func (slf *IndexDataFileStorage[I, T]) Delete(name string, index I) { func (slf *IndexDataFileStorage[I, T]) Delete(name string, index I) error {
_ = os.Remove(filepath.Join(slf.dir, fmt.Sprintf(indexNameFormat, name, index, slf.suffix))) return os.Remove(filepath.Join(slf.dir, fmt.Sprintf(indexNameFormat, name, index, slf.suffix)))
} }
func (slf *IndexDataFileStorage[I, T]) DeleteAll(name string) { func (slf *IndexDataFileStorage[I, T]) DeleteAll(name string) error {
files, err := os.ReadDir(slf.dir) files, err := os.ReadDir(slf.dir)
if err != nil { if err != nil {
return return err
} }
for _, entry := range files { for _, entry := range files {
if entry.IsDir() || !strings.HasPrefix(entry.Name(), name) || !strings.HasSuffix(entry.Name(), slf.suffix) { if entry.IsDir() || !strings.HasPrefix(entry.Name(), name) || !strings.HasSuffix(entry.Name(), slf.suffix) {
continue continue
} }
_ = os.Remove(filepath.Join(slf.dir, entry.Name())) if err := os.Remove(filepath.Join(slf.dir, entry.Name())); err != nil {
return err
}
} }
return nil
} }