mirror of https://github.com/grafana/grafana
parent
1ef332e82c
commit
660d3fa1e9
@ -0,0 +1,21 @@ |
||||
package api |
||||
|
||||
import ( |
||||
"github.com/grafana/grafana/pkg/bus" |
||||
"github.com/grafana/grafana/pkg/middleware" |
||||
m "github.com/grafana/grafana/pkg/models" |
||||
) |
||||
|
||||
// PUT /api/user/prefs
|
||||
func SaveUserPreferences(c *middleware.Context, cmd m.SavePreferencesCommand) Response { |
||||
|
||||
cmd.PrefId = c.UserId |
||||
cmd.PrefType = `user` |
||||
|
||||
if err := bus.Dispatch(&cmd); err != nil { |
||||
return ApiError(500, "Failed to saved user preferences", err) |
||||
} |
||||
|
||||
return ApiSuccess("User preferences saved") |
||||
|
||||
} |
||||
@ -0,0 +1,37 @@ |
||||
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 |
||||
}) |
||||
} |
||||
Loading…
Reference in new issue