bacheca/storage/file/backend.go

50 lines
1.2 KiB
Go
Raw Normal View History

2019-07-17 10:26:18 +02:00
package filebackend
import (
"errors"
"os"
"github.com/gorilla/feeds"
)
// FileBackend is a file-based storage backend for bacheca
type FileBackend struct {
path string
}
// MakeFileBackend returns a FileBackend instance
func MakeFileBackend(path string) (*FileBackend, error) {
stat, err := os.Stat(path)
if err == nil && stat.IsDir() {
return nil, errors.New("file backend must be a file")
}
return &FileBackend{
path: path,
}, err
}
// GetFeed returns the whole feed
func (b *FileBackend) GetFeed() (*feeds.Feed, error) {
return nil, errors.New("not implemented")
}
// AddItem adds an item to the feed
func (b *FileBackend) AddItem(item feeds.Item) (string, error) {
return "", errors.New("not implemented")
}
// RemoveItem removes an item by ID
func (b *FileBackend) RemoveItem(id string) error {
return errors.New("not implemented")
}
// ReplaceItem replaces the item at a specified ID with the data provided
func (b *FileBackend) ReplaceItem(id string, item feeds.Item) error {
return errors.New("not implemented")
}
// SetInfo sets the feed metadata (like title and description)
func (b *FileBackend) SetInfo(info feeds.Feed) error {
return errors.New("not implemented")
}