app_plugin.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", 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("pinned")
  22. if !exists {
  23. app = m.AppPlugin{
  24. Type: cmd.Type,
  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. }