Skip to content

Commit c6be726

Browse files
committed
Backend: add a table for the states.
1 parent 0c3816e commit c6be726

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

backend/db/prepare.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,23 @@ type tableInfoRow struct {
3636
type tableInfo = []tableInfoRow
3737

3838
func Validate(path string) error {
39-
expectedTableInfos := []tableInfo{
40-
{
39+
expectedTableInfos := map[string]tableInfo{
40+
"users": {
4141
{cid: 0, name: "id", typeDef: "INTEGER", notnull: 1, dflt_value: nil, pk: 1},
4242
{cid: 1, name: "username", typeDef: "TEXT", notnull: 1, dflt_value: nil, pk: 0},
4343
{cid: 2, name: "password", typeDef: "TEXT", notnull: 1, dflt_value: nil, pk: 0},
4444
},
45-
{
45+
"sessions": {
4646
{cid: 0, name: "session_key", typeDef: "TEXT", notnull: 1, dflt_value: nil, pk: 1},
4747
{cid: 1, name: "user_id", typeDef: "INTEGER", notnull: 1, dflt_value: nil, pk: 0},
4848
},
49+
"states": {
50+
{cid: 0, name: "user_id", typeDef: "INTEGER", notnull: 1, dflt_value: nil, pk: 1},
51+
{cid: 1, name: "state", typeDef: "TEXT", notnull: 1, dflt_value: nil, pk: 0},
52+
},
4953
}
5054

51-
tableInfos := []tableInfo{}
52-
for _, tableName := range []string{"users", "sessions"} {
55+
for tableName, expectedTableInfo := range expectedTableInfos {
5356
rows, err := db.Query(`PRAGMA table_info(` + tableName + `)`)
5457
if err != nil {
5558
return err
@@ -66,14 +69,10 @@ func Validate(path string) error {
6669
tableInfo = append(tableInfo, r)
6770
}
6871

69-
tableInfos = append(tableInfos, tableInfo)
70-
rows.Close()
71-
}
72-
73-
for i, expectedTableInfo := range expectedTableInfos {
74-
if !slices.Equal(expectedTableInfo, tableInfos[i]) {
72+
if !slices.Equal(expectedTableInfo, tableInfo) {
7573
return fmt.Errorf("failed to validate the database")
7674
}
75+
rows.Close()
7776
}
7877

7978
log.Printf("validated the database")
@@ -89,6 +88,10 @@ func Init(path string) error {
8988
CREATE TABLE sessions(
9089
session_key TEXT NOT NULL PRIMARY KEY,
9190
user_id INTEGER NOT NULL
91+
);
92+
CREATE TABLE states(
93+
user_id INTEGER NOT NULL PRIMARY KEY,
94+
state TEXT NOT NULL
9295
)`
9396
if _, err := db.Exec(query); err != nil {
9497
log.Println(err)

0 commit comments

Comments
 (0)