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}