preferences.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package api
  2. import (
  3. "github.com/grafana/grafana/pkg/api/dtos"
  4. "github.com/grafana/grafana/pkg/bus"
  5. "github.com/grafana/grafana/pkg/middleware"
  6. m "github.com/grafana/grafana/pkg/models"
  7. )
  8. // PUT /api/preferences
  9. func SavePreferences(c *middleware.Context, cmd m.SavePreferencesCommand) Response {
  10. cmd.UserId = c.UserId
  11. cmd.OrgId = c.OrgId
  12. if err := bus.Dispatch(&cmd); err != nil {
  13. return ApiError(500, "Failed to save preferences", err)
  14. }
  15. return ApiSuccess("Preferences saved")
  16. }
  17. // GET /api/preferences
  18. func GetPreferences(c *middleware.Context) {
  19. query := m.GetPreferencesQuery{UserId: c.UserId, OrgId: c.OrgId}
  20. if err := bus.Dispatch(&query); err != nil {
  21. c.JsonApiErr(500, "Failed to get preferences", err)
  22. }
  23. dto := dtos.Preferences{
  24. HomeDashboardId: query.Result.HomeDashboardId,
  25. Timezone: query.Result.Timezone,
  26. Theme: query.Result.Theme,
  27. }
  28. c.JSON(200, dto)
  29. }
  30. // POST /api/preferences/set-home-dash
  31. func SetHomeDashboard(c *middleware.Context, cmd m.SavePreferencesCommand) Response {
  32. cmd.UserId = c.UserId
  33. cmd.OrgId = c.OrgId
  34. if err := bus.Dispatch(&cmd); err != nil {
  35. return ApiError(500, "Failed to set home dashboard", err)
  36. }
  37. return ApiSuccess("Home dashboard set")
  38. }