sqlstore_dashboards.go 1019 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package sqlstore
  2. import (
  3. "github.com/torkelo/grafana-pro/pkg/models"
  4. )
  5. func SaveDashboard(dash *models.Dashboard) error {
  6. var err error
  7. sess := x.NewSession()
  8. defer sess.Close()
  9. if err = sess.Begin(); err != nil {
  10. return err
  11. }
  12. if dash.Id == 0 {
  13. _, err = sess.Insert(dash)
  14. } else {
  15. _, err = sess.Update(dash)
  16. }
  17. if err != nil {
  18. sess.Rollback()
  19. return err
  20. } else if err = sess.Commit(); err != nil {
  21. return err
  22. }
  23. return nil
  24. }
  25. func GetDashboard(slug string, accountId int64) (*models.Dashboard, error) {
  26. dashboard := models.Dashboard{Slug: slug, AccountId: accountId}
  27. has, err := x.Get(&dashboard)
  28. if err != nil {
  29. return nil, err
  30. } else if has == false {
  31. return nil, models.ErrDashboardNotFound
  32. }
  33. return &dashboard, nil
  34. }
  35. func SearchQuery(query string, accountId int64) ([]*models.SearchResult, error) {
  36. sess := x.Limit(100, 0).Where("account_id=?", accountId)
  37. sess.Table("Dashboard")
  38. var results []*models.SearchResult
  39. err := sess.Find(&results)
  40. return results, err
  41. }