package handlers import ( "fmt" "github.com/gorilla/mux" "mazeratsgen/internal/dice" "mazeratsgen/internal/tables" "net/http" "strconv" "time" ) // @Summary Generate a player character // @Tags character // @Produce application/json, text/plain // @Method GET // @Router /api/generate/character [get] // @Success 200 {object} tables.Character func GenCharacter(w http.ResponseWriter, r *http.Request) { t := tables.CharacterTable{Roller: dice.NewRoller(time.Now().UnixNano())} WriteResponse(w, r, t.Generate(), t.Template()) } // @Summary Generate a specific player character using a seed // @Tags character // @Produce application/json, text/plain // @Method GET // @Router /api/character/{seed} [get] // @Param seed path int64 true "Int64" // @Success 200 {object} tables.Character func Character(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) seed, err := strconv.ParseInt(vars["seed"], 10, 64) if err != nil { w.Write([]byte(fmt.Sprintf("Unable to parse '%v' as Int64", vars["seed"]))) return } t := tables.CharacterTable{Roller: dice.NewRoller(seed)} WriteResponse(w, r, t.Generate(), t.Template()) }