func SetAlertState(cmd *m.SetAlertStateCommand) error { return inTransaction(func(sess *xorm.Session) error { alert := m.Alert{} if has, err := sess.Id(cmd.AlertId).Get(&alert); err != nil { return err } else if !has { return fmt.Errorf("Could not find alert") } alert.State = cmd.State alert.StateChanges += 1 alert.NewStateDate = time.Now() alert.EvalData = cmd.EvalData if cmd.Error == "" { alert.ExecutionError = " " //without this space, xorm skips updating this field } else { alert.ExecutionError = cmd.Error } sess.Id(alert.Id).Update(&alert) return nil }) }