More fixes

This commit is contained in:
James Mills
2021-01-30 15:26:24 +10:00
parent 401f635b3b
commit 8495ba0319
8 changed files with 15 additions and 304 deletions

View File

@@ -77,79 +77,6 @@ func (bs *BitcaskStore) DelFeed(name string) error {
return bs.db.Delete(key)
}
func (bs *BitcaskStore) GetFeed(name string) (*Feed, error) {
key := []byte(fmt.Sprintf("%s/%s", feedsKeyPrefix, name))
data, err := bs.db.Get(key)
if err == bitcask.ErrKeyNotFound {
return nil, ErrFeedNotFound
}
return LoadFeed(data)
}
func (bs *BitcaskStore) SetFeed(name string, feed *Feed) error {
data, err := feed.Bytes()
if err != nil {
return err
}
key := []byte(fmt.Sprintf("%s/%s", feedsKeyPrefix, name))
if err := bs.db.Put(key, data); err != nil {
return err
}
return nil
}
func (bs *BitcaskStore) LenFeeds() int64 {
var count int64
if err := bs.db.Scan([]byte(feedsKeyPrefix), func(_ []byte) error {
count++
return nil
}); err != nil {
log.WithError(err).Error("error scanning")
}
return count
}
func (bs *BitcaskStore) SearchFeeds(prefix string) []string {
var keys []string
if err := bs.db.Scan([]byte(feedsKeyPrefix), func(key []byte) error {
if strings.HasPrefix(strings.ToLower(string(key)), prefix) {
keys = append(keys, strings.TrimPrefix(string(key), "/feeds/"))
}
return nil
}); err != nil {
log.WithError(err).Error("error scanning")
}
return keys
}
func (bs *BitcaskStore) GetAllFeeds() ([]*Feed, error) {
var feeds []*Feed
err := bs.db.Scan([]byte(feedsKeyPrefix), func(key []byte) error {
data, err := bs.db.Get(key)
if err != nil {
return err
}
feed, err := LoadFeed(data)
if err != nil {
return err
}
feeds = append(feeds, feed)
return nil
})
if err != nil {
return nil, err
}
return feeds, nil
}
func (bs *BitcaskStore) HasUser(username string) bool {
key := []byte(fmt.Sprintf("%s/%s", usersKeyPrefix, username))
return bs.db.Has(key)