Exemple #1
0
// UpdateController updates category information
func UpdateController(c *gin.Context) {
	var err error
	var uf updateForm

	err = c.Bind(&uf)
	if err != nil {
		c.Error(err).SetMeta("category.UpdateController.Bind")
		c.HTML(http.StatusInternalServerError, "error.tmpl", nil)
		return
	}

	// start transaction
	tx, err := u.Storm.Begin(true)
	if err != nil {
		c.Error(err).SetMeta("category.UpdateController.Begin")
		c.HTML(http.StatusInternalServerError, "error.tmpl", nil)
		return
	}
	defer tx.Rollback()

	var category m.CategoryType

	// get category details
	err = tx.One("ID", uf.ID, &category)
	if err != nil {
		c.Error(err).SetMeta("category.UpdateController.One")
		c.HTML(http.StatusInternalServerError, "error.tmpl", nil)
		return
	}

	category.Title = uf.Title
	category.Desc = uf.Desc

	// save with updated info
	err = tx.Save(&category)
	if err != nil {
		c.Error(err).SetMeta("category.UpdateController.Save")
		c.HTML(http.StatusInternalServerError, "error.tmpl", nil)
		return
	}

	// commit
	tx.Commit()

	c.Redirect(http.StatusFound, "/admin/panel")

	return

}