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 ProjectGetList(t template.Template, data template.Data) { // add projects to template var projects []models.Project models.DB.Find(&projects) data["projects"] = projects data["title"] = "List of Projects" t.HTML(http.StatusOK, "project/list") } func ProjectGetCreate(t template.Template, data template.Data) { data["title"] = "Create a Project" t.HTML(http.StatusOK, "project/create") } func ProjectPostCreate(c flamego.Context, form forms.ProjectForm, 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) } project := models.Project{ Name: form.Name, Description: form.Description, } _ = models.DB.Create(&project) c.Redirect(fmt.Sprintf("/project/%d", project.ID)) }