restructured and refactored codebase
For better code organisation the entire Codebase has been restructured and cleaned up. handlers have been separated into an own package, as well as the model.
This commit is contained in:
parent
4dd9c18832
commit
a408e1487d
12 changed files with 400 additions and 544 deletions
85
handlers/add_monster_handler.go
Normal file
85
handlers/add_monster_handler.go
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
package handlers
|
||||
|
||||
import (
|
||||
"ddServer/model"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func AddMonster(Monsters *[]model.Monster) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
// TODO
|
||||
if r.Method != http.MethodPost {
|
||||
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
||||
return
|
||||
}
|
||||
|
||||
err := r.ParseForm()
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
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"),
|
||||
},
|
||||
Skill: model.Skill{
|
||||
Perception: r.FormValue("perception"),
|
||||
Stealth: r.FormValue("stealth"),
|
||||
},
|
||||
DamageRes: []string{r.FormValue("damageRes")},
|
||||
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")},
|
||||
},
|
||||
},
|
||||
}
|
||||
*Monsters = append(*Monsters, monster)
|
||||
}
|
||||
}
|
||||
|
||||
// parseInt konvertiert einen String zu einem Integer und gibt 0 zurück, wenn die Konvertierung fehlschlägt
|
||||
func parseInt(s string) int {
|
||||
i, err := strconv.Atoi(s)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return i
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue