Implement guild creation and gettage

This commit is contained in:
2024-10-27 17:25:13 +01:00
parent c31ab6a01d
commit a9af44c381

57
main.go
View File

@@ -30,12 +30,13 @@ func init() {
log.Lmicroseconds|log.Lshortfile) log.Lmicroseconds|log.Lshortfile)
} }
var db DB
func main() { func main() {
inputFile := flag.String("if", "input", "Input file") inputFile := flag.String("if", "input", "Input file")
flag.Parse() flag.Parse()
log.Printf("Input file: %s", *inputFile) log.Printf("Input file: %s", *inputFile)
db := DB{ db = DB{
path: "data/db.db", path: "data/db.db",
} }
err := db.Open() err := db.Open()
@@ -55,7 +56,12 @@ func main() {
Error.Printf("Failed parsing note: %v", err) Error.Printf("Failed parsing note: %v", err)
return return
} }
log.Printf("%#v", note)
err = SaveNote(note)
if err != nil {
Error.Printf("Failed saving note: %v", err)
return
}
} }
func ParseNote(data string) (NoteData, error) { func ParseNote(data string) (NoteData, error) {
@@ -68,7 +74,6 @@ func ParseNote(data string) (NoteData, error) {
continue continue
} }
parts := strings.Split(line, ":") parts := strings.Split(line, ":")
log.Printf("%#v", parts)
switch parts[0] { switch parts[0] {
case "p": case "p":
res.Player = parts[1] res.Player = parts[1]
@@ -86,4 +91,50 @@ func ParseNote(data string) (NoteData, error) {
} }
res.Note = strings.Join(note, "\n") res.Note = strings.Join(note, "\n")
return res, nil return res, nil
}
func SaveNote(data NoteData) error {
log.Printf("%#v", data)
guild, err := GetGuildByName(data.Guild)
if err != nil {
return err
}
log.Printf("%#v", guild)
return nil
}
func GetGuildByName(name string) (Guild, error) {
var guild Guild
err := db.readConn.QueryRow("select id, name from guild where name = ?", name).Scan(&guild.ID, &guild.Name)
if err != nil {
guild, err = CreateGuild(name)
if err != nil {
return guild, fmt.Errorf("failed creating guild: %v", err)
}
}
return guild, nil
}
func CreateGuild(name string) (Guild, error) {
guild := Guild{}
res, err := db.writeConn.Exec("insert into guild (name) values (?)", name)
if err != nil {
return guild, fmt.Errorf("failed to insert guild: %v", err)
}
id, err := res.LastInsertId()
if err != nil {
return guild, fmt.Errorf("failed to get last insert id: %v", err)
}
return GetGuildById(int(id))
}
func GetGuildById(id int) (Guild, error) {
var guild Guild
err := db.readConn.QueryRow("select id, name from guild where id = ?", id).Scan(&guild.ID, &guild.Name)
if err != nil {
log.Printf("Guild not found: %v", err)
}
return guild, nil
} }