filebrowser/share/storage.go
Henrique Dias 18ad9d78b3 ugh
License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>
2019-01-04 12:30:52 +00:00

46 lines
1.1 KiB
Go

package share
// StorageBackend is the interface to implement for a share storage.
type StorageBackend interface {
GetByHash(hash string) (*Link, error)
GetPermanent(path string) (*Link, error)
Gets(path string) ([]*Link, error)
Save(s *Link) error
Delete(hash string) error
}
// Storage is a storage.
type Storage struct {
back StorageBackend
}
// NewStorage creates a share links storage from a backend.
func NewStorage(back StorageBackend) *Storage {
return &Storage{back: back}
}
// GetByHash wraps a StorageBackend.GetByHash.
func (s *Storage) GetByHash(hash string) (*Link, error) {
return s.back.GetByHash(hash)
}
// GetPermanent wraps a StorageBackend.GetPermanent
func (s *Storage) GetPermanent(path string) (*Link, error) {
return s.back.GetPermanent(path)
}
// Gets wraps a StorageBackend.Gets
func (s *Storage) Gets(path string) ([]*Link, error) {
return s.back.Gets(path)
}
// Save wraps a StorageBackend.Save
func (s *Storage) Save(l *Link) error {
return s.back.Save(l)
}
// Delete wraps a StorageBackend.Delete
func (s *Storage) Delete(hash string) error {
return s.back.Delete(hash)
}