func (a *AccountService) Update(account *models.Account) error { revel.INFO.Println("updating account", account.ToString()) count, err := persistence.Dbm.Update(account) checkErr(err, "account not updated "+account.ToString()) if count == 1 { return nil } return err }
func (a *AccountService) Save(account *models.Account) *models.Account { revel.INFO.Println("saving account", account.ToString()) tx, err := persistence.Dbm.Begin() checkErr(err, "unable to start transaction") tx.Insert(account) defaultGroup := &models.AccountGroup{Name: "Default", AccountId: account.Id, Default: true} tx.Insert(defaultGroup) tx.Commit() return account }
func (a *AccountController) Add() revel.Result { var account models.Account err := json.NewDecoder(a.Request.Body).Decode(&account) if err != nil { a.Response.Status = http.StatusNotAcceptable return a.RenderJson(err) } account.Validate(a.Validation) if a.Validation.HasErrors() { a.Response.Status = http.StatusNotAcceptable return a.RenderJson(a.Validation.Errors) } return a.RenderJson(a.AccountService.Save(&account)) }
func (a *AccountController) Update(id int64) revel.Result { var account models.Account err := json.NewDecoder(a.Request.Body).Decode(&account) if err != nil { a.Response.Status = http.StatusNotAcceptable return a.RenderJson(err) } revel.INFO.Println(&account) if account.Id != id { a.Response.Status = http.StatusNotAcceptable return a.RenderJson(&models.Error{Error: "Entity ID and URL ID don't match"}) } account.Validate(a.Validation) if a.Validation.HasErrors() { a.Response.Status = http.StatusNotAcceptable return a.RenderJson(a.Validation.Errors) } err = a.AccountService.Update(&account) if err != nil { a.Response.Status = http.StatusConflict return a.RenderJson(err) } return a.RenderJson(&account) }