app_plugin.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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", GetAppPlugins)
  9. bus.AddHandler("sql", UpdateAppPlugin)
  10. }
  11. func GetAppPlugins(query *m.GetAppPluginsQuery) error {
  12. sess := x.Where("org_id=?", query.OrgId)
  13. query.Result = make([]*m.AppPlugin, 0)
  14. return sess.Find(&query.Result)
  15. }
  16. func UpdateAppPlugin(cmd *m.UpdateAppPluginCmd) error {
  17. return inTransaction2(func(sess *session) error {
  18. var app m.AppPlugin
  19. exists, err := sess.Where("org_id=? and type=?", cmd.OrgId, cmd.Type).Get(&app)
  20. sess.UseBool("enabled")
  21. sess.UseBool("pin_nav_links")
  22. if !exists {
  23. app = m.AppPlugin{
  24. Type: cmd.Type,
  25. OrgId: cmd.OrgId,
  26. Enabled: cmd.Enabled,
  27. PinNavLinks: cmd.PinNavLinks,
  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.Enabled = cmd.Enabled
  36. app.JsonData = cmd.JsonData
  37. app.PinNavLinks = cmd.PinNavLinks
  38. _, err = sess.Id(app.Id).Update(&app)
  39. return err
  40. }
  41. })
  42. }