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 *accessTokenStore
24}
25
26// New returns a new store.Store database.
27func New(ctx context.Context, db *db.DB) store.Store {
28 cfg := config.FromContext(ctx)
29 logger := log.FromContext(ctx).WithPrefix("store")
30
31 s := &datastore{
32 ctx: ctx,
33 cfg: cfg,
34 db: db,
35 logger: logger,
36
37 settingsStore: &settingsStore{},
38 repoStore: &repoStore{},
39 userStore: &userStore{},
40 collabStore: &collabStore{},
41 lfsStore: &lfsStore{},
42 accessTokenStore: &accessTokenStore{},
43 }
44
45 return s
46}