-
Notifications
You must be signed in to change notification settings - Fork 0
/
database.go
68 lines (60 loc) · 1.22 KB
/
database.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package main
import (
"encoding/json"
"fmt"
"log"
uuid "github.com/satori/go.uuid"
"github.com/sdomino/scribble"
)
func initDB() *scribble.Driver {
db, err := scribble.New("./data", nil)
if err != nil {
log.Fatal("Error initialising the database", err)
}
return db
}
func getAllUsers() []user {
users := []user{}
records, err := db.ReadAll("users")
if err != nil {
log.Println("Error", err)
}
for _, u := range records {
user := user{}
if err := json.Unmarshal(u, &user); err != nil {
log.Println("Unable to unmarshal user", err)
}
users = append(users, user)
}
return users
}
func addTestUser() {
user := user{
ID: uuid.Must(uuid.NewV4()).String(),
Username: "test",
PasswordHash: "",
AccessLevel: 1,
}
if err := db.Write("users", user.ID, user); err != nil {
fmt.Println("Error", err)
}
}
func genUserMap() {
userMap = make(map[string]string)
users := getAllUsers()
for _, u := range users {
userMap[u.Username] = u.ID
}
}
func writeUserToDB(user user) error {
if err := db.Write("users", user.ID, user); err != nil {
return err
}
return nil
}
func writeFoodToDB(food food) error {
if err := db.Write("foods", food.Name, food); err != nil {
return err
}
return nil
}