MCPcopy Create free account
hub / github.com/daodst/chat / NewDatabase

Function NewDatabase

keyserver/storage/sqlite3/storage.go:24–68  ·  view source on GitHub ↗
(base *base.BaseDendrite, dbProperties *config.DatabaseOptions)

Source from the content-addressed store, hash-verified

22)
23
24func NewDatabase(base *base.BaseDendrite, dbProperties *config.DatabaseOptions) (*shared.Database, error) {
25 db, writer, err := base.DatabaseConnection(dbProperties, sqlutil.NewExclusiveWriter())
26 if err != nil {
27 return nil, err
28 }
29 otk, err := NewSqliteOneTimeKeysTable(db)
30 if err != nil {
31 return nil, err
32 }
33 dk, err := NewSqliteDeviceKeysTable(db)
34 if err != nil {
35 return nil, err
36 }
37 kc, err := NewSqliteKeyChangesTable(db)
38 if err != nil {
39 return nil, err
40 }
41 sdl, err := NewSqliteStaleDeviceListsTable(db)
42 if err != nil {
43 return nil, err
44 }
45 csk, err := NewSqliteCrossSigningKeysTable(db)
46 if err != nil {
47 return nil, err
48 }
49 css, err := NewSqliteCrossSigningSigsTable(db)
50 if err != nil {
51 return nil, err
52 }
53
54 if err = kc.Prepare(); err != nil {
55 return nil, err
56 }
57 d := &shared.Database{
58 DB: db,
59 Writer: writer,
60 OneTimeKeysTable: otk,
61 DeviceKeysTable: dk,
62 KeyChangesTable: kc,
63 StaleDeviceListsTable: sdl,
64 CrossSigningKeysTable: csk,
65 CrossSigningSigsTable: css,
66 }
67 return d, nil
68}

Callers

nothing calls this directly

Calls 8

NewSqliteDeviceKeysTableFunction · 0.85
NewSqliteKeyChangesTableFunction · 0.85
DatabaseConnectionMethod · 0.80
PrepareMethod · 0.65

Tested by

no test coverage detected