grafana/pkg/services/sqlstore/preferences.go

38 lines
800 B
Go
Raw Normal View History

2016-03-06 19:47:39 +08:00
package sqlstore
import (
"github.com/grafana/grafana/pkg/bus"
m "github.com/grafana/grafana/pkg/models"
)
func init() {
bus.AddHandler("sql", SavePreferences)
}
func SavePreferences(cmd *m.SavePreferencesCommand) error {
return inTransaction2(func(sess *session) error {
sql := `SELECT * FROM preferences WHERE pref_id = ? ` +
`AND pref_type = ?`
var prefResults = make([]m.Preferences, 0)
resultsErr := sess.Sql(sql, cmd.PrefId, cmd.PrefType).Find(&prefResults)
if resultsErr != nil {
return resultsErr
}
var matchedPref m.Preferences
matchedPref = prefResults[0]
matchedPref.PrefData = cmd.PrefData
affectedRows, updateErr := sess.Id(matchedPref.Id).Update(&matchedPref)
if affectedRows == 0 {
return m.ErrPreferenceNotFound
}
return updateErr
})
}