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