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