-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdb_handler.go
96 lines (79 loc) · 1.81 KB
/
db_handler.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package main
import (
"fmt"
"github.com/asdine/storm"
)
// DBHandler struct
type DBHandler struct {
rawdb *storm.DB
conf *Config
}
// FirstTimeSetup function
func (h *DBHandler) FirstTimeSetup() error {
var user User
user.ID = h.conf.DiscordConfig.AdminID
user.Init()
db := h.rawdb.From("Users")
err := db.One("ID", h.conf.DiscordConfig.AdminID, &user)
if err != nil {
fmt.Println("Running first time db config")
walletdb := db.From("Wallets")
user.SetRole("owner")
err := db.Save(&user)
if err != nil {
fmt.Println("error saving owner")
return err
}
wallet := Wallet{Account: h.conf.DiscordConfig.AdminID, Balance: 10000}
err = walletdb.Save(&wallet)
if err != nil {
fmt.Println("error saving wallet")
return err
}
if user.Owner {
err = db.One("ID", h.conf.DiscordConfig.AdminID, &user)
if err != nil {
fmt.Println("Could not retrieve data from the database, something went wrong!")
return err
}
fmt.Println("Owner ID: " + user.ID)
fmt.Println("Database has been configured")
return nil
}
}
return nil
}
// Insert function
func (h *DBHandler) Insert(object interface{}) error {
err := h.rawdb.Save(object)
if err != nil {
fmt.Println("Could not insert object: ", err.Error())
return err
}
return nil
}
// Find function
func (h *DBHandler) Find(first string, second string, object interface{}) error {
err := h.rawdb.One(first, second, object)
if err != nil {
return err
}
return nil
}
// Update function
func (h *DBHandler) Update(object interface{}) error {
err := h.rawdb.Update(object)
if err != nil {
return err
}
return nil
}
// GetUser function
func (h *DBHandler) GetUser(uid string) (user User, err error) {
userdb := h.rawdb.From("Users")
err = userdb.One("ID", uid, &user)
if err != nil {
return user, err
}
return user, nil
}