blt/web/routes/test.go

66 lines
1.4 KiB
Go
Raw Normal View History

2023-12-02 22:16:16 -05:00
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 TestGetList(t template.Template, data template.Data) {
// add tests to template
var tests []models.Test
models.DB.Find(&tests)
data["tests"] = tests
data["title"] = "List of Tests"
t.HTML(http.StatusOK, "test/list")
}
2024-05-29 08:42:53 -04:00
func TestGetView(c flamego.Context, t template.Template, data template.Data) {
// find test ID from request
testID := c.Param("test_id")
// find hardware from DB
var test models.Test
models.DB.Find(&test, testID)
data["test"] = test
2024-05-29 08:45:53 -04:00
data["title"] = test.Name
2024-05-29 08:42:53 -04:00
t.HTML(http.StatusOK, "test/view")
}
2023-12-02 22:16:16 -05:00
func TestGetCreate(t template.Template, data template.Data) {
data["title"] = "Create a Test"
t.HTML(http.StatusOK, "test/create")
}
func TestPostCreate(c flamego.Context, form forms.TestForm, 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)
}
test := models.Test{
2024-05-29 08:45:53 -04:00
Name: form.Name,
2023-12-02 22:16:16 -05:00
HardwareID: form.Hardware,
}
_ = models.DB.Create(&test)
c.Redirect(fmt.Sprintf("/test/%d", test.ID))
}