dashboard_snapshot.go 928 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package sqlstore
  2. import (
  3. "time"
  4. "github.com/go-xorm/xorm"
  5. "github.com/grafana/grafana/pkg/bus"
  6. m "github.com/grafana/grafana/pkg/models"
  7. )
  8. func init() {
  9. bus.AddHandler("sql", CreateDashboardSnapshot)
  10. bus.AddHandler("sql", GetDashboardSnapshot)
  11. }
  12. func CreateDashboardSnapshot(cmd *m.CreateDashboardSnapshotCommand) error {
  13. return inTransaction(func(sess *xorm.Session) error {
  14. snapshot := &m.DashboardSnapshot{
  15. Key: cmd.Key,
  16. Dashboard: cmd.Dashboard,
  17. Expires: time.Unix(0, 0),
  18. Created: time.Now(),
  19. Updated: time.Now(),
  20. }
  21. _, err := sess.Insert(snapshot)
  22. cmd.Result = snapshot
  23. return err
  24. })
  25. }
  26. func GetDashboardSnapshot(query *m.GetDashboardSnapshotQuery) error {
  27. var snapshot m.DashboardSnapshot
  28. has, err := x.Where("key=?", query.Key).Get(&snapshot)
  29. if err != nil {
  30. return err
  31. } else if has == false {
  32. return m.ErrNotFound
  33. }
  34. query.Result = &snapshot
  35. return nil
  36. }