backend: frontend: fix errors in model struct and add new fields to result table view
This commit is contained in:
parent
0fd2775aa3
commit
1a4ac687f4
6 changed files with 189 additions and 153 deletions
|
|
@ -20,7 +20,7 @@ func AboutHandler(content embed.FS) http.HandlerFunc {
|
|||
tmpl, err := template.ParseFS(content, tmplFiles...)
|
||||
if err != nil {
|
||||
log.Printf("Template parsing error: %v\n", err)
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ func AboutHandler(content embed.FS) http.HandlerFunc {
|
|||
err = tmpl.ExecuteTemplate(w, "about", data)
|
||||
if err != nil {
|
||||
log.Printf("Template execution error: %v\n", err)
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,84 +24,12 @@ func AddMonster(Monsters *[]model.Monster) http.HandlerFunc {
|
|||
err := r.ParseForm()
|
||||
if err != nil {
|
||||
log.Printf("Error parsing form data: %s", err.Error())
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
http.Error(w, err.Error(), http.StatusNoContent)
|
||||
return
|
||||
}
|
||||
|
||||
// Create a new monster with the form data
|
||||
monster := model.Monster{
|
||||
Name: r.FormValue("name"),
|
||||
Source: r.FormValue("source"),
|
||||
Size: []string{r.FormValue("size")},
|
||||
Type: r.FormValue("type"),
|
||||
Alignment: []string{r.FormValue("alignment")},
|
||||
AC: []model.AC{
|
||||
{
|
||||
AC: parseInt(r.FormValue("ac")),
|
||||
From: []string{r.FormValue("acFrom")},
|
||||
},
|
||||
},
|
||||
HP: model.HP{
|
||||
Average: parseInt(r.FormValue("hpAverage")),
|
||||
Formula: r.FormValue("hpFormula"),
|
||||
},
|
||||
Speed: model.Speed{
|
||||
Walk: parseInt(r.FormValue("speed")),
|
||||
},
|
||||
Str: parseInt(r.FormValue("str")),
|
||||
Dex: parseInt(r.FormValue("dex")),
|
||||
Con: parseInt(r.FormValue("con")),
|
||||
Int: parseInt(r.FormValue("int")),
|
||||
Wis: parseInt(r.FormValue("wis")),
|
||||
Cha: parseInt(r.FormValue("cha")),
|
||||
Save: model.Save{
|
||||
Dex: r.FormValue("saveDex"),
|
||||
Con: r.FormValue("saveCon"),
|
||||
Wis: r.FormValue("saveWis"),
|
||||
Str: r.FormValue("saveStr"),
|
||||
Cha: r.FormValue("saveCha"),
|
||||
Int: r.FormValue("saveInt"),
|
||||
},
|
||||
Skill: model.Skill{
|
||||
Perception: r.FormValue("perception"),
|
||||
Stealth: r.FormValue("stealth"),
|
||||
Acrobatics: r.FormValue("acrobatics"),
|
||||
AnimalHandling: r.FormValue("animalHandling"),
|
||||
Arcana: r.FormValue("arcana"),
|
||||
Athletics: r.FormValue("athletics"),
|
||||
Deception: r.FormValue("deception"),
|
||||
History: r.FormValue("history"),
|
||||
Insight: r.FormValue("insight"),
|
||||
Intimidation: r.FormValue("intimidation"),
|
||||
Investigation: r.FormValue("investigation"),
|
||||
Medicine: r.FormValue("medicine"),
|
||||
Nature: r.FormValue("nature"),
|
||||
Performance: r.FormValue("performance"),
|
||||
Persuasion: r.FormValue("persuasion"),
|
||||
SleightOfHand: r.FormValue("sleightOfHand"),
|
||||
Survival: r.FormValue("survival"),
|
||||
Religion: r.FormValue("religion"),
|
||||
},
|
||||
Resist: []string{r.FormValue("resist")},
|
||||
ConditionImmune: []string{r.FormValue("conditionImmune")},
|
||||
Immune: []string{r.FormValue("immune")},
|
||||
Vulnerable: []string{r.FormValue("vulnerable")},
|
||||
Senses: []string{r.FormValue("senses")},
|
||||
Languages: []string{r.FormValue("languages")},
|
||||
CR: r.FormValue("cr"),
|
||||
Traits: []model.Trait{
|
||||
{
|
||||
Name: r.FormValue("traitName"),
|
||||
Entries: []string{r.FormValue("traitEntry")},
|
||||
},
|
||||
},
|
||||
Actions: []model.Action{
|
||||
{
|
||||
Name: r.FormValue("actionName"),
|
||||
Entries: []string{r.FormValue("actionEntry")},
|
||||
},
|
||||
},
|
||||
}
|
||||
monster := parseMonster(r)
|
||||
|
||||
// Lock the Monsters slice, append the monster, and unlock the slice
|
||||
mu.Lock()
|
||||
|
|
@ -132,3 +60,84 @@ func parseInt(s string) int {
|
|||
// Return the converted integer
|
||||
return i
|
||||
}
|
||||
|
||||
// parseMonster parses the Monster from monsterForm.html and return it.
|
||||
func parseMonster(r *http.Request) model.Monster {
|
||||
return model.Monster{
|
||||
Name: r.FormValue("name"),
|
||||
Source: r.FormValue("source"),
|
||||
Size: []string{r.FormValue("size")},
|
||||
Type: r.FormValue("type"),
|
||||
Alignment: []string{r.FormValue("alignment")},
|
||||
AC: []model.AC{
|
||||
{
|
||||
AC: parseInt(r.FormValue("ac")),
|
||||
From: []string{r.FormValue("acFrom")},
|
||||
},
|
||||
},
|
||||
HP: model.HP{
|
||||
Average: parseInt(r.FormValue("hpAverage")),
|
||||
Formula: r.FormValue("hpFormula"),
|
||||
},
|
||||
Speed: model.Speed{
|
||||
Walk: parseInt(r.FormValue("walk")),
|
||||
Burrow: parseInt(r.FormValue("burrow")),
|
||||
Fly: parseInt(r.FormValue("fly")),
|
||||
Swim: parseInt(r.FormValue("swim")),
|
||||
Climb: parseInt(r.FormValue("climb")),
|
||||
},
|
||||
Str: parseInt(r.FormValue("str")),
|
||||
Dex: parseInt(r.FormValue("dex")),
|
||||
Con: parseInt(r.FormValue("con")),
|
||||
Int: parseInt(r.FormValue("int")),
|
||||
Wis: parseInt(r.FormValue("wis")),
|
||||
Cha: parseInt(r.FormValue("cha")),
|
||||
Save: model.Save{
|
||||
Dex: r.FormValue("saveDex"),
|
||||
Con: r.FormValue("saveCon"),
|
||||
Wis: r.FormValue("saveWis"),
|
||||
Str: r.FormValue("saveStr"),
|
||||
Cha: r.FormValue("saveCha"),
|
||||
Int: r.FormValue("saveInt"),
|
||||
},
|
||||
Skill: model.Skill{
|
||||
Perception: r.FormValue("perception"),
|
||||
Stealth: r.FormValue("stealth"),
|
||||
Acrobatics: r.FormValue("acrobatics"),
|
||||
AnimalHandling: r.FormValue("animalHandling"),
|
||||
Arcana: r.FormValue("arcana"),
|
||||
Athletics: r.FormValue("athletics"),
|
||||
Deception: r.FormValue("deception"),
|
||||
History: r.FormValue("history"),
|
||||
Insight: r.FormValue("insight"),
|
||||
Intimidation: r.FormValue("intimidation"),
|
||||
Investigation: r.FormValue("investigation"),
|
||||
Medicine: r.FormValue("medicine"),
|
||||
Nature: r.FormValue("nature"),
|
||||
Performance: r.FormValue("performance"),
|
||||
Persuasion: r.FormValue("persuasion"),
|
||||
SleightOfHand: r.FormValue("sleightOfHand"),
|
||||
Survival: r.FormValue("survival"),
|
||||
Religion: r.FormValue("religion"),
|
||||
},
|
||||
Resist: []string{r.FormValue("resist")},
|
||||
ConditionImmune: []string{r.FormValue("conditionImmune")},
|
||||
Immune: []string{r.FormValue("immune")},
|
||||
Vulnerable: []string{r.FormValue("vulnerable")},
|
||||
Senses: []string{r.FormValue("senses")},
|
||||
Languages: []string{r.FormValue("languages")},
|
||||
CR: r.FormValue("cr"),
|
||||
Traits: []model.Trait{
|
||||
{
|
||||
Name: r.FormValue("traitName"),
|
||||
Entries: []string{r.FormValue("traitEntry")},
|
||||
},
|
||||
},
|
||||
Actions: []model.Action{
|
||||
{
|
||||
Name: r.FormValue("actionName"),
|
||||
Entries: []string{r.FormValue("actionEntry")},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue