Added ability to edit benchmark parameters
This commit is contained in:
@@ -64,3 +64,44 @@ func BenchmarkPostCreate(c flamego.Context, form forms.BenchmarkForm, errs bindi
|
||||
|
||||
c.Redirect(fmt.Sprintf("/benchmark/%d", benchmark.ID))
|
||||
}
|
||||
|
||||
func BenchmarkGetEdit(c flamego.Context, t template.Template, data template.Data) {
|
||||
// find benchmark ID from request
|
||||
benchmarkID := c.Param("benchmark_id")
|
||||
|
||||
// find benchmark from DB
|
||||
var benchmark models.Benchmark
|
||||
models.DB.First(&benchmark, benchmarkID)
|
||||
data["benchmark"] = benchmark
|
||||
|
||||
data["title"] = "Editing Benchmark"
|
||||
t.HTML(http.StatusOK, "benchmark/edit")
|
||||
}
|
||||
|
||||
func BenchmarkPostEdit(c flamego.Context, form forms.BenchmarkForm, 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)
|
||||
}
|
||||
|
||||
// find benchmark ID from request
|
||||
benchmarkID := c.Param("benchmark_id")
|
||||
|
||||
// find benchmark from DB
|
||||
var benchmark models.Benchmark
|
||||
models.DB.First(&benchmark, benchmarkID)
|
||||
|
||||
benchmark.Name = form.Name
|
||||
benchmark.ScoringType = form.ScoringType
|
||||
benchmark.Description = form.Description
|
||||
|
||||
models.DB.Save(&benchmark)
|
||||
|
||||
c.Redirect(fmt.Sprintf("/benchmark/%d", benchmark.ID))
|
||||
}
|
||||
|
Reference in New Issue
Block a user