forked from fchazal/filebrowser
/
bolt.go
31 lines (26 loc) · 810 Bytes
/
bolt.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package bolt
import (
"github.com/asdine/storm"
"github.com/fchazal/filebrowser/auth"
"github.com/fchazal/filebrowser/settings"
"github.com/fchazal/filebrowser/share"
"github.com/fchazal/filebrowser/storage"
"github.com/fchazal/filebrowser/users"
)
// NewStorage creates a storage.Storage based on Bolt DB.
func NewStorage(db *storm.DB) (*storage.Storage, error) {
userStore := users.NewStorage(usersBackend{db: db})
shareStore := share.NewStorage(shareBackend{db: db})
settingsStore := settings.NewStorage(settingsBackend{db: db})
authStore := auth.NewStorage(authBackend{db: db}, userStore)
err := save(db, "version", 2)
if err != nil {
return nil, err
}
return &storage.Storage{
Auth: authStore,
Users: userStore,
Share: shareStore,
Settings: settingsStore,
}, nil
}