Merge branch 'preferences' of github.com:grafana/grafana into preferences

This commit is contained in:
Torkel Ödegaard
2016-03-15 22:15:27 +01:00
7 changed files with 86 additions and 38 deletions

View File

@@ -8,9 +8,12 @@ func addPreferencesMigrations(mg *Migrator) {
Name: "preferences",
Columns: []*Column{
{Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true},
{Name: "pref_id", Type: DB_Int, Nullable: false},
{Name: "pref_type", Type: DB_NVarchar, Length: 255, Nullable: false},
{Name: "pref_data", Type: DB_Text, Nullable: false},
{Name: "org_id", Type: DB_Int, Nullable: false},
{Name: "user_id", Type: DB_NVarchar, Length: 255, Nullable: false},
{Name: "version", Type: DB_Int, Nullable: false},
{Name: "preference", Type: DB_Text, Nullable: false},
{Name: "created", Type: DB_DateTime, Nullable: false},
{Name: "updated", Type: DB_DateTime, Nullable: false},
},
}

View File

@@ -3,6 +3,7 @@ package sqlstore
import (
"github.com/grafana/grafana/pkg/bus"
m "github.com/grafana/grafana/pkg/models"
"time"
)
func init() {
@@ -12,12 +13,12 @@ func init() {
func GetPreferences(query *m.GetPreferencesQuery) error {
sql := `SELECT * FROM preferences WHERE pref_id = ? ` +
`AND pref_type = ?`
sql := `SELECT * FROM preferences WHERE user_id = ? ` +
`AND org_id = ?`
var prefResults = make([]m.Preferences, 0)
resultsErr := x.Sql(sql, query.PrefId, query.PrefType).Find(&prefResults)
resultsErr := x.Sql(sql, query.UserId, query.OrgId).Find(&prefResults)
if resultsErr != nil {
return resultsErr
@@ -35,12 +36,12 @@ func GetPreferences(query *m.GetPreferencesQuery) error {
func SavePreferences(cmd *m.SavePreferencesCommand) error {
return inTransaction2(func(sess *session) error {
sql := `SELECT * FROM preferences WHERE pref_id = ? ` +
`AND pref_type = ?`
sql := `SELECT * FROM preferences WHERE user_id = ? ` +
`AND org_id = ?`
var prefResults = make([]m.Preferences, 0)
resultsErr := sess.Sql(sql, cmd.PrefId, cmd.PrefType).Find(&prefResults)
resultsErr := sess.Sql(sql, cmd.UserId, cmd.OrgId).Find(&prefResults)
if resultsErr != nil {
return resultsErr
@@ -51,13 +52,15 @@ func SavePreferences(cmd *m.SavePreferencesCommand) error {
var saveErr error
if len(prefResults) == 0 {
savePref.PrefId = cmd.PrefId
savePref.PrefType = cmd.PrefType
savePref.PrefData = cmd.PrefData
savePref.UserId = cmd.UserId
savePref.OrgId = cmd.OrgId
savePref.Preference = cmd.Preference
savePref = SetPreferencesModel(savePref, false)
affectedRows, saveErr = sess.Insert(&savePref)
} else {
savePref = prefResults[0]
savePref.PrefData = cmd.PrefData
savePref.Preference = cmd.Preference
savePref = SetPreferencesModel(savePref, true)
affectedRows, saveErr = sess.Id(savePref.Id).Update(&savePref)
}
@@ -68,3 +71,16 @@ func SavePreferences(cmd *m.SavePreferencesCommand) error {
return saveErr
})
}
func SetPreferencesModel(pref m.Preferences, updating bool) m.Preferences {
if updating {
pref.Version = pref.Version + 1
} else {
pref.Version = 0
pref.Created = time.Now()
}
pref.Updated = time.Now()
return pref
}