app_settings.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package sqlstore
  2. import (
  3. "time"
  4. "github.com/grafana/grafana/pkg/bus"
  5. m "github.com/grafana/grafana/pkg/models"
  6. )
  7. func init() {
  8. bus.AddHandler("sql", GetAppSettings)
  9. bus.AddHandler("sql", GetAppSettingByAppId)
  10. bus.AddHandler("sql", UpdateAppSettings)
  11. }
  12. func GetAppSettings(query *m.GetAppSettingsQuery) error {
  13. sess := x.Where("org_id=?", query.OrgId)
  14. query.Result = make([]*m.AppSettings, 0)
  15. return sess.Find(&query.Result)
  16. }
  17. func GetAppSettingByAppId(query *m.GetAppSettingByAppIdQuery) error {
  18. appSetting := m.AppSettings{OrgId: query.OrgId, AppId: query.AppId}
  19. has, err := x.Get(&appSetting)
  20. if err != nil {
  21. return err
  22. } else if has == false {
  23. return m.ErrAppSettingNotFound
  24. }
  25. query.Result = &appSetting
  26. return nil
  27. }
  28. func UpdateAppSettings(cmd *m.UpdateAppSettingsCmd) error {
  29. return inTransaction2(func(sess *session) error {
  30. var app m.AppSettings
  31. exists, err := sess.Where("org_id=? and app_id=?", cmd.OrgId, cmd.AppId).Get(&app)
  32. sess.UseBool("enabled")
  33. sess.UseBool("pinned")
  34. if !exists {
  35. app = m.AppSettings{
  36. AppId: cmd.AppId,
  37. OrgId: cmd.OrgId,
  38. Enabled: cmd.Enabled,
  39. Pinned: cmd.Pinned,
  40. JsonData: cmd.JsonData,
  41. Created: time.Now(),
  42. Updated: time.Now(),
  43. }
  44. _, err = sess.Insert(&app)
  45. return err
  46. } else {
  47. app.Updated = time.Now()
  48. app.Enabled = cmd.Enabled
  49. app.JsonData = cmd.JsonData
  50. app.Pinned = cmd.Pinned
  51. _, err = sess.Id(app.Id).Update(&app)
  52. return err
  53. }
  54. })
  55. }