app_settings.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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", UpdateAppSettings)
  10. }
  11. func GetAppSettings(query *m.GetAppSettingsQuery) error {
  12. sess := x.Where("org_id=?", query.OrgId)
  13. query.Result = make([]*m.AppSettings, 0)
  14. return sess.Find(&query.Result)
  15. }
  16. func UpdateAppSettings(cmd *m.UpdateAppSettingsCmd) error {
  17. return inTransaction2(func(sess *session) error {
  18. var app m.AppSettings
  19. exists, err := sess.Where("org_id=? and app_id=?", cmd.OrgId, cmd.AppId).Get(&app)
  20. sess.UseBool("enabled")
  21. sess.UseBool("pinned")
  22. if !exists {
  23. app = m.AppSettings{
  24. AppId: cmd.AppId,
  25. OrgId: cmd.OrgId,
  26. Enabled: cmd.Enabled,
  27. Pinned: cmd.Pinned,
  28. JsonData: cmd.JsonData,
  29. Created: time.Now(),
  30. Updated: time.Now(),
  31. }
  32. _, err = sess.Insert(&app)
  33. return err
  34. } else {
  35. app.Updated = time.Now()
  36. app.Enabled = cmd.Enabled
  37. app.JsonData = cmd.JsonData
  38. app.Pinned = cmd.Pinned
  39. _, err = sess.Id(app.Id).Update(&app)
  40. return err
  41. }
  42. })
  43. }