43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package types
|
|
|
|
// Store is used to persist data.
|
|
type Store struct {
|
|
Users UsersStore
|
|
Config ConfigStore
|
|
Share ShareStore
|
|
}
|
|
|
|
// TODO: wrappers to verify
|
|
|
|
// UsersStore is used to manage users relativey to a data storage.
|
|
type UsersStore interface {
|
|
Get(id uint) (*User, error)
|
|
GetByUsername(username string) (*User, error)
|
|
Gets() ([]*User, error)
|
|
Save(u *User) error
|
|
Update(u *User, fields ...string) error
|
|
Delete(id uint) error
|
|
}
|
|
|
|
// ConfigStore is used to manage configurations relativey to a data storage.
|
|
type ConfigStore interface {
|
|
Get(name string, to interface{}) error
|
|
Save(name string, from interface{}) error
|
|
GetSettings() (*Settings, error)
|
|
SaveSettings(*Settings) error
|
|
SaveRunner(*Runner) error
|
|
GetRunner() (*Runner, error)
|
|
GetAuther(AuthMethod) (Auther, error)
|
|
SaveAuther(Auther) error
|
|
}
|
|
|
|
// ShareStore is the interface to manage share links.
|
|
type ShareStore interface {
|
|
Get(hash string) (*ShareLink, error)
|
|
GetPermanent(path string) (*ShareLink, error)
|
|
GetByPath(path string) ([]*ShareLink, error)
|
|
Gets() ([]*ShareLink, error)
|
|
Save(s *ShareLink) error
|
|
Delete(hash string) error
|
|
}
|