grafana/pkg/services/sqlstore/preferences.go

61 lines
1.3 KiB
Go
Raw Normal View History

2016-03-06 19:47:39 +08:00
package sqlstore
import (
2016-03-17 14:22:27 +08:00
"time"
2016-03-06 19:47:39 +08:00
"github.com/grafana/grafana/pkg/bus"
m "github.com/grafana/grafana/pkg/models"
)
func init() {
2016-03-07 03:42:15 +08:00
bus.AddHandler("sql", GetPreferences)
2016-03-06 19:47:39 +08:00
bus.AddHandler("sql", SavePreferences)
}
2016-03-07 03:42:15 +08:00
func GetPreferences(query *m.GetPreferencesQuery) error {
var prefs m.Preferences
exists, err := x.Where("org_id=? AND user_id=?", query.OrgId, query.UserId).Get(&prefs)
2016-03-07 03:42:15 +08:00
if err != nil {
return err
2016-03-07 03:42:15 +08:00
}
if exists {
query.Result = &prefs
} else {
query.Result = new(m.Preferences)
2016-03-07 03:42:15 +08:00
}
return nil
}
2016-03-06 19:47:39 +08:00
func SavePreferences(cmd *m.SavePreferencesCommand) error {
return inTransaction2(func(sess *session) error {
var prefs m.Preferences
exists, err := sess.Where("org_id=? AND user_id=?", cmd.OrgId, cmd.UserId).Get(&prefs)
if !exists {
prefs = m.Preferences{
UserId: cmd.UserId,
OrgId: cmd.OrgId,
HomeDashboardId: cmd.HomeDashboardId,
Timezone: cmd.Timezone,
Theme: cmd.Theme,
2016-03-17 14:22:27 +08:00
Created: time.Now(),
Updated: time.Now(),
}
_, err = sess.Insert(&prefs)
return err
} else {
prefs.HomeDashboardId = cmd.HomeDashboardId
prefs.Timezone = cmd.Timezone
prefs.Theme = cmd.Theme
2016-03-17 14:22:27 +08:00
prefs.Updated = time.Now()
prefs.Version += 1
_, err = sess.Id(prefs.Id).Update(&prefs)
return err
}
2016-03-06 19:47:39 +08:00
})
}