Added benchmarks routes and views
This commit is contained in:
7
web/forms/benchmark.go
Normal file
7
web/forms/benchmark.go
Normal file
@ -0,0 +1,7 @@
|
||||
package forms
|
||||
|
||||
type BenchmarkForm struct {
|
||||
Name string `form:"benchmark_name" validate:"required"`
|
||||
ScoringType string `form:"benchmark_scoring" validate:"required"`
|
||||
Description string `form:"benchmark_description"`
|
||||
}
|
@ -26,6 +26,20 @@ func RegisterRoutes(f *flamego.Flame) {
|
||||
f.Get("/{hardware_id}", routes.HardwareGetView)
|
||||
})
|
||||
|
||||
// benchmark routes
|
||||
f.Group("/benchmark", func() {
|
||||
f.Get("", func(c flamego.Context) {
|
||||
c.Redirect("/benchmark/list")
|
||||
})
|
||||
|
||||
f.Get("/list", routes.BenchmarkGetList)
|
||||
|
||||
f.Get("/create", routes.BenchmarkGetCreate)
|
||||
f.Post("/create", binding.Form(forms.BenchmarkForm{}), routes.BenchmarkPostCreate)
|
||||
|
||||
f.Get("/{benchmark_id}", routes.BenchmarkGetView)
|
||||
})
|
||||
|
||||
// test routes
|
||||
f.Group("/test", func() {
|
||||
f.Get("", func(c flamego.Context) {
|
||||
|
65
web/routes/benchmark.go
Normal file
65
web/routes/benchmark.go
Normal file
@ -0,0 +1,65 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/flamego/binding"
|
||||
"github.com/flamego/flamego"
|
||||
"github.com/flamego/template"
|
||||
"github.com/flamego/validator"
|
||||
|
||||
"git.metaunix.net/bitgoblin/blt/models"
|
||||
"git.metaunix.net/bitgoblin/blt/web/forms"
|
||||
)
|
||||
|
||||
func HardwareGetList(t template.Template, data template.Data) {
|
||||
// add hardwares to template
|
||||
var hardware []models.Hardware
|
||||
models.DB.First(&hardware)
|
||||
data["hardware"] = hardware
|
||||
|
||||
data["title"] = "List of Hardware"
|
||||
t.HTML(http.StatusOK, "hardware/list")
|
||||
}
|
||||
|
||||
func HardwareGetView(c flamego.Context, t template.Template, data template.Data) {
|
||||
// find hardware ID from request
|
||||
hardwareID := c.Param("hardware_id")
|
||||
|
||||
// find hardware from DB
|
||||
var hardware models.Hardware
|
||||
models.DB.Find(&hardware, hardwareID)
|
||||
data["hardware"] = hardware
|
||||
|
||||
data["title"] = hardware.Name
|
||||
t.HTML(http.StatusOK, "hardware/view")
|
||||
}
|
||||
|
||||
func HardwareGetCreate(t template.Template, data template.Data) {
|
||||
data["title"] = "Add New Hardware"
|
||||
t.HTML(http.StatusOK, "hardware/create")
|
||||
}
|
||||
|
||||
func HardwarePostCreate(c flamego.Context, form forms.HardwareForm, errs binding.Errors) {
|
||||
if len(errs) > 0 {
|
||||
var err error
|
||||
switch errs[0].Category {
|
||||
case binding.ErrorCategoryValidation:
|
||||
err = errs[0].Err.(validator.ValidationErrors)[0]
|
||||
default:
|
||||
err = errs[0].Err
|
||||
}
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
hardware := models.Hardware{
|
||||
Name: form.Name,
|
||||
Type: form.Type,
|
||||
}
|
||||
|
||||
_ = models.DB.Create(&hardware)
|
||||
|
||||
c.Redirect(fmt.Sprintf("/hardware/%d", hardware.ID))
|
||||
}
|
@ -15,13 +15,13 @@ import (
|
||||
)
|
||||
|
||||
func HardwareGetList(t template.Template, data template.Data) {
|
||||
// add hardwares to template
|
||||
var hardware []models.Hardware
|
||||
models.DB.First(&hardware)
|
||||
data["hardware"] = hardware
|
||||
// add benchmarks to template
|
||||
var benchmarks []models.Benchmark
|
||||
models.DB.First(&benchmarks)
|
||||
data["benchmarks"] = benchmarks
|
||||
|
||||
data["title"] = "List of Hardware"
|
||||
t.HTML(http.StatusOK, "hardware/list")
|
||||
data["title"] = "List of Benchmarks"
|
||||
t.HTML(http.StatusOK, "benchmark/list")
|
||||
}
|
||||
|
||||
func HardwareGetView(c flamego.Context, t template.Template, data template.Data) {
|
||||
|
Reference in New Issue
Block a user