database.go

 1package database
 2
 3import (
 4	"context"
 5
 6	"github.com/charmbracelet/log"
 7	"github.com/charmbracelet/soft-serve/server/config"
 8	"github.com/charmbracelet/soft-serve/server/db"
 9	"github.com/charmbracelet/soft-serve/server/store"
10)
11
12type datastore struct {
13	ctx    context.Context
14	cfg    *config.Config
15	db     *db.DB
16	logger *log.Logger
17
18	*settingsStore
19	*repoStore
20	*userStore
21	*collabStore
22	*lfsStore
23}
24
25// New returns a new store.Store database.
26func New(ctx context.Context, db *db.DB) store.Store {
27	cfg := config.FromContext(ctx)
28	logger := log.FromContext(ctx).WithPrefix("store")
29
30	s := &datastore{
31		ctx:    ctx,
32		cfg:    cfg,
33		db:     db,
34		logger: logger,
35
36		settingsStore: &settingsStore{},
37		repoStore:     &repoStore{},
38		userStore:     &userStore{},
39		collabStore:   &collabStore{},
40		lfsStore:      &lfsStore{},
41	}
42
43	return s
44}