database.go

 1package database
 2
 3import (
 4	"context"
 5
 6	log "github.com/charmbracelet/log/v2"
 7	"github.com/charmbracelet/soft-serve/pkg/config"
 8	"github.com/charmbracelet/soft-serve/pkg/db"
 9	"github.com/charmbracelet/soft-serve/pkg/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	*accessTokenStore
24	*webhookStore
25}
26
27// New returns a new store.Store database.
28func New(ctx context.Context, db *db.DB) store.Store {
29	cfg := config.FromContext(ctx)
30	logger := log.FromContext(ctx).WithPrefix("store")
31
32	s := &datastore{
33		ctx:    ctx,
34		cfg:    cfg,
35		db:     db,
36		logger: logger,
37
38		settingsStore:    &settingsStore{},
39		repoStore:        &repoStore{},
40		userStore:        &userStore{},
41		collabStore:      &collabStore{},
42		lfsStore:         &lfsStore{},
43		accessTokenStore: &accessTokenStore{},
44	}
45
46	return s
47}