Skip to content

Commit

Permalink
Minor Badger refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
mxpv committed Jan 26, 2020
1 parent d7a6a62 commit 61d75c0
Showing 1 changed file with 15 additions and 19 deletions.
34 changes: 15 additions & 19 deletions pkg/storage/badger.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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)
})
}

Expand Down

0 comments on commit 61d75c0

Please sign in to comment.