Implement guild creation and gettage
This commit is contained in:
57
main.go
57
main.go
@@ -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
|
||||||
}
|
}
|
Reference in New Issue
Block a user