1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00

Minor Badger refactoring

This commit is contained in:
Maksym Pavlenko
2020-01-25 16:07:49 -08:00
committed by Maksym Pavlenko
parent 5f62b4588f
commit ce02bb1f88

View File

@@ -115,15 +115,7 @@ func (b *Badger) GetFeed(_ context.Context, feedID string) (*model.Feed, error)
}
// Query episodes
opts := badger.DefaultIteratorOptions
opts.Prefix = b.getKey(episodePrefix, feedID)
opts.PrefetchValues = true
if err := b.iterator(txn, opts, func(item *badger.Item) error {
episode := &model.Episode{}
if err := b.getObj(txn, item.Key(), &episode); err != nil {
return err
}
if err := b.walkEpisodes(txn, feedID, func(episode *model.Episode) error {
feed.Episodes = append(feed.Episodes, episode)
return nil
}); err != nil {
@@ -215,17 +207,21 @@ func (b *Badger) UpdateEpisode(feedID string, episodeID string, cb func(episode
func (b *Badger) WalkEpisodes(ctx context.Context, feedID string, cb func(episode *model.Episode) error) error {
return b.db.View(func(txn *badger.Txn) error {
opts := badger.DefaultIteratorOptions
opts.Prefix = b.getKey(episodePrefix, feedID)
opts.PrefetchValues = true
return b.iterator(txn, opts, func(item *badger.Item) error {
feed := &model.Episode{}
if err := b.unmarshalObj(item, feed); err != nil {
return err
}
return b.walkEpisodes(txn, feedID, cb)
})
}
return cb(feed)
})
func (b *Badger) walkEpisodes(txn *badger.Txn, feedID string, cb func(episode *model.Episode) error) error {
opts := badger.DefaultIteratorOptions
opts.Prefix = b.getKey(episodePrefix, feedID)
opts.PrefetchValues = true
return b.iterator(txn, opts, func(item *badger.Item) error {
feed := &model.Episode{}
if err := b.unmarshalObj(item, feed); err != nil {
return err
}
return cb(feed)
})
}