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}